如何在jmeter中的常规Extracor表达式中获得最后一个匹配项?


问题内容

我想提取Jmeter中正则表达式的最后一次出现。我使用正则提取器表达式来执行此操作,但是我没有最后一次出现。

我尝试了这个:

  • 正则表达式 :“ var1”:([[^“] +),” var2“
  • 模板 :$ 1 $
  • 比赛编号 :-1
  • 默认值 :expression_matchNr

然后在脚本中,我使用了 $ {expression} 变量

我已经测试过 expression_matchNr, 但是它给了我匹配的次数。

我应该在“ 比赛编号: ”中输入什么?

提前致谢


问题答案:

如果有以下输出:

expression=foo
expression_1=foo    
expression_2=bar
expression_3=**what you looking for**
expression_matchNr=3

您可以使用JMeter的__V函数获取expression_3变量的值

根据功能描述

例如,如果一个变量具有A1,A2和N = 1:

  • ${A1} -可以
  • ${A${N}} -不起作用(嵌套变量参考)
  • ${__V(A${N})}-可以。A $ {N}变为A1,__ V函数返回A1的值

因此,在您的情况下,无论有多少个匹配项,返回最后一个匹配项都将如下所示:

${__V(expression_${expression_matchNr})}

有关使用函数可以执行的其他操作,请参见如何使用JMeter函数文章系列。