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