Jmeter中通过beanshell脚本解析HTTP请求的返回的json并作为下个请求的输入参数
2016-08-10 20:40
1311 查看
准备工作:
将json-20160212.jar 放入jmeter的lib目录下, 或者在脚本中添加其所在的classpath
jar包可以通过maven获取:
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20160212</version>
</dependency>
举例来说:
‘优先级计算’ 是一个http请求, 其返回结果为一段json:
那么在‘优先级计算’这个sampler上添加一个 BeanShell PostProcessor, 就可以获取这段json信息, 然后通过vars.put("groups",strGroups); 将信息保存到全局变量中。
最后, 在下一个请求的request body中使用这段信息
将json-20160212.jar 放入jmeter的lib目录下, 或者在脚本中添加其所在的classpath
jar包可以通过maven获取:
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20160212</version>
</dependency>
举例来说:
‘优先级计算’ 是一个http请求, 其返回结果为一段json:
{ "priorityGroups": { "promotionId": 1364, "name": "促销03", "groups": [ { "groupId": "a7358a0a-78a1-4418-bb7a-bb752e32295f", "items": [ { "promotionId": 1364, "name": "促销03", "index": 1 }, { "promotionId": 1361, "name": "单品2", "index": 2 }, { "promotionId": 1358, "name": "单品促销-09-指定多个商品-N件X折-1358", "index": 4 } ] } ] }, "promotion": { "promotionId": 1364, "parentId": null, "customerId": 84, "name": "促销03", "subjectId": null, "from": 1470821215000, "to": 1470907615000, "enterType": 1, "hasCoupon": 1, "promoType": 2, "isTemplate": 0, "memo": null, "status": 1, "objectScopeId": 1069, "createBy": 394, "sourceId": 1364, "editStatus": null, "effectiveTime": 1470821215000, "createTime": 1470821155000 } }其中, groups这个json数组的信息是下一个请求所需要的request信息中的一部分。
那么在‘优先级计算’这个sampler上添加一个 BeanShell PostProcessor, 就可以获取这段json信息, 然后通过vars.put("groups",strGroups); 将信息保存到全局变量中。
import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; String jsonContent = prev.getResponseDataAsString(); JSONObject response = new JSONObject(jsonContent); JSONArray groups = response.getJSONObject("priorityGroups").getJSONArray("groups"); String strGroups = groups.toString(); vars.put("groups",strGroups);
最后, 在下一个请求的request body中使用这段信息
相关文章推荐
- Gson利用泛型将Http请求返回的Json字符串快速解析模板
- Volley学习(二)简封Volley、为Volley请求头体添加Json参数、Gson和JsonObject生成Json数据、Gson解析返回的Json
- android通过httpClient请求获取JSON数据并且解析
- Jmeter:Regular Expression Extractor正则表达式提取器上一个http请求报文内容作为下一个请求的参数
- HTTP请求数据返回解析Josn org.codehaus.jackson.map.JsonMappingException的解决方法
- httpclient 上传及返回参数类型,解析json 或xml
- Python发送http请求解析返回json的实例
- 一个完整的通过encoding/json信息传递格式,采用http.POST利用进行与服务器通信,并对返回结果进行解析处理的典型案例
- JAVA 请求http接口返回json数据解析
- python http请求post参数,json解析
- 安卓通过httpget传入json参数,请求数据
- http请求返回并解析json数据
- 通过Http地址返回JSON数据,进行解析;通过ftp返回.txt文件数据,进行解析;
- android通过httpClient请求获取JSON数据并且解析
- android通过httpClient请求获取JSON数据并且解析
- Python发送http请求解析返回json小demo
- 利用ASIHTTPRequest请求java服务和JSONKit解析返回的json串
- android通过httpClient请求获取JSON数据并且解析
- 利用ASIHTTPRequest请求java服务和JSONKit解析返回的json串
- AndroidAsyncHttp与Gson或者Json组合使用,请求直接返回解析对象