无论如何要在JMeter中验证从RestFul API获得的JSON响应吗?
我得到的回应低于:
{"workingfrom":[{"id":1234,"type":"office","name":"N1"},{"id":5678,"type":"home","name":"N2"}]}
答案 0 :(得分:5)
只需将groovy-all-2.3.2.jar放在JMeter安装的/ lib目录中,然后就可以使用Groovy JsonSlurper包装器了。在路径中使用.jar启动JMeter之后,您可以添加使用Groovy脚本的JSR223 Sampler。
另外,如果你安装了JMeter插件包,那么有一个JSON Path Extractor插件,对我来说效果很好。
这是使用正则表达式的两个非常好的替代方法。如果您正在编写大量测试,则这两种方法中的任何一种都会更好。
答案 1 :(得分:2)
添加响应断言并使用正则表达式验证字符串。你可以使用的正则表达式可以在Stackoverflow的其他地方找到,here来确切。请注意,这是一项非常昂贵的操作,如果您使用 n 并发线程执行此操作,可能会占用您的CPU。
答案 2 :(得分:2)
您可以使用JMeter的JSON插件。
首先安装它:
现在将其添加到您的测试计划(或线程组等):下拉菜单添加 - >断言 - > jp @ gc - JSON Path Assertion
然后配置它:
假设您的数据看起来像{"version":"5.0.0","hitCount":23}
$.hitCount
23
以下是有关JSON Path Assertion的更多信息。
答案 3 :(得分:2)
答案 4 :(得分:0)
如果您想将值与响应值进行比较,则可以创建变量并在 JSR223断言中使用它
String code = vars.get("NumberOfUnit");
if(code >= "250" || code <="1000"){
AssertionResult.setFailure(false);
}
else{
AssertionResult.setFailure("Error");
AssertionResult.setFailure(true);
}
答案 5 :(得分:0)
安装JSON / YAML插件(不建议使用)
我有类似的json结构{"results": [{"types": [{"id":
,但我尝试了$.types
却没有运气。
可以在official documentation中找到正确的JSON路径和值规范:
$.results[*].types
根据您的情况,您可以通过以下方式声明id
的值:
$.workingfrom[*].id