1.1 线程组
线程组是一系列线程的集合,每一个线程代表着一个正在使用应用程序的用户。在 jmeter 中,每个线程意味着模拟一个真实用户向服务器发起请求。
在 jmeter 中,线程组组件运行用户设置线程数量、初始化方式等等配置。
例如,如果你设置线程数为 100,那么 jmeter 将创建并模拟测试 100 个用户请求到服务器端。
如下图所示:
5.3.1 添加线程组
添加线程组的步骤:
测试计划->右键->添加->Threads(Users)->线程组,添加一个新的线程组。
5.3.2 线程组界面属性介绍
【线程组】: 测试里每个任务都要线程去处理,所有任务必须在线程组下面创建。
【线程数】: 设置发送请求的用户数。
【在采样器错误后要执行的动作】: 表示,当一个测试计划里有多个线程组或者一个线程组里有多个采样器,当一个采样器执行出错后,接下来的处理,如果不是有特别的场景要求,默认是继续就可以。
【Ramp-Up Period(in seconds)】: 创建完所有线程的时间,防止对服务器有太大的负载。
如果选择了10个线程,并且ramp-up period是10秒,那么JMeter将使用10秒加载10个线程,也就是平均1秒加载一个虚拟用户。
启动并运行。每个线程将在前一个线程启动后1秒后启动。如果将此设置为0,
则表示10个用户同时并发,也就是所有线程在统一时间启动。Ramp-up需要足够长的时间来避免在开始测试时产生太大的负荷,并且有足够短的时间使最后一个线程在第一个线程结束之前运行。
【循环次数】: 线程组的每个线程数请求的重复次数。如果次数设置为1,那么JMeter只执行测试计划一次,如果设置成永远,线程组里的线程会一直在执行。
【调度器】: 调度器是用来执行一些特殊场景,勾选了调度器,就可以设置线程运行的【持续时间】和【启动延迟】项。
【持续时间】: 测试计划持续时间。
【启动延迟】: 测试计划延迟启动时间。
5.3.3线程组类别
Jmeter有三个线程组分类:Thread Group、setUp Thread Group、tearDown Thread Group,如下图所示:
(1)、Thread Group ( 线程组 )
这个就是我们通常添加运行的线程。通俗的讲一个线程组,可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。
(2)、setUp Thread Group
一种特殊类型的 ThreadGroup 的,可用于执行预测试操作。这些线程的行为完全像一个正常的线程组元件。不同的是,这些类型的线程执行测试前进行定期线程组的执行,类似LoadRunner 的 init,测试开始时进行初始化的工作。
(3)、tearDown Thread Group
一种特殊类型的 ThreadGroup 的,可用于执行测试后动作。这些线程的行为完全像一个正常的线程组元件。不同的是,这些类型的线程执行测试结束后执行定期的线程组,类似LoadRunnner 的 end ,测试结束时进行回收工作。
5.3.4线程组执行顺序
线程组执行顺序:
① setUp Thread Group
② 线程组
③ TearDown Thread Group
案例一:
案例目的:验证 3 种线程组的执行顺序。
案例步骤:
1、在测试计划中添加一个“线程组”。
2、给“线程组”添加一个“Debug Sampler”采样器,改名为t1。
3、在测试计划中在添加一个tearDown Thread Group。
4、给“tearDown Thread Group”添加一个“Debug Sampler”采样器,改名为t2。
5、在测试计划中在添加一个 setUp Thread Group 。
6、给“setUp Thread Group”添加一个“Debug Sampler”采样器,改名为t3。
7、在测试计划中在添加一个监听器(察看结果树:用来查看运行结果)。
8、如果运行的顺序为从上到下,那运行的结果应该为:t1->t2->t3,但是实际运行的结果为如下图所示:
这个案例说明:3种类别的线程组在同一作用域名范围内执行顺序为:setUp Thread Group ->线程组-> tearDown Thread Group
案例二:
案例目的:验证 3 种线程组的执行顺序。
案例步骤:
1、在测试计划中添加一个“线程组”,设置线程组的线程数为 5,设置 5 个虚拟用户并发。
2、给“线程组”添加一个“Debug Sampler”采样器,改名为t1。
3、在测试计划中在添加一个tearDown Thread Group,线程数默认为 1,不改变。
4、给“tearDown Thread Group”添加一个“Debug Sampler”采样器,改名为t2。
5、在测试计划中在添加一个 setUp Thread Group,线程数默认为 1,不改变。
6、给“setUp Thread Group”添加一个“Debug Sampler”采样器,改名为t3。
7、在测试计划中在添加一个监听器(察看结果树:用来查看运行结果)。
8、运行 jmeter 测试计划,结果如下图:
这个案例说明:setUp Thread Group 是在一个 jmeter 计划开始的时候执行,tearDown Thread Group 是在一个 jmeter 计划结束的时候执行,不管中间有多少个线程组。
案例三:
案例目的:验证 3 种线程组的执行顺序。
案例步骤:
1、在测试计划中添加一个“线程组”,设置线程组的线程数为 5,设置 5 个虚拟用户并发。
2、给“线程组”添加一个“Debug Sampler”采样器,改名为t1。
3、在测试计划中在添加一个tearDown Thread Group,设置线程组的线程数为 5,设置 5 个虚拟用户并发。
4、给“tearDown Thread Group”添加一个“Debug Sampler”采样器,改名为t2。
5、在测试计划中在添加一个 setUp Thread Group,设置线程组的线程数为 5,设置 5 个虚拟用户并发。
6、给“setUp Thread Group”添加一个“Debug Sampler”采样器,改名为t3。
7、在测试计划中在添加一个监听器(察看结果树:用来查看运行结果)。
8、运行 jmeter 测试计划,结果如下图:
这个案例说明:线程组的执行次数跟线程数有关。
--------------------------------------
个人今日头条账号: 听海8 (上面上传了很多相关学习的视频以及我书里的文章,大家想看视频,可以关注我的今日头条)