【问题标题】:jmeter extract regular expression not get correct resultjmeter提取正则表达式没有得到正确的结果
【发布时间】:2014-11-28 21:34:22
【问题描述】:

这是我的html

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

我想在 jmeter 正则表达式提取器中提取值。

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

【问题讨论】:

    标签: regex jmeter


    【解决方案1】:

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

    查看您的请求,我可以看到您发送的 %24%7Bauth_token%7D 被解码后看起来像 ${auth_token},因此您的用例不正确。

    您需要 2 个请求:

    1. GET 请求获取页面并提取 RequestVerificationToken 并将其存储到auth_token 变量。
    2. POST 请求将使用auth_token 变量。

    有关详细信息,请参阅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

    【讨论】:

    • 对于每个页面“__RequestVerificationToken”都会有所不同,所以我如何处理。我正在使用 mvc4 & 每个页面都会有新的令牌,例如在登录页面 token=123 & 在登录令牌=223 之后
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多