线程组元件是任何一个测试计划的开始点。在一个测试计划中的全部元件都必须在某个线程下。全部的任务都是基于线程组数据库
一种特殊类型的ThreadGroup,用于在执行常规线程组以前执行一些必要的操做。在“setup thread group ”下的线程行为与普通线程组彻底相同。不一样的是执行顺序:它会在普通线程组执行以前被触发。并发
应用场景举例:oop
A、测试数据库操做功能时,用于执行打开数据库链接的操做。测试
B、测试用户购物功能时,用于执行用户的注册、登陆等操做。spa
一种特殊类型的ThreadGroup,用于在执行常规线程组完成后执行一些必要的操做。在“teardown thread group ”下的线程行为与普通线程组彻底相同。不一样的是执行顺序:它会在普通线程组执行以后被触发。线程
应用场景举例:cdn
A、测试数据库操做功能时,用于执行关闭数据库链接的操做。blog
B、测试用户购物功能时,用于执行用户的退出等操做。element
注意:默认状况下,若是测试按预期完成,则TearDown线程组将不会运行。若是你想要运行它,则须要从Test Plan界面中选中复选框“Run tearDown Thread Groups after shutdown of main threads”。get
这个就是咱们一般使用的线程。一个线程组能够看作一个虚拟用户组,线程组中的每一个线程均可以理解为一个虚拟用户。多个用户同时去执行相同的一批次任务。每一个线程之间都是隔离的,互不影响的。一个线程的执行过程当中,操做的变量,不会影响其余线程的变量值。
例如线程组中包含查询设备和查询服务商2个请求,若查询设备请求失败,查询服务商请求会继续执行。
例一:线程组中包含查询设备和查询服务商2个请求且循环次数非1,若查询设备请求失败,查询服务商请求将再也不执行,等下一次从新迭代,从查询设备开始执行。
例二:测试计划中包含线程组1和线程组2,线程组1的循环次数是1,那么线程组1执行出错时,会直接启动线程组2
如测试计划设置了【独立运行每一个线程组(例如在一个组运行结束后启动另外一个)】
则线程组1中的某个请求失败了,线程组2中的请求不会被执行
此选项和Ramp-up Period设置配合使用,若是勾选此项,则全部线程会在须要的时候启动,即会在Ramp-up Period(in seconds)到时间后启动全部线程,此项做用在于,若是说线程运行时间小于咱们设置的Ramp-up Period(in seconds),则会形成一种状况就是在Ramp-up Period(in seconds)结束以前部分线程已经跑完了,这样就会致使活动线程数小于咱们设置的线程数,也就意味着咱们设置的N个并发的场景并未彻底起效。可是若是勾选了此项,则线程会根据Ramp-up Period(in seconds)设置来建立,可是不会启动,直到最后一个线程建立好后一块儿启动(这样就会很好的模拟到咱们的N个并发数了)
若是单个线程的运行时间长于咱们设置的Ramp-up Period(in seconds)时间,则此项也不用勾选。
举例说明:如过设置线程数为10,Ramp-up Period(in seconds)时间为100,则若是不勾选此项则这次测试会每隔10s建立并启动一个线程,那么100s后会有1-10个线程在运行;可是若是勾选此项,那么线程组会每隔10s建立一个线程但并不启动sample,而是会等待100s后全部10个线程都建立好以后同时启动sample。
持续时间(秒):整个测试计划持续的时间。(优先于后面的结束时间选项)。注意这个时间设置不要设置的比 Ramp-up Period(in seconds)小,若是勾选了循环次数中的永远,那么测试同样会在此持续时间到达后结束。
启动延迟(秒):测试计划启动后,会被延迟启动,时间为选项填入的时间。(优先于后面的启动时间选项)
启动时间:整个测试计划将于此处填写的时间点启动
结束时间:整个测试计划将于此处填写的时间点结束
若是不想当即执行执行,能够经过调度器控制测试执行的开始时间和结束时间
笔记:同一个线程组里的多个请求,默认是从上到下执行;同一个测试计划里的线程组,没有前后执行顺序(随机)(除非勾选了独立运行每一个线程组)