安装就不多介绍
本文主要讲解beanshell 如何将接口返回数据 数据处理后用于其他接口提供参数 完成自动化测试闭环。希望能帮助到大家!后端语言环境为PHP
获取JSON 对象中的键
获取上图中1的步骤如下
1.添加 BeanShell 后置处理程序
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONArray;//此包没有的话 百度一下 //获取返回数据 字符串类型 String response_data = prev.getResponseDataAsString(); log.info(response_data); // 字符串转对象 JSONObject data_obj = JSON.parseObject(response_data); //获取到目标对象 {"1":"在线支付","0":"对公支付"}} JSONObject jsonObject = data_obj.get("result").get("data"); //声明数组变量 JSONArray jsonArray = new JSONArray(); //遍历对象 for (Map.Entry entry : jsonObject.entrySet()) { //添加进数组 jsonArray.add(entry.getKey()); } log.info(jsonArray.toString()); //添加属性供全线程组使用 props.put("_expectPayment", jsonArray);
上步骤存入了数组变量 ["0","1"] 供其他接口使用
2.在需要使用此数据的接口 添加 BeanShell 预处理程序
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; //获取数组 JSONArray jsonArray = props.get("_expectPayment"); //获取数组中随机值 即获取到了目标值 0或1 vars.put("expectPayment",jsonArray.get((int)(Math.random()*jsonArray.size()))); log.info(vars.get("expectPayment"));
即可通过 ${expectPayment}获取到0或1 完成自动化测试闭环。
本文摘自 :https://www.cnblogs.com/