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

JMeter二次请求持续返回302而非200,需获取phpsessionid求解决

解决方法
  • 确认Location提取的完整性
    检查第一个请求的Location响应头提取逻辑,确保提取的是完整的绝对URL(包含http/https协议、域名、完整路径),避免提取相对路径导致第二个请求的目标地址错误。可以用正则表达式提取器,正则式比如Location: (.*),勾选Template $1$,同时在查看结果树中验证提取的变量值是否正确。

  • 保持请求方法一致性
    307重定向要求后续请求保持原请求的方法(比如原请求是POST,后续请求也必须用POST)。检查第二个请求的方法是否与第一个请求一致,不要默认使用GET,否则服务器可能返回302重定向而非200。

  • 确保Cookie正确传递

    1. 确保测试计划中添加了HTTP Cookie管理器,保持默认自动处理Cookie的设置即可。
    2. 查看第一个请求的响应头,确认是否有Set-Cookie字段;若有,检查Cookie管理器是否已捕获这些Cookie,确保第二个请求发送时携带了这些Cookie。可以在查看结果树中查看第二个请求的请求头,确认Cookie字段存在且内容正确。
  • 关闭自动跟随重定向并手动处理

    1. 两个请求都关闭自动跟随重定向和跟随重定向选项(在请求的「高级」标签中)。
    2. 当第二个请求返回302时,提取其Location响应头,添加第三个请求访问该地址——部分服务器会通过多次重定向验证会话合法性,完成所有重定向流程后才会返回200并生成phpsessionid的Set-Cookie。
  • 检查请求头的完整性
    部分服务器会验证请求头的完整性(如Referer、User-Agent等):

    • 添加HTTP信息头管理器,复制浏览器访问目标地址时的请求头(如User-Agent、Referer、Accept等)到JMeter中。
    • 确保Referer头设置为第一个请求的原始URL,避免服务器因Referer不合法返回重定向。
  • 验证请求参数的正确性
    如果第一个请求是POST请求,检查是否有表单参数或请求体需要传递到第二个请求中。部分服务器会验证请求参数的连续性,缺少必要参数会触发重定向。

内容的提问来源于stack exchange,提问作者Harish Dhande

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 16:06:41