如何根据Jmeter中先前采样器的响应检查null / empty或value?

时间:2018-03-22 10:01:18

标签: json jmeter

我从其中一个Key中提取了Json响应的值。它有两个可能的值

Key=[] or 
Key=[{"combination":[{"code":"size","value":"Small"}]},{"combination":
[{"code":"size","value":"Medium"}]}]

我需要检查Key是[是]还是有一些值。你可以帮我解决下面的实施有什么问题:

if ("${Key}"=="[]") {
vars.put('size', 'empty')
} else {
vars.put('size', 'notempty')
}

我的Switch控制器未根据上述实现导航到Else Part。帮助很有用!

2 个答案:

答案 0 :(得分:1)

  1. 不要将JMeter Functions or Variables内联到脚本体中,因为它们可能会解决导致编译失败或意外行为的问题。使用“参数”部分,如:

    JMeter Groovy Parameters

  2. 或改为使用vars.get('Key')语句。

    1. 不要使用==比较字符串文字,而是使用.equals()方法
    2. 有关在JMeter测试中使用Groovy脚本的更多信息,请参阅Apache Groovy - Why and How You Should Use It文章

答案 1 :(得分:0)

如果您已经提取了一个值Key并且您使用的是具有默认JavaScript的if控制器,则可以在condition字段中执行以下操作:

"${Key}".length > 0

"${Key}"正在评估您的JavaScript对象是一个数组。您可以检查数组的长度以查看其中是否有对象。