jmeter提取正则表达式得不到正确的结果

时间:2014-02-05 06:11:17

标签: regex jmeter

这是我的HTML

<input name="__RequestVerificationToken" type="hidden" value="A9y6Ndf7Q2XP2Yz6zhaVChoIvpQGUrZRTvu9D_HnHnUcFBVInerxCjU4vpOXQYVhFwnzl-zAzkvtto7BLAVVr">

我想在jmeter Regular Expression Extractor中提取值。enter image description here

这是我的regx窗口,但是当我发布它时,我不会得到预期的令牌,就像这样__RequestVerificationToken=%24%7Bauth_token%7D

2 个答案:

答案 0 :(得分:1)

尝试使用$1$作为模板,它应该可以解决您的问题。

查看您的请求我可以看到您发送的%24%7Bauth_token%7D被解码的内容与${auth_token}类似,因此您使用案例不正确。

您需要2个请求:

  1. 获取请求获取页面并提取RequestVerificationToken并将其存储到auth_token变量。
  2. POST请求将使用auth_token变量。
  3. 有关详细信息,请参阅Using Regular Expressions in JMeter指南。

    顺便说一句,您可以使用Debug SamplerView Results Tree侦听器的组合来查看是否存在任何匹配项。 w.r.t.应该更方便组和变量。

    通常,isn't recommended使用正则表达式来解析HTML。我建议改用XPath Extractor。相关的XPath表达式如下所示:

    //input[@name='__RequestVerificationToken']/@value
    

    很少有事情需要注意:

    • 如果您的网页不符合XHTML标准,则需要检查XPath Extractor中的Use Tidy
    • JMeter 2.11在View Results Tree Listener中提供了很好的XPath Tester

答案 1 :(得分:0)

我们需要设置以下正则表达式提取器值来提取身份验证令牌值

Reference Name : Auth_Token
Regular Expression : <input\sname="__RequestVerificationToken"\stype="hidden"\svalue="(.+)">
Template : $1$
Match No : 1
Default values : NOT FOUND TOKENS