如何使用Jmeter的“正则表达式提取器”在运行时捕获更改“authenticity_token”?

时间:2014-06-12 09:51:10

标签: regex jmeter authenticity-token

我试图将input\s+name=”authenticity_token”\s+type=”hidden”\s+value=”(.*?)”\s*\放入Jmeter's Regular Expression Extractor,但这没有帮助,测试失败。对于Template,我始终保持$1$

在查看页面源代码时,它的编写方式如下: <input name="utf8" type="hidden" value="&#x2713;" /><input name="authenticity_token" type="hidden" value="OzzoQsvruAetQAiAMj5Mh4L730w0PUxzoALcgT3dI+o=" />
根据上述内容,我应该如何为Regualr Expression Extractor撰写内容

请参见下图:

enter image description here

其Ruby on Rails应用程序

1 个答案:

答案 0 :(得分:2)

根据https://stackoverflow.com/a/1732454/2897748

  

您无法使用正则表达式解析[X] HTML。因为HTML不能被正则表达式解析。正则表达式不是可用于正确解析HTML的工具。

我强烈建议您使用以下方法之一:

  1. CSS/JQuery Extractor
  2. XPath Extractor
  3. 上面的示例配置,以匹配您的隐藏输入值:

    <强> CSS / JQuery的

    • 参考名称:token
    • CSS / JQuery Expression:input[name=authenticity_token]
    • 属性:value

    <强>的XPath

    • 使用整洁 - 勾选(如果您的回复不符合XML / XHTML)
    • 参考名称:token
    • XPath查询://input[@name='authenticity_token']/@value

    如果您仍然需要坚持使用正则表达式提取器,以下配置可能有所帮助:

    • 参考名称:token
    • 正则表达式:<input name="authenticity_token" type="hidden" value="(.+?)" />
    • 模板:$1$

    但它会非常敏感和脆弱,即属性不同的顺序,多行布局等。我建议考虑使用上面的提取器代替。

    希望这会有所帮助。