JMeter 在 GET 方法上遵循 POST 重定向

Posted

技术标签:

【中文标题】JMeter 在 GET 方法上遵循 POST 重定向【英文标题】:JMeter follow POST redirect on a GET method 【发布时间】:2019-02-05 14:34:06 【问题描述】:

我正在使用 JMeter 执行登录。在使用浏览器时,我输入一个网页地址,它会自动将我重定向到登录窗口。

如果我使用 JMeter 执行相同的 GET 请求,它不会将我重定向到登录窗口。经过调查,我发现当我输入网页地址时浏览器会执行下一个请求:

    获取带有 302 重定向响应的网页 获取 200 OK 响应的登录页面 POST 登录页面出现 302 Found 响应 获取 200 OK 响应的登录页面

当我使用 JMeter 并使用跟随重定向执行 GET 请求时,我只得到: 1. 获取带有 302 重定向响应的网页 2. 获取200 OK响应的登录页面

POST 方法不再自动执行。 JMeter 中是否有一个选项可以遵循 POST 方法还是仅遵循 GET 方法?

谢谢!

【问题讨论】:

【参考方案1】:

在这种棘手的重定向情况下,最好使用 JMeter HTTP(S) 测试脚本记录器编写脚本,默认情况下,它会为 每个 HTTP 请求(包括重定向)生成采样器。它只是用评论“检测到重定向链的开始”来标记一些。

您只需取消选中“自动重定向”和“跟随重定向”这两个选项即可完全控制流程。

【讨论】:

我可以单独发送每个请求,但在这种情况下,我会失去一些动态,因为以下请求取决于后端系统,并且不同的系统有不同的重定向请求。最后,我可能会实施这种方法。

以上是关于JMeter 在 GET 方法上遵循 POST 重定向的主要内容,如果未能解决你的问题,请参考以下文章

JMeter基础:请求参数Parameters Body Data的区别

点击 bean 方法并在 GET 请求上重定向

在 spring 控制器的重定向中将请求方法从 POST 更改为 GET

Fiddler get和post数据

JMeter POST 请求返回 200 OK 而不是 302(重定向)

如何在 Django 2 中的 POST 方法后重定向到成功