beanshell变量_十四、Jmeter中Beanshell的使用

Beanshell介绍

Beanshell 是一种轻量级的 Java 脚本,纯 Java 编写的,能够动态的执行标准 java 语法及一些扩展脚本语法,类似于 javaScript,在工作中可能用的多的就是:

  • Beanshell 取样器:跟Http取样器并列

  • Beanshell前置处理器:一般放在Http请求下,在请求后处理一些数据

  • Beanshell后置处理器:一般放在Http请求下,在请求前处理一些数据

  • Beanshell断言:一般放在Http请求下,做一些复杂断言

常用内置变量   log 打印日志,我们常常可以用来调试问题,使用举例 log.info("你想打印的内容") log.error("你想打印的错误内容")

vars和props

区别:
  • vars 只能在当前线程内使用,props 可以跨线程组使用
  • vars 只能保存 String 或者 Object,props 是 Hashtable 对象
vars常用方法:
  1. vars.get(String key):从jmeter中获得变量值;
  2. vars.put(String key,String value):数据存到jmeter变量中;

props常用方法:

  1. props.put("token","ertyuiahdg127423g4hjdkacnb");

  2. props.get("token");

prev

获取前面的sample返回的信息,常用方法:
  1. prev.getResponseDataAsString():获取响应信息
  2. prev.getResponseCode() :获取响应code
综合运用

一般来说,我们接口返回都是标准的json格式数据,例如:

{"datas":[{"name":"张三","age":18,"address":"河北","phone":"1311111111"},{"name":"李四","age":28,"address":"北京","phone":"13222222222"},{"name":"王五","age":23,"address":"江苏","phone":"13333333333"},{"name":"赵六","age":32,"address":"湖北","phone":"13444444444"},{"name":"玛丽","age":45,"address":"美国","phone":"13555555555"},{"name":"亨利","age":39,"address":"法国","phone":"13666666666"}]}

那我就需要使用一些专门处理json数据的jar包来对数据进行二次加工,这里举例使用json.jar,具体代码如下:

//从json.jar导入所需要的类import org.json.JSONObject;import org.json.JSONArray;//从变量获取数据,因为我在用户自定义变量设置的上面的json数据String response = vars.get("response");// 打印日志看看是否取到log.info("看看response:"+response);//String reponse = prev.getResponseDataAsString();//如果从接口取,可以这么写// String 转化成JSONObjectJSONObject resObj = new JSONObject(response);// 去除datas下的数据JSONArray resArray = resObj.get("datas");log.info("取出resArray:"+resArray.toString());//注意,需要把array转成String才能打印// 遍历取出年龄>30的数据,并存入新的JSONObjectJSONObject newObj = new JSONObject();//定义一个空的JSONObjectfor(JSONObject item:resArray){  int age = item.get("age");//取出ageif(age>30){String name = item.get("name");//取出name作为key    newObj.put(name,age);  }}// 打印下取出的数据正确与否log.info("大于30的人:"+newObj.toString());// 存入变量,供下面接口使用vars.put("newObj",newObj.toString());
我们看下日志

562a3c2702ce9e358b200ff1e45fd19f.png

好了,Beanshell语法介绍到这!

1d83bc2394c27093f21d04efba71661c.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值