最近碰到个别MeterSphere用户在做接口自动化时需要通过前置脚本动态生成json格式的请求体,然后把请求体作为一个变量填充到请求体。下面我们演示一下实现过程。
1. 打开接口用例,或接口自动化场景,并添加前置脚本。
2. 编写beanshell脚本,详细内容和说明如下:
//引入对应json包
import org.json.JSONArray;
import org.json.JSONObject;
//创建request_body对象
JSONObject request_body=new JSONObject();
//创建JSON数组对象groupsArray
JSONArray groupsArray=new JSONArray();
//{key:value}
request_body.put("id",123456);
int count=6;
int num=0;
//数组对象groupsArray添加数组对象
for(int i=0;i<count;i++){
num++;
String key="批量同一属性"+num;
JSONObject bean=new JSONObject();
bean.put("group",key);
bean.put("remark",key);
groupsArray.put(bean);
}
//把JSON对象数组赋值给groups
request_body.put("groups",groupsArray);
request_body.put("private",2);
request_body.put("agent","pc");
request_body.put("limit",1);
request_body.put("face",0);
request_body.put("external","");
//输出日志
log.info(request_body.toString());
//设置变量,给后续使用
vars.put("request_body", request_body.toString());
3. 把变量放到请求体
4. 执行接口用例或者接口自动化场景用例,查看请求内容:
在请求内容里可以查看发出去的JSON请求体。
在实际项目测试中,可以根据接口文档生成所需要的JSON请求体,实现请求体的动态生成,丰富接口测试用例。