在Jmeter中使用If-Then-Else条件正则表达式查询

时间:2015-08-07 10:47:44

标签: regex jmeter

我试图通过过滤 ContactOwnerId 来提取 ContactLastName

首先,我正在从1号采样器到正则表达式提取器中提取" ContactOwnerId" ,这是成功的。

我的RegEx查询是: "OWNERID":(\d+),

现在,我希望" LastName" 过滤掉来自第2号采样器的" ContactOwnerId" 表达式提取器。

我的RegEx查询是: (?(?"OWNERID":(\d+),==\${GetContactOwnerId})(?"LASTNAME":"(.*?)"))

注意:两者&#34; LastName&#34; &amp;可以从1号采样器中提取&#34; ContactOwnerId&#34; 。 2,但我首先从1号采样器中提取&#34; ContactOwnerId&#34; ,然后尝试提取&#34; LastName&#34; < / em>来自2号采样器,将提取的&#34; ContactOwnerId&#34; 与当前的&#34; ContactOwnerId&#34; 进行比较。

第二个正则表达式提取器无法提取,请验证并建议正确的查询。

由于

1 个答案:

答案 0 :(得分:0)

以下方式,问题得到了解决:

如上所述,我正在提取&#34; ContactOwnerId&#34;从1号进样器到正则表达式提取器。

我的RegExp查询是:"OWNERID":(\d+),

在第二个采样器中,我试图通过正则表达式提取器再次提取LastName。

我的RegExp查询是:(?(?"OWNERID":(\d+),==\${GetContactOwnerId})(?"LASTNAME":"(.*?)"))

我觉得在RegExp查询中使用If-Then-Else模式很复杂,因此在我的RegExp查询中使用了NOT运算符,它运行成功。

首先,我尝试使用无错误的静态数据;

RegExp查询:"OWNERID":((?!724812)\d+),.*?"LASTNAME":"(.*?)"

我刚刚在我的RegExp中添加?!,这意味着NOT运算符。

然后,我尝试使用动态变量进行提取;

RegExp查询:"OWNERID":((?!${__V(${GetOwnerId})})\d+),.*?"LASTNAME":"(.*?)"

在这里,我使用了 V函数,它返回了评估变量名的值。