输入凭据并登录后,在实际网站的响应标头中会生成一个 SessionID 作为 Set-Cookie,但我无法在 JMeter 的调用响应中看到它。就登录成功了。当我尝试手动添加会话 ID cookie 时,效果很好。因此,场景是我在登录 (A) URL 处输入凭据,然后转到 B URL 以生成会话 ID,最后定向到主页 (C URL)。但是,在 JMeter 中,它从 B URL 重定向到 A URL,而不是 C URL。我想这可能是导致问题的原因。我检查了B URL的响应正文,但没有任何与Session ID相关的内容。响应正文只是:
` location.replace("http://A url.com/"); '
我该如何修复它?
根据 JMeter 项目主页:
JMeter 不是浏览器,它工作在协议级别。就 Web 服务和远程服务而言,JMeter 看起来像一个浏览器(或者更确切地说,多个浏览器);然而,JMeter 并不执行浏览器支持的所有操作。 特别是,JMeter 不会执行 HTML 页面中的 Javascript。 也不会像浏览器那样渲染 HTML 页面(可以以 HTML 等形式查看响应,但任何示例中都不包含计时,并且一次仅显示一个线程中的一个样本)。
location
是浏览器API的一项功能
所以你需要:
或者只是硬编码重定向位置