jmeter如何提取json数据作为其他的接口入参

在我们实际的业务请求中,服务器响应用户请求的数据格式为JSON,然而我们通常需要提取接口A的响应值作为接口B的入参;那么在实际的应用中,从json响应值取得这个参数作为下一下接口的入参数呢?比如对于用户这个请求,

/communicator/app/share/getSharelist246.action?sessionId=5DE154A0AAFC0323D4BF090D32674DEC&page=1&rows=2

服务器端响应如下图所示:

jmeter如何提取json数据作为其他的接口入参_第1张图片
响应结果

此时我们需要提取这个响应结果中的picUrl的值作为其他接口的入参数,我们应该如何做呢?在Jmeter工具中方法有三:

一、正则表达式:

点击右键-添加正则表达式,

 引用名称:填写提取值的变量名(即在Jmeter工具需要使用的变量名称);

正则表达式处:提取内容的正则表达式;   ()表示提取,对于你要提取的内容需要用小括号括起来。

模板:用$$引用起来,如果在正则表达式中有多个提取表达式(多个括号括起来的部分),则可以是$1$,$2$等等,表示解析到的第几个值给picUrl,正则表达式的提取模式,值从1开始,值0对应的是整个匹配的表达式。匹配数字(0代表随机):0代表随机,-1代表所有,其余正整数代表将在已提取的内容中第几个匹配的内容。这里需要提取的是第二个匹配的值。缺省值:正则匹配失败时取的值。


jmeter如何提取json数据作为其他的接口入参_第2张图片

二、使用jp@gc - JSON Path Extractor配置元件提取

TIPS,使用这个配置元件提取时,首先需要在获取在在jmeter的plugins网站http://jmeter-plugins.org/downloads/all/选择 JMeterPlugins-ExtrasLibs-X.X.X.zip下载,解压以后将lib和lib/ext中的jar包放到jmeter安装目录对应位置,然后重启jmeter,才可以使用这个配置元件

在Sampler上面添加后置处理器-->jp@gc - JSON Path Extractor,


jmeter如何提取json数据作为其他的接口入参_第3张图片
JSON Path Extractor

方法三:使用BeanShell PostProcessor元件提取

TIPS1.在使用这个元件提取时,首先需要将fastjson.jar工具包中拷贝到 jmeter lib 文件夹下后,然后重启 jmeter在Sampler上面添加后置处理器-->BeanShell PostProcessor

import com.alibaba.fastjson.JSON;

import com.alibaba.fastjson.JSONArray;        

import com.alibaba.fastjson.JSONObject;    //引入 fastjson.jar包

String json=prev.getResponseDataAsString();   //将用户的请求返回值转换成String存储在json变量中

JSONObject jso = JSON.parseObject(json);    //将json字符串转换成一个Object对象存储在jso中

JSONArray datas = jso.getJSONArray("rows");  //从 jso对象中获取获取至rows列表存放在datas中

vars.put("picUrl",datas.getJSONObject(0).getString("picUrl")); 从列表中获取第一个对象的的 picUrl值,存放在Jmtere变量picUrl中


jmeter如何提取json数据作为其他的接口入参_第4张图片
使用 BeanShell PostProcessor提取json值

你可能感兴趣的:(jmeter如何提取json数据作为其他的接口入参)