需求:有一个用户列表接口和一个用户详情接口,现需要根据用户列表接口遍历每一个用户的详情
/**
* @author futao
* @since 2022/11/7
*/
@RestController
@RequestMapping("in-series")
public class InSeriesController {
private static final JSONArray DATAS = new JSONArray();
static {
for (int i = 0; i < 20; i++) {
DATAS.add(new JSONObject().fluentPut("id", i).fluentPut("username", "用户-" + i).fluentPut("age", i + 20));
}
}
@GetMapping("/users")
public JSONObject list() {
return new JSONObject().fluentPut("code", 0).fluentPut("data", DATAS);
}
@GetMapping("/user/{id}")
public Object detail(@PathVariable("id") String userId) {
for (Object data : DATAS) {
if (Objects.equals(((JSONObject) data).get("id"), userId)) {
return data;
}
}
return null;
}
}
创建线程组
设置http请求默认值
添加用户列表的HTTP取样器
查看结果树,查看请求结果
为了提取响应结果中所有的id,我们可以先通过JSON Path Tester测试我们的表达式
$.data[x].id
:取data数组中索引为x的对象的id的属性值$.data[x:y].id
:取data数组中索引为[x,y)的对象的id的属性值数组$.data[*].id
:取data数组中所有对象的id的属性值数组测试成功之后,新建后置处理器,JSON提取器
为了便于观测每个步骤的结果,我们可以添加一个调试取样器
再次发起请求,可以在查看结果树-> 调试取样器中查看debug数据
遍历所有的id,并通过id查询每个用户的详情
在Foreach控制器下新建取样器
现在进行测试,即可查看到结果