无法使用jmeter测试登录

时间:2014-10-31 12:57:01

标签: testing jmeter

]我是jmeter的新手。我正在尝试测试登录我的网站说(example.com/session/new)。 我添加了http cookie管理器和2个http请求默认值。 在第一个,访问example.com/session/new并使用正则表达式提取响应数据中的真实性标记元内容="(。+?)" name =" csrf -token" 。现在,在第二个http请求中,我有一个带参数的发布请求 名称:utf值:( tickmark) name:authenticity_token值:$ {token} 姓名:电子邮件价值:test@test.com name:密码值:test。 name:commit value:登录 然后我主张登录后的文本。 当我运行测试时,断言失败。因为它导致404。 在请求中,我可以看到utf8 =%E2%9C%93 +& authenticity_token =%24%7Btoken%7D& email = test%40test.com& password = test& commit = Sign + In。请帮我解决这个问题。

2 个答案:

答案 0 :(得分:0)

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

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

因此,在进行登录页面的初始请求时,如果令牌位于HTML响应的正文中,而不是使用正则表达式提取器,请使用XPath Extractor。

如果您的回复不符合XML / XHTML,请勾选“使用整理”复选框。

对于参考名称,添加您希望引用令牌的引用,例如:令牌。将参数添加到登录请求后,您可以将csrfToken称为$ {token}

然后用于X-Path查询使用;

//输入[@名称= “csrfToken”] / @值

以下教程向您展示了如何使用正则表达式提取器,但它也应该帮助您了解如何更多地设置查询;

https://www.youtube.com/watch?v=SVxB3Tk4O4A&feature=iv&src_vid=hGkrSFKcj10&annotation_id=annotation_85358

答案 1 :(得分:0)

看起来你做的每件事都很好,除了相关性。在解码您的错误网址后,我发现您的关联不起作用。以下是解码网址&#34; utf8 =✓&amp; authenticity_token = $ {token}&amp; email=test@test.com& password = test&amp; commit =登录。&#34;

在你的&#34;正则表达式提取器&#34;添加以下详细信息

 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.