线程组元件是任何一个测试计划的开始点。在一个测试计划中的全部元件都必须在某个线程下。全部的任务都是基于线程组。
上图能够看到,jmeter有三个添加线程组的选项,名字不同, 可是建立以后,其界面是彻底同样的。数据库
一种特殊类型的ThreadGroup,用于在执行常规线程组以前执行一些必要的操做。在“setup thread group ”下提到的线程行为与普通线程组彻底相同。不一样的是执行顺序---它会在普通线程组执行以前被触发。服务器
应用场景举例:并发
一种特殊类型的ThreadGroup,用于在执行常规线程组完成后执行一些必要的操做。在“teardown thread group ”下提到的线程行为与普通线程组彻底相同。不一样的是执行顺序---它会在普通线程组执行以后被触发。oop
应用场景举例:测试
tips:spa
默认状况下,若是测试按预期完成,则TearDown线程组将不会运行。 若是你想要运行它,则须要从Test Plan界面中选中复选框“Run tearDown Thread Groups after shutdown of main threads”。
可能你仍是不太理解他们与普通的线程组有什么不一样。可是若是你用过junit,想必你应该对setup ,teardown这两个字眼不陌生。线程
若是你熟悉loadrunner,那你应该知道loadrunner的脚本中除了action里是真正的脚本核心内容,还有进行初始化操做的init脚本和测试完毕后对应的end脚本块。那么这里setup thread group 和 teardown thread group 就是分别指这两部分。code
这个就是咱们一般使用的线程。通俗的讲,一个线程组能够看作一个虚拟用户组,线程组中的每一个线程均可以理解为一个虚拟用户。多个用户同时去执行相同的一批次任务。每一个线程之间都是隔离的,互不影响的。一个线程的执行过程当中,操做的变量,不会影响其余线程的变量值。ip
在线程组界面中能够设置如下数据,进行控制线程组:it
这几个配置项控制了“当遇到错误的时候测试的执行策略”是否会继续执行。
线程数也就是并发数,每一个线程将会彻底独立的运行测试计划,互不干扰。多个线程用于模仿对服务器的并发访问。
ramp-up period用于设置启动全部线程所须要的时间。
若是选择了10个线程,而且ramp-up period是100秒,那么JMeter将使用100秒使10个线程启动并运行。
每一个线程将在前一个线程启动后10(100/10)秒后启动。
当这个值设置的很小、线程数又设置的很大时,在刚开始执行时会对服务器产生很大的负荷。
下图的线程配置中,5个线程,5秒启动时间,每一个线程执行两次循环。那么每秒会启动一个线程,每次循环执行一个请求。
该项设置线程组在结束前每一个线程循环的次数,若是次数设置为1,那么JMeter在中止前只执行测试计划一次。
默认状况下,测试开始的时候,全部线程就被建立完了。若是勾选了此选项,那么线程只会在合适的须要用到的时候建立。
调度器配置能够更灵活的控制线程组执行的时间
一、持续时间(秒):
控制测试执行的持续时间,以秒为单位。
二、启动延迟(秒):
控制测试在多久后启动执行,以秒为单位。
三、启动时间:
控制测试在某个时间点启动。但这个配置会被“启动延迟”配置覆盖。
四、结束时间:
控制测试执行的结束时间。但这个配置会被“持续时间”配置覆盖。
若是不想当即执行执行,能够经过调度器控制测试执行的开始时间和结束时间。
当测试开始时,若是设置了调度器,JMeter将等待直到到了开始时间。在每一个周期结束,JMeter将会检查是否到达结束时间,若是达到,中止运行;不然测试继续运行直到达到了重复限制。