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

Posted

技术标签:

【中文标题】JMeter POST 请求返回 200 OK 而不是 302(重定向)【英文标题】:JMeter POST request is returning 200 OK instead of 302 (redirect) 【发布时间】:2018-02-05 17:59:17 【问题描述】:

我正在尝试登录一个使用带有 JMeter 的 IdentityServer 的网站,但在我发布我的凭据时卡住了。

如果我通过提琴手检查请求,我可以看到它返回一个带有重定向的 302,但是当我尝试在 JMeter 中发布相同的请求时,我在 html 中得到一个带有“错误”的 200,没有详细信息。

这是我在 JMeter 中的要求....

这是 Fiddler 中的请求....

这是 JMeter 中的 HTML 响应(200 OK)...

这是 Fiddler 的回应……

这是 Fiddler 中的 HTML 响应,在重定向之后...

我可以确认我的 JMeter 变量 $COOKIE_idsrv.xsrf$SignIn 填充了正确的值。

其他注意事项

我有一个 HTTP Cookie 管理器 HTTP 管理器Referer 标头设置正确 所有请求都设置为跟随重定向 我检索每个请求的所有嵌入资源

有人知道这可能是什么问题吗?

【问题讨论】:

我建议你添加一个http请求默认并配置它指向fiddler,然后在fiddler上比较jmeter请求和手动请求,必须有一些区别,找到它你会解决的问题。 【参考方案1】:

在您的 POST 请求中,为什么要包含“signin”参数?您已经添加了“signin”作为查询参数,它似乎是多余的,并且对于实际的 POST 正文数据来说不是必需的。 Fiddler 在这两个地方都没有。请检查。

【讨论】:

【参考方案2】:

经过一番挫折,结果发现问题是由于$COOKIE_idsrv.xsrf 不包含idsrv.xsrf 的正确值。一旦我将其更改为从以前的请求中提取它,它似乎工作正常。

【讨论】:

以上是关于JMeter POST 请求返回 200 OK 而不是 302(重定向)的主要内容,如果未能解决你的问题,请参考以下文章

GET和POST提交方式的区别

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

请求成功200,但是没有返回数据。

get,post区别

python用get还是post好

具有标题和数据的POST请求导致200 ok响应但未添加用户