我在 Jmeter 中做关联。我面临以下问题以找到正则表达式

I am doing correlation in Jmeter. I am facing below issue to find the Regular expression

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

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

<input type="hidden" name="_csrf" value="(.+?)" /> 不工作。

请帮忙。

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

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

你必须小心spaces/newlines

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

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

如果匹配多个元素,为了增加唯一性,可以在正则表达式中添加name属性,如下:

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

这是 not using regular expressions to parse HTML as they are very fragile and sensitive to minimal markup changes. The more robust and resilient solution is using CSS/JQuery Extractor or XPath Extractor 的另一个证据。

  • 相关的CSS表达式为input[name=_csrf],使用value作为"attribute"
  • 获取值的XPath查询是//input[@name='_csrf']/@value

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