场景:从上游接口查询到多条数据,提取需要的字段,比如id;拼接给下游使用
上面描述比较抽象,我举个实际的场景例子:项目日报批量审批接口测试
一、业务介绍:测试项目日报批量审批功能的性能
1、员工提交日报给项目经理,项目经理批量审批;页面如下图
2、项目经理勾选审批,这里先页面审批两个示例
由上面的场景,大致思路:从查询接口获取到需要审批的日报id,再通过循环拼接得到审批日报的请求参数,下面是jmeter实现过程:
二、实现过程
1、查询待审批的日报
2、提取下游接口需要的 jobrptid
3、处理拼接到请求参数中,这里只需要处理jobrptid;其它字段下游不需要;这段是关键
def requestBody = []
// 循环遍历jobrptidArray并构建JSON条目
for (int i = 1; i <= Integer.parseInt(vars.get("jobrptid_matchNr")); i++) {
String jobrptid = vars.get("jobrptid_" + i);
// 构建一个包含所有字段的Map
def entry = [
"approvalType": 1,
"jobrptid": jobrptid,
"actualworkdays": "1.0000",
"confirmedworkdays": "1.0000"
]
// 将Map添加到requestBody列表中
requestBody.add(entry)
}
// 将requestBody列表转换为JSON字符串
def jsonBuilder = new groovy.json.JsonBuilder(requestBody)
def jsonString = jsonBuilder.toPrettyString()
// 将最终的JSON内容存储在一个变量中
vars.put("requestBody", jsonString);
log.info(jsonString);