JMeter使用JSON Extractor插件实现将一个接口的JSON返回值作为下一个接口的入参

##补充##

接口响应数据,一般为JSON,HTML格式的数据。

对于HTML的响应结果提取,可以使用正则表达式,也可以通过XPath来提取;对于JSON格式的数据,可以用正则表达式,JSON Extractor插件,BeanShell来提取JSON响应结果。

 

比如:想要获取响应中的 robotCallJobId 作为下一个接口的入参,可以使用JMeter的JSON提取器(JSON Extractor),提取该值,参数化该入参

 

操作步骤如下:

1.安装JMeter插件管理器(Plugins Manager)

下载地址:https://jmeter-plugins.org/install/Install/ 

 直接下载 plugins-manager.jar,然后把jar包放到JMeter的安装路径下:/apache-jmeter-3.2/lib/ext,重启JMeter,进入JMeter的GUI页面,会发现多了一个插件管理器的标志,点击打开选择要用的插件(JSON Extractor)安装

 

 在Available Plugins中选择需要安装的插件(JSON/YAML Path Extractor),安装了的插件可以在 Installed Plugins中查看

 

 

2.使用JSON/YAML Path Extractor 提取响应JSON中的某一具体值

 在需要提取响应数据的HTTP请求下面,添加一个 jp@gc - JSON/YAML Path Extractor  ,添加路径为:HTTP请求-》添加-》后置处理器-》 jp@gc - JSON/YAML Path Extractor

 

根据JSON格式,提取想要的数据

##解释##

1》.Destination Variable Name:指变量名称,就是你要提取的那个数据的key值

2》.JSONPath Expression:指要获取数据的JSON层级,层级一定要书写正确,否则会提取失败,同时数组类的级别,需要指定下标

3》.Default Value:缺省值,当会有获取数据时,传入的值

 

3. 在接口中,使用提取的数据作为入参

3.1在Body Data中,使用${变量名称},如 ${robotCallJobId}传参,当提取的值是一组数据,但是下个接口并不需要传入all数据,而且该数组中的部分数据,此时可以使用下标,指定传入的参数,${robotCallJobId_1}表示第一个值,${robotCallJobId_n}表示该数组的第N个值

3.2在Parameters中使用${变量名称},如${robotCallJobId} 当成value值传参

这样就实现了,将上一个接口的JSON响应数据获取,作为下一个接口的入参了

posted @ 2019-08-22 14:54  我就想叫油条  阅读(2023)  评论(0编辑  收藏  举报