jmeter中使用for each控制器将用json提取器提取的班级id进行遍历,在post中发送消息体:班级id,和与班级id对应的班级人数,怎么取
时间: 2024-03-12 18:44:30 浏览: 64
运用Jmeter进行测试
可以按照以下步骤在 JMeter 中使用 For Each 控制器遍历 JSON 提取器提取的班级 ID,在 POST 请求中发送消息体:班级 ID 和与班级 ID 对应的班级人数:
1. 在测试计划中添加一个 HTTP 请求,请求方法选择 POST,请求 URL 设置为发送消息的接口地址。
2. 在 HTTP 请求中添加一个 JSON 提取器,使用 JSONPath 表达式提取班级 ID 和班级人数并保存到变量中,例如:
- 班级 ID 的 JSONPath 表达式为:`$.classId`,变量名设置为 `classId`。
- 班级人数的 JSONPath 表达式为:`$.studentsNum`,变量名设置为 `studentsNum`。
3. 在 HTTP 请求中添加一个 For Each 控制器,将班级 ID 的变量名设置为变量名,例如:`${classId}`。
4. 在 For Each 控制器中添加一个 HTTP 请求,将班级人数设置为变量值,例如:`${studentsNum}`。
5. 在 HTTP 请求中设置请求体,例如:
```
{
"classId": ${classId},
"studentsNum": ${studentsNum},
"message": "${__RandomString(${__Random(5,50)})}"
}
```
`${__RandomString(${__Random(5,50)})}` 表示生成一个随机长度在 5 到 50 之间的字符串作为消息体。
6. 运行测试计划,JMeter 会自动读取 JSON 提取器中提取的班级 ID 和班级人数,依次替换到 HTTP 请求中的变量 `${classId}` 和 `${studentsNum}` 中,并发送 POST 请求。在每个请求中,For Each 控制器会根据班级 ID 找到对应的班级人数,将其替换到 HTTP 请求中的变量 `${studentsNum}` 中,并随机生成一个消息体发送。
注意事项:
1. JSON 提取器中的 JSONPath 表达式必须能够准确提取班级 ID 和班级人数。
2. For Each 控制器中的循环次数应该与 JSON 提取器中提取的班级 ID 数量相等。
3. 如需发送多个请求,可在 For Each 控制器中添加多个 HTTP 请求,JMeter 会依次发送每个请求。
阅读全文