【问题标题】:If-Then-Else Conditionals Regular Expressions Query in JmeterJmeter中的If-Then-Else条件正则表达式查询
【发布时间】:2015-08-07 10:47:44
【问题描述】:

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

首先,我通过正则表达式提取器从1号采样器中提取“ContactOwnerId”,这是成功的。

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

现在,我想要 "LastName",方法是通过正则表达式提取器从 2 号采样器中过滤掉 "ContactOwnerId"

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

注意: "LastName""ContactOwnerId" 都可以从 Sampler No. 1 和 2 中提取,但我是首先从 1 号采样器中提取 "ContactOwnerId",然后通过比较提取的 "ContactOwnerId" 尝试从 2 号采样器中提取 "LastName" 与当前的 “ContactOwnerId”

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

谢谢

【问题讨论】:

    标签: regex jmeter


    【解决方案1】:

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

    如前所述,我正在通过正则表达式提取器从 1 号采样器中提取“ContactOwnerId”。

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

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

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

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

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

    正则表达式查询:"OWNERID":((?!724812)\d+),.*?"LASTNAME":"(.*?)"

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

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

    正则表达式查询:"OWNERID":((?!${__V(${GetOwnerId})})\d+),.*?"LASTNAME":"(.*?)"

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多