![]](https://i.stack.imgur.com/G7pHf.png)
我是jmeter的新手 . 我正在尝试测试登录我的网站说(example.com/session/new) . 我添加了http cookie管理器和2个http请求默认值 . 在第一个,访问example.com/session/new并使用regex meta content="(.+?)"name="csrf-token" 在响应数据中提取真实性标记 . 现在,在第二个http请求中,我有一个帖子请求,其参数为name:utf value :( tickmark)name:authenticity_token value:$ name:email value:test@test.com name:password value:test . name:commit value:登录然后我声明登录后的文本 . 当我运行测试时,断言失败 . 因为它导致404.在请求中,我可以看到utf8 =%E2%9C%93&authenticity_token =%24%7Btoken%7D&email = test%40test.com&password = test&commit =登录 . 请帮我解决这个问题 .
2 回答
我知道这是一个老帖子,但我一直在努力解决这个问题,所以我决定发布我的答案,以防它对任何人有帮助 - 它第一次为我工作 . 因此,在请求我的站点的登录页面后,html响应中嵌入了以下csrf令牌;
因此,在进行登录页面的初始请求时,如果令牌位于HTML响应的正文中,而不是使用正则表达式提取器,请使用XPath Extractor .
如果您的回复不符合XML / XHTML,请勾选“使用整理”复选框 .
对于参考名称,添加您希望引用令牌的引用,例如令牌 . 将参数添加到登录请求时,可以将csrfToken称为$
然后用于X-Path查询使用;
//输入[@名称= “csrfToken”] / @值
以下教程向您展示了如何使用正则表达式提取器,但它也应该帮助您了解如何更多地设置查询;
https://www.youtube.com/watch?v=SVxB3Tk4O4A&feature=iv&src_vid=hGkrSFKcj10&annotation_id=annotation_85358
看起来你做的每件事情都很好,除了相关性 . 在解码您的错误网址后,我发现您的关联不起作用 . 以下是解码网址“utf8 =✓&authenticity_token=$&email=test@test.com&password=test&commit=Sign In” .
在“正则表达式提取器”中添加以下详细信息