JMeter组件之BeanShell PostProcessor的使用
1. 场景一:获取请求响应中的数据,并保存
import com.alibaba.fastjson.*; // 引入包。这个包需要先放在:<安装目录>\apache-jmeter-3.2\lib\ext中
// 获取数据
String response = prev.getResponseDataAsString(); // 获取Response
JSONObject responseObj = JSON.parseObject(response); // 整个Response作为JSON对象
JSONObject resObj = responseObj.getJSONObject("res"); // 获取某一部分对象。即,json串中{}的内容
JSONArray listArray = resObj.getJSONArray("list"); // 获取列表。即,json串中[]的内容
// 保存数据
// 1) 列表
int len = listArray.size();
for(int i=0; i<len; i++){
temp[i] = listArray.get(i).getString("name");
}
vars.put("names", Arrays.toString(temp)); // 保存到JMeter变量中,vars.put只能保存字符串,因此这里使用了toString()进行转换
// 2) String类型
String id = resObj.get("id"); // 获取对象中某一字符串的内容。
vars.put("id", id); // 保存到JMeter变量中,后面的组件可以使用
// 3) Integer类型
Integer no = resObj.get("id"); // 获取对象中某一整型的内容。
vars.put("no", no.toString()); // 保存到JMeter变量中,vars.put只能保存字符串,因此这里使用了toString()进行转换
2. 场景二:获取数据库中查询到的数据,并保存
前提:在JDBC Request中已经获取到数据,详见《JDBCRequest的用法》。
select total_cash from t_cash where user_name="tom";
在Result variable name中的值为:result
String cash_new = vars.getObject("result").get(0).get("total_cash").toString();
vars.put("cash_new", cash_new); // 操作前与此步骤相同,不再赘述。保存的变量名为cash_old
---------------------
作者:aduocd
来源:CSDN
原文:https://blog.csdn.net/aduocd/article/details/80351719
版权声明:本文为博主原创文章,转载请附上博文链接!
相关文章
- 【Vue】路由组件中失去焦点和获得焦点的两个事件
- vue 自定义报警组件
- vue 手风琴组件
- windows server 2008 w3svc服务无法启动,错误 1068依赖服务或组件无法启动
- vue组件传值的方法有哪些
- 【微信小程序/组件】媒体组件
- SwiftUI3 新API组件之 03 AngularGradient
- SwiftUI 实战之调用内置字典组件(教程含源码UIReferenceLibraryViewController)
- 基于 STM32CubeMX 添加 RT-Thread 操作系统组件(八) - 消息队列
- 微盟电子商城网络交易系统——Day02【SpringCloud Alibaba、分布式组件、前端基础、java8特性】
- Unity UI系统-NGUI-基本组件(二)
- JMeter主要组件介绍(2)
- JMeter入门(1):JMeter总体介绍及组件介绍
- broadAnywhere:Broadcast组件权限绕过漏洞(Bug: 17356824)
- 2016年630后光伏组件价格下降路径分析