我从Json Path exression
获得了这个过滤的JSON响应[40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40, 40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,45, 45,45,45,45,42,45,42,45,42,41,40,35,37,35,45,42,41,40,35,37,35,45,42,41,40, 35,37,35,45]
我需要写一些断言,它基本上断言这些值在ex:30到60之间。 我没有得到任何关于如何在jmeter中断言的指示。
答案 0 :(得分:2)
JMeter不提供适当的测试元素,因此您必须编写一些脚本。
以下代码假定JMeter版本等于或高于3.0。对于早期的JMeter版本,您必须将Json-smart库放在JMeter Classpath
中的某个位置将以下代码放入Beanshell断言“脚本”区域
import net.minidev.json.JSONArray;
import net.minidev.json.parser.JSONParser;
import org.apache.commons.lang.math.IntRange;
String source = vars.get("yourVar");
IntRange range = new IntRange(30, 60);
JSONParser parser = new JSONParser(JSONParser.MODE_JSON_SIMPLE);
JSONArray array = (JSONArray) parser.parse(source);
for (int i = 0; i < array.size(); i++) {
int value = (int) array.get(i);
if (!range.containsInteger(value)) {
Failure = true;
FailureMessage = "Detected value: " + value + " is not in the expected range";
}
}
如果找到超出给定范围的值,Beanshell断言将使父采样器失败
有关使用脚本增强JMeter测试的更多信息,请参阅How to Use BeanShell: JMeter's Favorite Built-in Component文章。