1.1 线程组服务器
线程组是一系列线程的集合,每个线程表明着一个正在使用应用程序的用户。在 jmeter 中,每一个线程意味着模拟一个真实用户向服务器发起请求。并发
在 jmeter 中,线程组组件运行用户设置线程数量、初始化方式等等配置。测试
例如,若是你设置线程数为 100,那么 jmeter 将建立并模拟测试 100 个用户请求到服务器端。线程
以下图所示:3d
添加线程组的步骤:blog
测试计划->右键->添加->Threads(Users)->线程组,添加一个新的线程组。作用域
【线程组】: 测试里每一个任务都要线程去处理,全部任务必须在线程组下面建立。域名
【线程数】: 设置发送请求的用户数。it
【在采样器错误后要执行的动做】: 表示,当一个测试计划里有多个线程组或者一个线程组里有多个采样器,当一个采样器执行出错后,接下来的处理,若是不是有特别的场景要求,默认是继续就能够。io
【Ramp-Up Period(in seconds)】: 建立完全部线程的时间,防止对服务器有太大的负载。
若是选择了10个线程,而且ramp-up period是10秒,那么JMeter将使用10秒加载10个线程,也就是平均1秒加载一个虚拟用户。
启动并运行。每一个线程将在前一个线程启动后1秒后启动。若是将此设置为0,
则表示10个用户同时并发,也就是全部线程在统一时间启动。Ramp-up须要足够长的时间来避免在开始测试时产生太大的负荷,而且有足够短的时间使最后一个线程在第一个线程结束以前运行。
【循环次数】: 线程组的每一个线程数请求的重复次数。若是次数设置为1,那么JMeter只执行测试计划一次,若是设置成永远,线程组里的线程会一直在执行。
【调度器】: 调度器是用来执行一些特殊场景,勾选了调度器,就能够设置线程运行的【持续时间】和【启动延迟】项。
【持续时间】: 测试计划持续时间。
【启动延迟】: 测试计划延迟启动时间。
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 ,测试结束时进行回收工做。
线程组执行顺序:
① setUp Thread Group
② 线程组
③ TearDown Thread Group
案例一:
案例目的:验证 3 种线程组的执行顺序。
案例步骤:
一、在测试计划中添加一个“线程组”。
二、给“线程组”添加一个“Debug Sampler”采样器,更名为t1。
三、在测试计划中在添加一个tearDown Thread Group。
四、给“tearDown Thread Group”添加一个“Debug Sampler”采样器,更名为t2。
五、在测试计划中在添加一个 setUp Thread Group 。
六、给“setUp Thread Group”添加一个“Debug Sampler”采样器,更名为t3。
七、在测试计划中在添加一个监听器(察看结果树:用来查看运行结果)。
八、若是运行的顺序为从上到下,那运行的结果应该为:t1->t2->t3,可是实际运行的结果为以下图所示:
这个案例说明:3种类别的线程组在同一做用域名范围内执行顺序为:setUp Thread Group ->线程组-> tearDown Thread Group
案例二:
案例目的:验证 3 种线程组的执行顺序。
案例步骤:
一、在测试计划中添加一个“线程组”,设置线程组的线程数为 5,设置 5 个虚拟用户并发。
二、给“线程组”添加一个“Debug Sampler”采样器,更名为t1。
三、在测试计划中在添加一个tearDown Thread Group,线程数默认为 1,不改变。
四、给“tearDown Thread Group”添加一个“Debug Sampler”采样器,更名为t2。
五、在测试计划中在添加一个 setUp Thread Group,线程数默认为 1,不改变。
六、给“setUp Thread Group”添加一个“Debug Sampler”采样器,更名为t3。
七、在测试计划中在添加一个监听器(察看结果树:用来查看运行结果)。
八、运行 jmeter 测试计划,结果以下图:
这个案例说明:setUp Thread Group 是在一个 jmeter 计划开始的时候执行,tearDown Thread Group 是在一个 jmeter 计划结束的时候执行,无论中间有多少个线程组。
案例三:
案例目的:验证 3 种线程组的执行顺序。
案例步骤:
一、在测试计划中添加一个“线程组”,设置线程组的线程数为 5,设置 5 个虚拟用户并发。
二、给“线程组”添加一个“Debug Sampler”采样器,更名为t1。
三、在测试计划中在添加一个tearDown Thread Group,设置线程组的线程数为 5,设置 5 个虚拟用户并发。
四、给“tearDown Thread Group”添加一个“Debug Sampler”采样器,更名为t2。
五、在测试计划中在添加一个 setUp Thread Group,设置线程组的线程数为 5,设置 5 个虚拟用户并发。
六、给“setUp Thread Group”添加一个“Debug Sampler”采样器,更名为t3。
七、在测试计划中在添加一个监听器(察看结果树:用来查看运行结果)。
八、运行 jmeter 测试计划,结果以下图:
这个案例说明:线程组的执行次数跟线程数有关。