【问题标题】:What is the regular expression in Jmeter for a dynamic string?Jmeter中动态字符串的正则表达式是什么?
【发布时间】:2024-01-21 12:43:02
【问题描述】:

这是在 Jmeter 的请求输出中生成的,我需要捕获动态值。

<update id="javax.faces.ViewState"><![CDATA[-8480553014738537212:-8925834053543623028]]></update> 

输出中的 -(连字符)符号也是动态的。

我尝试过使用

来处理这个问题
<update id="javax.faces.ViewState"><![CDATA[(.+?)]]></update> 

但这无济于事。请提出建议。

【问题讨论】:

  • [ 必须在正则表达式中进行转义。顺便说一句,为什么不使用XPath Extractor
  • @Wiktor Stribizew .. [ 正在输出中,我们需要捕获 [] 中的值
  • [s 是 CData 块的一部分。如果您使用 XPath Extractor,它将正确解析 XML,并且您只需 //update[@id='javax.faces.ViewState']/text() 即可获取此值

标签: regex performance jmeter performance-testing correlation


【解决方案1】:

获取数据的正确方法是使用带有以下 XPath 的 XPath Extractor

//update[@id='javax.faces.ViewState']/text()

它获取具有id 属性和javax.faces.ViewState 值的update 标记,并从这些节点中提取文本。

您的正则表达式不正确,因为[(和文字点)必须在正则表达式中进行转义,并且可以固定为&lt;update\s+id="javax\.faces\.ViewState"&gt;&lt;!\[CDATA\[([^\]&lt;]+)]]&gt;&lt;/update&gt;。见regex demo

【讨论】: