有没有办法用包含动态变量(例如,${var})的regex来设置regex提取器?
询问的基本原理是因为我的测试计划的一个部分是从html响应中获取某个用户帐户的用户ID,因此随后Jmeter将继续使用该用户ID作为参考。如果我只关心测试计划的一个线程,那么它就会像下面这样简单
<.*id=(/d+).*value="johndoe"
但是我希望测试计划足够灵活,能够处理多个线程,每个线程代表一个唯一的用户,所以正则表达式必须类似于下面这样
<.*id=(/d+).*value="${USERNAME}"
关于如何实现这一点的一两个建议将不胜感激。如果不能实现,另一种方法也是好的
谢谢
发布于 2011-04-22 15:47:44
大家好,
作为一个即将成为Jmeter爱好者的人,你会发现这种情况经常发生。您只需要对正则表达式中的特殊字符进行转义。美元符号在PERL正则表达式中有特殊含义,因此我们需要告诉正则表达式使用文字$:
<.*id=(/d+).*value="\${USERNAME}"
另外,id部分有点贪婪。我会推荐:
<.*id=(/d+?) value="${USERNAME}"
发布于 2013-03-13 01:21:09
我遇到了类似的问题,简单地转义$字符对我不起作用。
相反,我必须使用__V()函数。
因此,在此示例中,正则表达式如下所示:
<.*id=(/d+).*value="${__V(${USERNAME})}"
我不需要转义$字符。我使用的是JMeter 2.9
发布于 2013-11-06 10:52:38
在Apache JMeter 2.9中,在正则表达式中包含变量值${MYVARIABLE}的正确表达式为:
__V(${MYVARIABLE})
它应该放在正则表达式中所需的位置。
工作正常!
https://stackoverflow.com/questions/5341908
复制