jmeter中使用for each控制器遍历班级id,在post中发送消息体:班级id,班级人数,消息体需要取与班级id对应的班级人数,怎么取
时间: 2024-03-12 13:44:27 浏览: 45
可以按照以下步骤在 JMeter 中使用 For Each 控制器遍历班级 ID,在 POST 请求中发送消息体:班级 ID,班级人数,消息体需要取与班级 ID 对应的班级人数:
1. 创建一个 CSV 文件,用于存储班级 ID 和班级人数,每行为一组数据,以逗号分隔,例如:
```
classId,studentsNum
1,30
2,28
3,32
```
2. 在 JMeter 中添加一个 CSV 数据集配置元件,指定 CSV 文件路径和分隔符。
3. 在测试计划中添加一个 HTTP 请求,请求方法选择 POST,请求 URL 设置为发送消息的接口地址。
4. 在 HTTP 请求中添加一个 For Each 控制器,将班级 ID 的参数名设置为变量名,例如:`${classId}`。
5. 在 For Each 控制器中添加一个 HTTP 请求,将班级人数和消息体需要取的数量设置为变量值,例如:
- 班级人数的参数名为:`${studentsNum}`
- 消息体需要取的数量为:`${__Random(1,${studentsNum})}`
`${__Random(1,${studentsNum})}` 表示从 1 到 `${studentsNum}` 随机取一个整数作为消息体需要取的数量。
6. 在 HTTP 请求中设置请求体,例如:
```
{
"classId": ${classId},
"studentsNum": ${studentsNum},
"message": "${__RandomString(${__Random(5,50)})}"
}
```
`${__RandomString(${__Random(5,50)})}` 表示生成一个随机长度在 5 到 50 之间的字符串作为消息体。
7. 运行测试计划,JMeter 会自动读取 CSV 文件中的班级 ID 和班级人数,依次替换到 HTTP 请求中的变量中,并发送 POST 请求。在每个请求中,For Each 控制器会根据班级 ID 找到对应的班级人数,将其替换到 HTTP 请求中的变量 `${studentsNum}` 中,并随机生成一个消息体发送。
注意事项:
1. CSV 文件中的数据必须与 HTTP 请求中需要替换的参数名一一对应。
2. For Each 控制器中的循环次数应该与 CSV 文件中的数据行数相等。
3. 如需发送多个请求,可在 For Each 控制器中添加多个 HTTP 请求,JMeter 会依次发送每个请求。
阅读全文