使用正则表达式提取器为Json响应获取变量的null值

时间:2016-04-13 08:29:51

标签: jmeter jmeter-plugins

我使用视图结果树测试了正则表达式,它返回了正确的数据(30个匹配结果)。我在正则表达式提取器中使用引用名称作为regexid。我使用的正则表达式是\ d {7} $ {regexid}的值等于null。交叉检入调试采样器。它有以下信息regexid = null regexid_g = 0 regexid_g0 = 6104546

当正则表达式有30个匹配项时,为什么regexid具有空值

enter image description here

3 个答案:

答案 0 :(得分:1)

我的期望是你没有把任何东西放入"模板"字段,请尝试以下配置:

  • 模板:$1$
  • 匹配号码:-1

根据Using RegEx (Regular Expression Extractor) With JMeter指南:

  

<强>模板即可。

     

用于根据找到的匹配项创建字符串的模板。这是一个包含特殊元素的任意字符串,用于引用正则表达式中的组。引用组的语法是:&#39; $ 1 $&#39;引用第1组,&#39; $ 2 $&#39;引用组2等。$ 0 $指的是整个表达式匹配的内容。因此,如果您在回答“经济学”一词并搜索正则表达式“(ec)(onomics)”并应用模板$ 2 $$ 1 $而不是输出变量,您将收到“onomicsec”。

N.B。通过JSON Path Extractor项目可以使用JMeter Plugins来处理JSON响应可能更容易

答案 1 :(得分:0)

看起来你的正则表达式是错误的,因为它没有包含定义的返回组。

答案 2 :(得分:0)

如果您传递-1作为匹配号而不是regexid将具有您在正则表达式提取器的默认值中定义的值。如果您想使用所有值,则可以通过传递$ {regexid_1},$ {regexid_2}等来使用它。请参考以下快照enter image description here

这里没有发现默认值

enter image description here

所以链接变量由notfound组成(在regex etractor中定义的defulat值,似乎你已经在默认值中定义了null,所以你得到null)。 rest所有值都存储在以数字

附加的引用名称中