JMeter:如何实现每隔5秒发送Ajax请求(不受事务控制器影响)
JMeter实现每隔5秒发送Ajax请求的方案
要实现不管主流程(5个Transaction Controller)处于执行还是等待状态,都每隔5秒发送一次Ajax请求,可通过独立线程组+定时组件的方式实现,具体步骤如下:
添加独立线程组
创建一个新的线程组(比如命名为「定时Ajax请求线程组」),线程数设为1,循环次数选择「永远」(或根据测试总时长设置足够大的循环数)。若需要和主业务线程组同步启动,可勾选「在启动时延迟创建线程」并将延迟设为0。添加固定定时器
在这个独立线程组下添加Constant Timer,将「线程延迟(毫秒)」设置为5000,确保每5秒触发一次后续请求。配置Ajax请求
在定时器下方添加HTTP请求,按照实际Ajax接口的要求配置:- 填写请求URL、选择请求方法(GET/POST等)
- 设置请求参数、请求头(比如Ajax常用的
Content-Type: application/json) - 若接口需要登录态,确保该线程组能共享主流程的Cookie(可在测试计划中取消勾选「独立的每个线程组的Cookie」)
主流程保持不变
原有包含5个Transaction Controller的线程组无需修改,两个线程组会并行执行,主流程的执行或等待不会影响定时Ajax请求的发送。
额外注意事项
- 若定时请求需要和主流程共享数据,可使用JMeter属性传递:用
${__setProperty(变量名,变量值,)}在主流程设置全局属性,用${__P(变量名,默认值)}在定时线程组中读取。 - 测试时长控制:可在测试计划中设置「持续时间」,或给定时线程组设置固定循环次数,避免无限运行。
内容的提问来源于stack exchange,提问作者Ajith R
相关产品推荐
相关产品推荐

