jemter beanshell 获取JSON 对象中的键

安装就不多介绍

本文主要讲解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 完成自动化测试闭环。

posted on 2021-10-22 15:55  老猫爱豆  阅读(165)  评论(0编辑  收藏  举报

导航