我在Jmeter做相关。我正面临下面的问题,找到正则表达式

时间:2016-12-01 10:02:41

标签: regex jmeter performance-testing correlation post-processor

<input type="hidden" name="_csrf"
                    value="40ea7f46-799b-4ca0-b8cd-4adfba082aed" />

以上是我在请求输出中获得的令牌。我无法用Jmeter的正则表达式提取器中的正则表达式替换它。

<input type="hidden" name="_csrf" value="(.+?)" />无效。

请帮忙。

3 个答案:

答案 0 :(得分:2)

如果您的输入实际上包含换行符,那么您需要在正则表达式中考虑该输入。此外,最好明确你的正则表达式中的有效字符,.+很少是好事:

<input type="hidden"\s+name="_csrf"\s+value="([^"]+)"\s*/>

答案 1 :(得分:1)

你必须小心spaces/newlines

尝试使用以下简单的正则表达式:

value="(.*?)"\s/>

如果它匹配多个元素,要添加uniquness,可以在正则表达式中添加name属性,如下所示:

name="_csrf"\s+value="(.*?)"\s/>

答案 2 :(得分:0)

这是not using regular expressions to parse HTML的另一个证据,因为它们非常脆弱且对最小标记更改很敏感。更强大,更有弹性的解决方案是使用CSS/JQuery ExtractorXPath Extractor代替。

  • 相关的CSS表达式为input[name=_csrf],使用value作为&#34;属性&#34;
  • 获取值的XPath查询是//input[@name='_csrf']/@value

有关在JMeter测试中绕过XSRF保护的详细信息,请参阅How to Load Test CSRF-Protected Web Sites指南