1. Thread Group
2. setup Thread Group
setUp Thread Group是一个特殊的线程组,用于执行测试之前的初始化操作;
3. tearDown Thread Group
tearDown Thread Group是一个特殊的线程组,用于执行测试结束之后的清除工作;
4. bzm - Arrivals Thread Group
我们可以通过该线程组达到控制请求数的目的
- target rate:目标费率,每秒钟多少个请求数
- ramp up time(sec):达到目标费率需要的时间
- ramp-up steps count:达到目标费率需要多少步
- hold target rate time(sec):保持目标费率持续时间
- thread iterations limit:线程迭代次数限制,如果我们只需运行每个用户一次以模拟用户的实际行为,则设置为1;设置为空,表示每个用户将运行不确定的迭代,直到调度结束。
- log threads status into file:将线程状态记录到日志文件
- concurrency limit:最大并发数限制
示例:
目标费率为100,加速时间为10秒钟,10个加速步骤,保持目标费率60秒钟:
10个加速步骤,每步增加10个费率;
10s/10步=1,每步1秒钟;即每1秒钟加载10个费率,直到达到100;
达到100个费率之后,按照这个标准进行加压60秒钟;
以上,前十秒钟按照设置不断增加费率,请求数为(10+20+30+40+50+60+70+80+90+100)1=550个;后60秒钟,按照每秒100个费率计算,请求数为10060=6000个;共计6550个请求数。
阶梯加压线程组需要和 Active Threads Over Time(不同时间活动数
量展示)结合起来,这样能看到动态的阶梯加压效果。
5. bzm - Concurrency Threadp Group
阶梯式加压
- target concurrency:目标并发数
- ramp up time(min):加速时间
- ramp-up steps count:加速步骤计数
- hold target rate time(min):保持目标费率时间
- thread iterations limit:线程迭代次数限制,如果我们只需运行每个用户一次以模拟用户的实际行为,则设置为1;设置为空,表示每个用户将运行不确定的迭代,直到调度结束。
- log threads status into file:将线程状态记录到文件
示例:
100个线程组,加速时间为10秒钟,10个加速步骤,保持目标费率60秒钟:
10个加速步骤,每步10个线程组;
10秒钟/10步=1,每步1秒钟,即每一秒增加10个线程组,直到到达100个;
达到100个线程组之后,所有这些线程组将继续运行,压测60秒。
6. bzm - Free_From Arrivals Thread Group(自由抵达线程组)
- Start Value:开始值,开始的负载(点击数)的值。
- End Value:结束值,结束时的负载 (点击数)的值。
- Duration:持续时间。
- Thread Iterations Limit:定义为每个虚拟用户运行的迭代次数。如果我们只需要运行每个用户一次来模拟用户的真实行为,则设置为1;设置为空,表示每个用户将运行不确定的迭代,直到调度结束。
- Log Threads Status into File:将线程状态记录到日志文件中
- Concurrency Limit:并发数限制,定义了避免内存不足问题的最大虚拟用户数
示例:
1-10的并发持续运行10秒。 20-60的并发持续运行50秒。 10的并发持续运行10秒
7. jp@gc - Stepping Thread Group(被弃用)
8. jp@gc - Ultimate Thread Group
测试稳定性的时候可以使用,例如:某个接口使用度多少线程,执行***分钟
- Start Threads Count : 开始线程数量。
- Initila Delay , sec:线程延迟时间。
- Statrup Time, sec:线程加载时间。
- Hold Load For , sec:线程持续运行时间。
- Shutdown Time:线程停止时长,在多长时间内停止下来
所有线程组同时启动,但每个线程组都有自己的Intial Delay“初始延迟”值,这有助于分别从每个组中分离用户。
示例一:
20秒启动三组各100个线程,共300个线程,第一组持续30秒,10秒内停止;
第二组持续50秒,10秒内停止,在1:20时总线程数为100;
第三组持续100秒,加启动时间20秒,在02:00时开始停止,10秒内停止;
示例二:模拟波浪式压测场景并发的用户就像浪花一波一波的不断涌入系统,拍打服务器,考验我们的系统能否顶住压力并平稳运行
我们的网站正在平稳运行的时候,突然有一波1000用户同时访问,我们称之为第一浪潮。访问了30s之后,第一浪潮在15s内逐渐退出系统。
在第一浪潮退出系统的同时,第二波2000用户在极短时间内又突然涌入网站,我们称之为第二浪潮。在访问30s之后,第二浪潮在15s内也逐渐退出了系统。
在第二浪潮退出系统的同时,第三波3000用户又突然涌入网站,我们称之为第三浪潮。在访问30s之后,第三浪潮在15s内也逐渐退出了系统。
在第三浪潮退出系统的同时,第四波1000用户又突然涌入网站,我们称之为第四浪潮。在访问30s之后,第四浪潮在15s内也逐渐退出了系统。
延迟0s,20秒内启动100个线程,运行60秒,10秒内停止;
延迟60秒后启动第2个100个线程,运行60秒,10秒内停止;
延迟120秒后启动第2个100个线程,运行60秒,10秒内停止;