前面接口测试都是直接判断接口返回成功就可以了,单还有一些不仅要成功,还要返回的参数正确才行,这里就用到断言jsonpath了。
jmeter的断言jsonPath需要插件安装,如果你没有,请去插件安装那里安装JSON Extractor
jsonpath和xpath很像。
xPath是一种XML遍历的语法,可以从XML文档中提取特定的元素、属性、数据。
jsonPath是类似xPath的查询语法,可以从Json文档中提取特定的元素、属性、数据。
JsonPath与XPath语法对比:
下面操作过程是我从网上抄的,比我自己写的好,大家可以看看。
https://www.cnblogs.com/qiaoyeye/p/6913313.html
操作过程:
- 增加线程组
2.添加一个http请求,响应结果是json类型,如果是其他类型则不在本文讨论范围内
如我的请求的响应结果是:
我们想要提取响应结果中数组的第一个skillName的值
4.添加后置处理器:JSON Extractor,按如下设置
表达式也可以这样写: . . s k i l l s I n f o [ 0 ] . s k i l l N a m e , 具 体 写 法 可 参 照 j s o n p a t h 的 规 范 , 也 可 参 照 我 的 这 篇 文 章 h t t p : / / w w w . c n b l o g s . c o m / q i a o y e y e / p / 5236103. h t m l , 这 样 我 们 边 可 以 引 用 从 j s o n 中 提 取 的 响 应 值 , 具 体 引 用 变 量 方 法 : ..skillsInfo[0].skillName,具体写法可参照jsonpath的规范,也可参照我的这篇文章http://www.cnblogs.com/qiaoyeye/p/5236103.html,这样我们边可以引用从json中提取的响应值,具体引用变量方法: ..skillsInfo[0].skillName,具体写法可参照jsonpath的规范,也可参照我的这篇文章http://www.cnblogs.com/qiaoyeye/p/5236103.html,这样我们边可以引用从json中提取的响应值,具体引用变量方法:{test1}
5.添加断言JSON Path Assertion,并按如下设置
6.运行该线程组,即可看到断言结果
7.在json断言的预期结果中,我们也可以填写变量,如我们对比前面步骤用JSON Extractor提取的值:
8.勾选Match as regular expression