Jmeter 设置每秒3个并发,持续5分钟

场景描述:系统需要登录,提交申请单;现在需要每秒提交3个申请单,持续5分钟;

1. 先解释一下Jmeter几个参数:

 

 线程组:我们直接可以理解为多少个用户—— 一般和你的并发数相等
Ramp-ups 时间:规定时间的跑完所有请求
 循环次数:线程组循环多少次——你设置线程组为5,循环 10 次,就会有50 个请求
如图上我所设置的,Ramp-up 时间为 1,他就会 1s 内,跑完所有所有请求。这样是控制的样本数

2. 调度器:如果求压测10分钟或者半小时,怎么办? 
第二种压测方式,使用调度器设置持续时间,控制压测的时间(样本数不是固定的)

勾选永远
勾选调度器
持续时间设置(单位秒)


3. 按照需求,需要每秒提交3个申请单,持续5分钟;设置如下,

 

 

HTTP请求下添加定时器

 

但是经过测试,并不是每秒发送3个请求;

这里使用 准确的吞吐量定时器,这个定时器能控制并发,添加在接口下面,如图

作用:和Constant Throughput Timer类似,但是能更精准的控制请求。区别就是Constant Throughput Timer根据时间来做定时器(到了多少秒就发请求);Precise Throughput Timer是根据吞吐量在做计时器(到了多少量就发请求)。也就是能做到控制请求的速度和个数。

备注:这里 jmeter 会有一点偏差
————————————————
版权声明:本文为CSDN博主「小褚丫头」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_33362684/article/details/119911811

<think>嗯,用户的问题是关于如何配置JMeter,每隔10分钟发送一次包含100个并发请求的任务。我需要先理解他们的需求。他们想要每10分钟触发一次任务,每次任务中有100个并发请求。这意味着每个任务启动时,会有100个线程同时发送请求,然后等待10分钟后再重复。 首先,我应该考虑JMeter的组件。定时器通常用于控制请求之间的延迟,但用户的需求是周期性地执行任务,可能需要结合线程组和定时器。不过,标准的线程组可能无法直接实现这种周期性触发,特别是间隔时间较长的情况。 接下来,用户提到每10分钟发起100个并发请求。并发请求通常通过设置线程数来实现,比如设置线程数为100,这样所有请求会同时启动。但如何让这个线程组每隔10分钟运行一次呢? 想到可能需要使用循环控制器或者调度器。线程组中的调度器设置可以指定持续时间、启动延迟等。如果设置线程数为100,循环次数为1,然后调度器中的启动延迟设为600秒(10分钟),这样每次运行后等待10分钟再次执行。但JMeter默认的线程组可能不会自动重复,除非设置循环次数为无限,但这样启动延迟只在第一次生效,之后可能不会等待。 另一个方法是使用OS进程调度,比如通过cron任务或Windows任务计划程序,每10分钟启动一次JMeter测试计划,这样每次启动都会执行100个并发请求。这可能更可靠,但需要依赖外部调度工具。 或者,可以使用JMeter的Ultimate Thread Group插件,它允许更灵活地安排线程组的执行时间和次数。设置一个线程组,每次启动100个线程,持续时间为0(立即完成),然后设置启动延迟为600秒,循环次数根据需要设定。这样每个循环间隔10分钟,执行一次100并发请求。 还需要注意,在并发请求中,可能需要使用同步定时器来确保所有线程同时发起请求,避免因启动时间差异导致请求分散。此外,配置合理的定时器,如固定定时器,可以控制请求之间的间隔,但用户的需求是并发,所以可能不需要请求间的延迟,但需要确保所有线程同时启动。 另外,引用中的资料提到,JMeter默认没有延迟,可能瞬间压垮服务器,所以定时器的使用很重要。但在这个案例中,用户需要的是每10分钟一次的突发并发,所以重点在于如何调度线程组的执行周期,而不是请求间的延迟。 总结可能的步骤:使用Ultimate Thread Group插件设置每10分钟启动100个线程,或者结合外部调度工具,或者使用循环控制器和定时器组合。同时,需要配置线程组的循环次数和调度时间,确保每次任务正确触发。</think>### 分步解答 要实现JMeter每隔10分钟发送一次包含100个并发请求的任务,需结合**线程组调度器**和**定时器**的配置。以下是具体步骤: --- #### **1. 设置基础线程组** - **线程数**:设置为`100`(对应100个并发请求) - **循环次数**:设置为`1`(每个线程仅执行一次请求) - **调度器配置**: - **启动延迟**:设置为`600`秒(即10分钟,用于首次执行前的等待) - **持续时间**:设置为`0`秒(表示请求立即完成,不持续运行) $$ \text{总请求量} = \text{线程数} \times \text{循环次数} = 100 \times 1 = 100 \ \text{次/周期} $$ --- #### **2. 添加定时器控制周期** 由于JMeter默认线程组无法直接循环间隔执行,需通过以下方法实现周期性触发: - **方法一:使用调度器 + 循环控制器** 1. 在线程组中勾选`调度器`,并设置: - **持续时间**:`0`秒 - **启动延迟**:`600`秒(每隔10分钟执行一次) 2. 将线程组的`循环次数`设为`永远`(无限循环) 3. 添加`Test Action`采样器,设置`Continue`逻辑(避免线程提前终止)[^3] - **方法二:外部调度工具** 通过操作系统的定时任务(如Windows任务计划或Linux cron)每10分钟触发一次JMeter脚本执行,每次启动100个线程。 --- #### **3. 关键配置验证** - **同步定时器**(可选): 添加`同步定时器`,设置`模拟用户组的数量`为`100`,确保所有线程在同一时刻发起请求。 - **结果树与监听器**: 添加`察看结果树`和`聚合报告`,观察请求是否按10分钟间隔触发,并检查响应时间是否符合预期[^2]。 --- #### **完整配置示例** ```plaintext 线程组 ├─ 线程数: 100 ├─ 循环次数: 1 ├─ 调度器配置 │ ├─ 启动延迟: 600秒 │ └─ 持续时间: 0秒 ├─ HTTP请求(目标接口) ├─ 同步定时器(模拟用户组数=100) └─ 察看结果树(调试用) ``` --- ### 注意事项 1. **资源消耗**:100个并发线程可能占用较高系统资源,需监控JMeter运行机器的CPU/内存[^4]。 2. **服务器压力**:确保被测服务器能承受周期性突发流量,避免压测导致服务崩溃[^3]。 3. **日志管理**:长期运行的测试需定期清理结果文件,防止磁盘占满。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值