jmeter学习-定时器

同步定时器(Synchronizing Timer)

提示:在Jmeter中叫做同步定时器,在其他软件中又叫集合点(loadrunner)。
思考? 1. 如何模拟多个用户同时抢一个红包? 2. 如何测试电商网站中的抢购活动、秒杀活动?

1.1 介绍


SyncTimer的目的是阻塞线程,直到阻塞了n个线程,然后立即释放它们。

同步定时器相当于一个储蓄池,累积一定的请求,当在规定的时间内达到一定的线程数量,这些线程会在同一个时间点一起 并发,所以可以用来做大数据量的并发请求。


添加方式:测试计划 --> 线程组--> HTTP请求 --> (右键添加) 定时器 --> Synchronizing Timer

1.2 案例

场景:抢红包、消费券;秒杀活动

     目的是阻塞线程,知道阻塞n个线程,然后一起释放
        模拟100用户同时访问百度首页的操作步骤
1.添加线程组,设置线程数
2.添加HTTP请求
3.添加同步定时器
4.添加查看结果树
5.添加聚合报告

jmeter学习-定时器_第1张图片

 

1.3 注意事项


问题: 当用户数不能整除集合点组件的一组用户数属性时,如果超时时间是 0,会导致程序挂起,怎么避免挂起?
实现:
方案1: 点击 stop 强行终止,但是不建议
方案2: 修改一组用户数,能够做到整除(治标不治本)
方案3: 修改超时时间,不设置为 0,即便一组用户数填充不满,只要超时,也会执行(建议)

jmeter学习-定时器_第2张图片 

 常数吞吐定时器(Constant Throughput Timer)

2.1 介绍

常数吞吐量定时器可以让JMeter以指定数字的吞吐量(以每分钟的样本数为单位,而不是每秒)执行。 吞吐量计算的范围可以为 指定为当前线程、当前线程组、所有线程组。

添加方式:测试计划 --> 线程组--> HTTP请求 --> (右键添加) 定时器 --> Constant Throughput Time

2.2 案例

场景 一个用户以 20QPS (20 次/s) 的频率访问百度首页,持续一段时间,统计运行情况 操作步骤 1. 添加线程组,循环次数设置成永远
2. 添加HTTP请求
3. 添加常数吞吐定时器
4. 添加查看结果树
5. 添加监听器-聚合报告

jmeter学习-定时器_第3张图片 

固定定时器


功能:通过该定时器,我们可以对每一个线程延迟固定时间。

jmeter学习-定时器_第4张图片
随机定时器

 

功能:通过该定时器,我们可以对每一个线程随机延迟一定时间。

总体延迟时间=随机时间+常量时间
jmeter学习-定时器_第5张图片

 

Random Delay Maximum:随机时间

 Constant Delay offset:执行结束之后再延迟3秒


准确吞吐量定时器

功能:通过该定时器,我们可以让线程以一个目标吞吐量去运行。

下面表示每 10 秒钟采样 20 次,持续 30 秒时间,大概就是 TPS 为 2

jmeter学习-定时器_第6张图片

 

 Number of thread in the batch(thread): 每批次处理的线程数,当线程数大的时候可以适当增大。

 Delay between thread in the batch(ms): 处理完每批线程后延迟一段时间。

你可能感兴趣的:(jmeter,学习)