You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JMeter测试Web应用查看结果树时出现401、419错误如何解决

JMeter请求返回401、419错误原因及解决方案

问题对应采样详情

Thread Name:Thread Group 1-1
Sample Start:2022-07-07 21:49:33 IST
Load time:815
Connect Time:0
Latency:815
Size in bytes:8118
Sent bytes:1831
Headers size in bytes:1483
Body size in bytes:6635
Sample Count:1
Error Count:1
Data type ("text"|"bin"|""):text
Response code:419
Response message:

HTTPSampleResult fields:
ContentType: text/html; charset=UTF-8
DataEncoding: UTF-8

错误根因

401 Unauthorized

401是HTTP标准鉴权失败状态码,触发原因均为服务端判定请求无有效访问权限:

  • 未登录状态下直接请求需要鉴权的接口/资源
  • 请求携带的鉴权凭证(Cookie、Authorization Token等)缺失、值错误、已过期
  • 访问账号本身无目标资源的访问权限

419 Page Expired

419不是HTTP标准状态码,是PHP Laravel框架自定义的错误码,从采样结果返回text/html格式响应的特征也能对应上Laravel默认错误页的返回逻辑,触发原因只有一类:CSRF跨站请求伪造防护校验失败,常见场景包括:

  • POST/PUT/DELETE等非GET请求未携带CSRF令牌
  • 携带的CSRF令牌和当前用户会话绑定的令牌不匹配、已过期
  • 请求未携带对应会话的Cookie,导致服务端无法匹配令牌所属会话

实操解决方法

  • 处理401错误:

    1. 在线程组下添加HTTP Cookie管理器,保持默认配置即可,JMeter会自动维护请求过程中的会话Cookie,避免因为会话丢失导致的鉴权失败
    2. 单独调试登录接口,确认登录请求参数正确、能正常返回有效鉴权信息;如果是Cookie鉴权模式,HTTP Cookie管理器会自动处理;如果是Token鉴权模式,用正则表达式提取器或者JSON提取器从登录响应中提取有效Token,通过HTTP信息头管理器添加到后续请求的对应鉴权字段中,不要硬编码已过期的固定Token值
    3. 确认测试账号本身拥有目标接口/资源的访问权限,排除账号权限不足的问题
  • 处理419错误:

    1. 必须先添加HTTP Cookie管理器,CSRF令牌和用户会话是强绑定的,没有正确携带会话Cookie的情况下,令牌校验必然失败
    2. 不要直接跳过页面访问步骤直接发POST请求:先发起GET请求访问对应表单页面,从页面响应中提取CSRF令牌,提取来源可以是响应头的X-CSRF-TOKEN字段、页面meta标签的csrf-token值、表单隐藏域的_token值
    3. 将提取到的CSRF令牌添加到后续所有非GET请求中:要么通过HTTP信息头管理器添加X-CSRF-TOKEN请求头,值为提取到的令牌变量;要么在请求参数中添加_token参数,值为提取到的令牌变量
    4. 仅测试环境下可临时关闭CSRF校验(生产环境禁止操作),通过调整Laravel中间件配置跳过对应接口的CSRF校验,快速完成压测脚本调试

内容的提问来源于stack exchange,提问作者Sushma K M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 20:15:52