首页 文章

无法使用jmeter测试登录

提问于
浏览
0

![]](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 回答

  • 0

    我知道这是一个老帖子,但我一直在努力解决这个问题,所以我决定发布我的答案,以防它对任何人有帮助 - 它第一次为我工作 . 因此,在请求我的站点的登录页面后,html响应中嵌入了以下csrf令牌;

    <input type="hidden" name="csrfToken" value="fe5a48ebda7b98cbbf885b4a220ebe0c23b11125-1459096615520-1ac64aa945986cb1bd318d9c"/>
    

    因此,在进行登录页面的初始请求时,如果令牌位于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

  • 0

    看起来你做的每件事情都很好,除了相关性 . 在解码您的错误网址后,我发现您的关联不起作用 . 以下是解码网址“utf8 =✓&authenticity_token=$&email=test@test.com&password=test&commit=Sign In” .

    在“正则表达式提取器”中添加以下详细信息

    1. Reference Name:token
      2. Regular Expression : name="csrfToken" value="(.+?)"
      3. Template : $1$
      4. Match No: 1
      Note: Check the occurrences of "csrfToken", if you required first occurrence then enter 1 , if you required 2nd occurrence enter 2 ....etc.
    

相关问题