ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

MeterSphere(5):使用Beanshell后置脚本获取Json中的数据

2021-04-27 18:01:53  阅读:925  来源: 互联网

标签:角色 roleId Json Beanshell MeterSphere roleName null createTime roleDescribe


MeterSphere使用后置脚本Beanshell获取Json中的数据(MeterShpere的beanshell可参考jmeter)

前提:

因新增用户需要用到角色id,但列表中的角色很多,需要查到对应的角色名称获得对应的角色id

解决方法:通过Beanshell获取json数据,并比对角色名称获得角色id

 

该查询角色请求接口返回的响应体:

{
    "code": 0,
    "data": {
        "totalCount": 23,
        "pageSize": 10,
        "totalPage": 3,
        "currPage": 1,
        "list": [
            {
                "roleId": "1386932755329212418",
                "roleName": "rolename68683436",
                "roleDescribe": "角色描述",
                "createTime": 1619505511000,
                "permissionList": null,
                "permissionIdList": null
            },
            {
                "roleId": "1386933252324876289",
                "roleName": "rolename12237116",
                "roleDescribe": "角色描述",
                "createTime": 1619505630000,
                "permissionList": null,
                "permissionIdList": null
            },
            {
                "roleId": "1386937586399862786",
                "roleName": "rolename30616863",
                "roleDescribe": "角色描述",
                "createTime": 1619506663000,
                "permissionList": null,
                "permissionIdList": null
            },
            {
                "roleId": "1386937804906323970",
                "roleName": "rolename59824176",
                "roleDescribe": "角色描述",
                "createTime": 1619506715000,
                "permissionList": null,
                "permissionIdList": null
            },
            {
                "roleId": "1386938077972291586",
                "roleName": "rolename38355327",
                "roleDescribe": "角色描述",
                "createTime": 1619506781000,
                "permissionList": null,
                "permissionIdList": null
            },
            {
                "roleId": "1386938538154549249",
                "roleName": "rolename71155716",
                "roleDescribe": "角色描述",
                "createTime": 1619506890000,
                "permissionList": null,
                "permissionIdList": null
            },
            {
                "roleId": "1386938671428558850",
                "roleName": "rolename76969316",
                "roleDescribe": "角色描述",
                "createTime": 1619506922000,
                "permissionList": null,
                "permissionIdList": null
            },
            {
                "roleId": "1386938740525522945",
                "roleName": "rolename52641082",
                "roleDescribe": "角色描述",
                "createTime": 1619506938000,
                "permissionList": null,
                "permissionIdList": null
            },
            {
                "roleId": "1386938875733106689",
                "roleName": "rolename62736553",
                "roleDescribe": "角色描述",
                "createTime": 1619506971000,
                "permissionList": null,
                "permissionIdList": null
            },
            {
                "roleId": "1386939085746102274",
                "roleName": "rolename79351680",
                "roleDescribe": "角色描述",
                "createTime": 1619507021000,
                "permissionList": null,
                "permissionIdList": null
            }
        ]
    }

后置脚本获取json

操作步骤:

1、beanshell脚本中获得其他变量:

String add_rolename=vars.get("rolename");

2、通过beanshell后置脚本找到对应角色名称,例如:rolename的角色id,并输出变量给其他接口使用

vars.put("roleId", roleId);

//导入json包
import org.json.*;

//其他变量赋值到beanshell
String add_rolename=vars.get("rolename");
//log.info("--------------" + add_rolename);

//获取接口响应数据
String response_data = prev.getResponseDataAsString();
//log.info(response_data);
//转换为Object对象类型
JSONObject data_obj = new JSONObject(response_data);
//log.info("--------------" + data_obj.toString());
//获取数据
String StrData = data_obj.get("data").toString();
//log.info("--------------" + StrData.toString());

//转换为Object对象类型
JSONObject data2_obj = new JSONObject(StrData);
//获取list数据
JSONArray list_array = data2_obj.getJSONArray("list");
log.info("--------------" + list_array.toString());
int len = list_array.length();
String strlen = Integer.toString(len);
for(int i=0;i < len;i++)
{
    JSONObject jsonTemp = (JSONObject)list_array.getJSONObject(i);
    //log.info("--------------" + jsonTemp.getString("roleName"));
    String roleName=jsonTemp.getString("roleName");
    if (roleName.equals(add_rolename)){
        String roleId=jsonTemp.getString("roleId");
        log.info("--------------" + roleId);
        vars.put("roleId", roleId);
        
    }
}

控制台输出结果:

获得的角色id:roleId在其他接口中的使用:

{
    "trueName": "${true_name}",
    "roleIdList": [
        "${roleId}"
        ],
    "organizationCodeArr": [
        "0"
    ],
    "organizationCode": "0",
    "loginPassword": "${userPwd}",
    "mobile": "${mobile}",
    "userName": "${userName}",
    "userDescribe": "用户描述",
    "email": "${email}"
}

参考:

https://blog.csdn.net/silencemylove/article/details/51373873

https://blog.csdn.net/weixin_46036165/article/details/104312325

https://www.cnblogs.com/jiachangwei/p/12142712.html  

标签:角色,roleId,Json,Beanshell,MeterSphere,roleName,null,createTime,roleDescribe
来源: https://blog.csdn.net/fen_fen/article/details/116206265

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有