JMeter技术问题:如何让请求等待直至获取指定响应
Hey there! Let's figure out how to make your JMeter request_a keep retrying until it gets the "complete data" response, instead of stopping at those "in progress" ones. This setup will let you accurately test the real load of connecting to the database, fetching data, and returning the full response. Here's the step-by-step solution:
实现JMeter请求自动重试直至获取目标响应
1. 用重试控制器包裹request_a
- 右键点击包含
request_a的线程组 → 添加 → 逻辑控制器 → 重试控制器 - 将
request_a拖入重试控制器中(确保请求是控制器的子节点) - 配置重试控制器:
- 设置最大重试次数为合理的上限(比如10次),避免无限循环
- 勾选出错后继续,这样即使请求返回"in progress"(断言失败),控制器也会继续重试
2. 给request_a添加响应断言
- 选中
request_a→ 右键 → 添加 → 断言 → 响应断言 - 按如下配置断言:
- 应用范围:保持默认的仅主样本即可
- 要测试的字段:勾选响应文本
- 模式匹配规则:选择包含
- 要测试的模式:输入
complete data(这是我们需要匹配的目标响应内容) - 不要勾选如果条件失败则中止线程——我们希望断言失败时触发重试,而不是终止线程
3. 可选:给重试添加间隔时间
由于服务器需要时间缓存数据,建议在重试之间添加一段小延迟,避免给服务器造成过大压力:
- 选中
request_a→ 右键 → 添加 → 定时器 → 固定定时器 - 设置**线程延迟(毫秒)**为2000左右(即2秒)——这更贴近真实用户的等待行为
4. 验证配置效果
运行测试后查看查看结果树监听器:
- 返回"in progress"的请求会被标记为失败(因为断言不通过),但重试控制器会自动发起新的请求
- 一旦某次请求返回"complete data"(断言通过),重试循环就会停止
- 这样每一次
request_a的执行最终都会获取到完整数据,让你能准确测试数据库连接、数据获取流程的真实负载
内容的提问来源于stack exchange,提问作者Arjun Dev
相关产品推荐
相关产品推荐

