MeterSphere使用Beanshell后置腳本獲取Json響應數據作為下一個接口參數


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://www.icode9.com/content-3-946886.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM