我已经使用hs登录表单记录了基本的Apache Jmeter场景,该表格使用了csrf令牌。
应用程序记录的示例令牌如下所示:
<input id="csrf_token" name="csrf_token" type="hidden" value="IjU5NzBhMmI3ODNjZGVjMGUwYmI2YTU4ZjRkMTk0MjI0MTg3OTJlNDAi.C8ecSA.PkvdB0aM2M0rfhSLcb_ktyeInfs">
使用Apache Jmeter后处理器(REGEX)我使用以下表达式提取值:
input id="csrf_token" name="csrf_token" type="hidden" value="(.+?)"
结果是成功,并且值已分配给CSRF_VALUE变量。
在下一步中,我将带有登录信息的令牌发送到网站,发布数据如下:
username=username&password=password&csrf_token=IjU5NzBhMmI3ODNjZGVjMGUwYmI2YTU4ZjRkMTk0MjI0MTg3OTJlNDAi.C8ecSA.PkvdB0aM2M0rfhSLcb_ktyeInfs&submit=Zaloguj+si%C4%99
然而,网站返回csrf令牌不匹配的错误。在记录的场景和修改的场景之间唯一改变的是提取并在后续请求中放置csrf令牌。每次重播此方案时,我都会检查结果并显示已收到 csrf令牌 == 已发送csrf令牌。但登录失败并出现相同的错误 - csrf令牌不匹配。
到目前为止,我无法得到错误的,非常简单的情况,但却存在问题。我正在使用apache jmeter 3.1。
答案 0 :(得分:0)
我建议检查除请求正文部分以外的其他部分,即
使用浏览器和JMeter的View Results Tree监听器中的开发人员工具仔细检查请求和响应,很可能是上面列出的原因。