Testing 在JMeter中配备动态正则表达式的正则表达式提取器

Testing 在JMeter中配备动态正则表达式的正则表达式提取器,testing,load,jmeter,Testing,Load,Jmeter,有没有办法用包含动态变量(例如,${var})的正则表达式设置正则表达式提取器 问这个问题的理由是因为我的测试计划的一部分是从html响应中获取某个用户帐户的用户ID,因此随后Jmeter将继续使用该用户ID作为参考来进行业务。如果我只担心测试计划中的一个线程,那么它将像下面一样简单 <.*id=(/d+).*value="johndoe" 问候您 作为一个即将成为Jmeter爱好者的人,你会发现这种情况经常发生。您只需转义正则表达式中的特殊字符。美元符号在PERL正则表达式中有特殊意

有没有办法用包含动态变量(例如,${var})的正则表达式设置正则表达式提取器

问这个问题的理由是因为我的测试计划的一部分是从html响应中获取某个用户帐户的用户ID,因此随后Jmeter将继续使用该用户ID作为参考来进行业务。如果我只担心测试计划中的一个线程,那么它将像下面一样简单

<.*id=(/d+).*value="johndoe" 
问候您

作为一个即将成为Jmeter爱好者的人,你会发现这种情况经常发生。您只需转义正则表达式中的特殊字符。美元符号在PERL正则表达式中有特殊意义,因此我们需要告诉正则表达式使用文字$:

<.*id=(/d+).*value="\${USERNAME}"

我遇到了类似的问题,简单地转义$character对我来说不起作用

相反,我不得不使用_V()函数。
在本例中,正则表达式如下所示:

<.*id=(/d+).*value="${__V(${USERNAME})}"

这个问题也让我恼火。
唯一对我有效的解决方案是添加一个BeanShell取样器,其代码如下:

String S=“废话废话…\\\d…${My variable}…废话废话”

变量put(“RegExp”,S)

然后在正则表达式提取器中a仅使用以下内容:

${RegExp}


注意,由于某种原因\d需要用三个反斜杠进行筛选…facepalm.jpg

对于我来说,没有必要转义任何内容(在Jmeter变量语法中)。我使用的是JMeter2.9


在“正则表达式”字段中仅设置变量(包含整个正则表达式,可能是动态生成的)如${regex}也可以使用。

在Apache JMeter 2.9中,正则表达式中包含变量值${MYVARIABLE}的正确表达式为:

__V(${MYVARIABLE})
这应该放在正则表达式中所需的位置


工作很好

对于Jmeter 3.1,我必须使用@spark和@carlos AG所述的${uu V(${MYVAR})语法

我这样做的唯一方法是,首先创建一个字符串,将变量和模式的其余部分连接起来,并将其保存到一个变量中(在后处理器中)。并将其放入正则表达式提取器。

您好,我已经做了一些测试,但仍然无法在我的机器上运行它。现在我只在正则表达式提取器中编写了变量:\$\{APP\u NAME\}。该变量应采用实际正则表达式作为定义的用户定义变量APP_NAME。这并没有产生我想要的效果。一些意见会被告知,你不需要逃避这个大括号。你试过\${APP_NAME}吗?我使用的是JMeter 2.13,我可以使用一个变量而不用转义它。请看@nikolay miroshnichenko的答案。我使用的是JMeter 2.13,我可以证实这一点:使用变量不需要转义。如果这似乎不起作用,那么也许PEBKAC。。。不管怎么说,这就是我的原因。:-)
<.*id=(/d+).*value="${__V(${USERNAME})}"
__V(${MYVARIABLE})