20

无论如何要验证从 JMeter 中的 RestFul API 获得的 JSON 响应?

我收到以下回复:

{"workingfrom":[{"id":1234,"type":"office","name":"N1"},{"id":5678,"type":"home","name":"N2"}]}
4

6 回答 6

11

JSON 断言是另一种方式(在 JMeter 4 中)。它可以轻松地断言节点是否存在。它甚至可以断言节点值(正则表达式或其他)。 在此处输入图像描述

于 2018-07-10T18:32:11.787 回答
5

只需将 groovy-all-2.3.2.jar 放在 JMeter 安装的 /lib 目录中,然后您就可以使用 Groovy JsonSlurper包装器。在路径中使用该 .jar 启动 JMeter 后,您可以添加一个使用 Groovy 脚本的 JSR223 Sampler。

此外,如果您安装 JMeter 插件包,还有一个JSON 路径提取器插件,它对我来说效果很好。

这是使用正则表达式的 2 个非常好的替代方法。如果您正在编写大量测试,那么这两种方法中的任何一种都会更好。

于 2014-06-03T00:32:32.673 回答
3

您可以使用 JMeter 的 JSON 插件。

首先安装它:

  1. 下载 Plugins Manager JAR 文件并将其放入 JMeter 的 lib/ext 目录中。然后启动 JMeter 并转到“选项”菜单以访问插件管理器。
  2. 在可用插件选项卡上,选择 JSON 插件,然后单击按钮应用更改并重新启动 JMeter。

现在将其添加到您的测试计划(或线程组等)中:下拉菜单添加 -> 断言 -> jp@gc - JSON 路径断言

然后配置它:假设你的数据看起来像{"version":"5.0.0","hitCount":23}

  1. JSON路径:$.hitCount
  2. 期望值(正则表达式):23

这是有关JSON 路径断言的更多信息。

于 2017-04-20T16:33:02.980 回答
2

添加响应断言并使用正则表达式来验证字符串。您可以使用的正则表达式可以在 Stackoverflow 的其他地方找到,这里是准确的。请注意,这是一个非常昂贵的操作,如果您使用n 个并发线程执行此操作,可能会占用您的 CPU。

于 2013-06-26T09:02:33.197 回答
1

如果要将值与响应值进行比较,可以创建变量并在JSR223 断言中使用它

String code = vars.get("NumberOfUnit");
if(code >= "250" || code <="1000"){
    AssertionResult.setFailure(false);
}
else{
    AssertionResult.setFailure("Error");
    AssertionResult.setFailure(true);
}

创建可变图像 - JMETER
脚本 - JMETER

于 2019-12-18T19:18:31.460 回答
0

我有类似的 json 结构{"results": [{"types": [{"id":,但我$.types没有运气。

正确的 JSON 路径和值规范可以在官方文档中找到:

$.results[*].types

在此处输入图像描述

在您的情况下,您可以通过以下方式断言id价值:

$.workingfrom[*].id
于 2020-07-23T16:50:11.593 回答