1、基础信息html
所用jmeter版本:jmeter4.0express
所记录功能名称:JSON Extractorjson
2、使用需求数组
在对返回结果较复杂且为json结构的HTTP请求进行提取某一个值,以用做其余接口使用或者用来断言的等。数据结构
3、使用方法dom
一、添加步骤:选择线程组中的HTTP请求——右键“添加”——后置处理器——JSON Extractor函数
图示以下:测试
二、实例说明spa
这一过程主要说明如何去写JSON Extractor匹配表达式以及如何去验证本身写的JSON Extractor是否正确线程
{为了方便看,查看json的目录层级用抓包的结果展现,jmeter返回的不能收缩,不方便查看}
√、咱们使用JSON Extractor匹配第一层级内容message的值(为了方便查看把不须要的层级给收起来了 )。 抓包查看返回的结构以下:
使用jmeter的查看结构树中的 json path expression能够测试本身所写的JSON Extractor是否正常。测试结果以下:
√、咱们使用JSON Extractor匹配第二层级内容total的值(为了方便查看把不须要的层级给收起来了 )。 抓包查看返回的结构以下:
使用jmeter的查看结构树中的 json path expression能够测试本身所写的JSON Extractor是否正常。测试结果以下:
√、咱们使用JSON Extractor匹配第三层级内容id的值(为了方便查看把不须要的层级给收起来了 )。 抓包查看返回的结构以下:
使用jmeter的查看结构树中的 json path expression能够测试本身所写的JSON Extractor是否正常。测试结果以下:
注:关于用到的一个[0]会在后边说明。
√、关于匹配一个数组的内容的用法。
差很少了,不一样层级的匹配实例说明的都已经说的能够了,照葫芦画瓢应该能够学会一些 。可是这个过程当中还有一些须要说明的东西后边一块儿说明~~~。
4、要学会用
前一个过程说明了如何去写JSON Extractor匹配表达式以及如何去验证本身写的JSON Extractor是否正确,接下来这一个过程主要记如何去使用写的JSON Extractor匹配表达式。
添加了两个HTTP请求,目录以下:
实例:获取待出库单列表接口和查看待出库单详情接口,须要实现的过程是:先获取待出库单列表,而后使用JSON Extractor获取列表中其中一个stockOutId的值而后在第二个接口中去使用,并返回内容。
再来看JSON Extractor中的内容,其实就是直接把在json path expression测试验证正确的表达式复制到这里来就好了。
这咋忽然感受没啥可说得了呢,如何写已经描述了,如何用也图示了。
把几个参数标注一下吧
names of created Variable :保存的变量名,后面使用${变量名}引用,如:${stockOutId}
JSON Path expressions:上一步中调试经过的json path表达式,若是:$.data.list[0].stockOutId
Match No.(0 for Random):匹配数字(0表明随机,1表明第一个,-1表明全部)
Default Values:找不到时默认值,通常设置为NOT FOUND
Compute concatenation var(suffix_ALL):是否统计全部,即将匹配到的全部值保存,名为“变量名_ALL”,使用场景须要获取的值有多个,后面须要对这一组数据进行操做。
5、特别关注
一、json串 []表示对象组成的数组,{}表示对象
二、若是须要同时匹配多个值,能够如图设置
三、在第二步中list[0]的用法说明:[0] 表示匹配第一个值,[1] 表示匹配第二个值,[*] 表示匹配全部的值,如图:
四、JSON Extractor主要用于匹配返回数据结构为json的参数提取
关于须要了解函数助手的用法的能够到这里:http://www.javashuo.com/article/p-xezgfvdg-hq.html
完事,先看吧!有啥疑问或者建议欢迎留言,我在补充,谢谢喽!