jmeter中JSON Extractor用法

一、基础信息

所用jmeter版本:jmeter4.0

所记录功能名称:JSON Extractor

二、使用需求

在对返回结果较复杂且为json结构的HTTP请求进行提取某一个值,以用作其他接口使用或者用来断言的等。

三、使用方法

1、添加步骤:选择线程组中的HTTP请求——右键“添加”——后置处理器——JSON Extractor

图示如下:

2、实例说明

这一过程主要说明如何去写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]会在后边说明。

√、关于匹配一个数组的内容的用法。

差不多了,不同层级的匹配实例说明的都已经说的可以了,照葫芦画瓢应该可以学会一些 。但是这个过程中还有一些需要说明的东西后边一起说明~~~。

四、要学会用

前一个过程说明了如何去写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”,使用场景需要获取的值有多个,后面需要对这一组数据进行操作。

五、特别关注

1、json串 []表示对象组成的数组,{}表示对象

2、如果需要同时匹配多个值,可以如图设置

3、在第二步中list[0]的用法说明:[0] 表示匹配第一个值,[1] 表示匹配第二个值,[*] 表示匹配所有的值,如图:

4、JSON Extractor主要用于匹配返回数据结构为json的参数提取

 关于需要了解函数助手的用法的可以到这里:https://www.cnblogs.com/Zhan-W/p/10197677.html

完事,先看吧!有啥疑问或者建议欢迎留言,我在补充,谢谢喽!

 

posted @ 2019-06-06 16:40  漂泊的小虎  阅读(12250)  评论(0编辑  收藏  举报