线程组
- 线程组又称为用户组,是进行性能测试时的用户资源池。(有点类似于LR的虚拟用户数)。
- 是压力测试的最小基本单元(一个压测项目是由至少一个线程组组成,一个线程组又是由至少一个请求组成,启动压测其实就是线程组的启动)
在此我只介绍我们实际用到的两种比较常用的两个线程组Thread Group和Stepping Thread Group
Thread Group
- 创建Thread Group
- 参数设置
- 区域1:线程组名称、线程组描述
- 区域2:在取样器错误后要执行的动作,这个区域的主要作用很明显,在线程内的采样器失败后,接下来做什么。
(1)continue:选择此项,将继续执行接下来的操作。
(2)Start Next Thread Loop:忽略错误,执行下一个循环。
(3)StopThread:退出该线程(不再进行此线程的任何操作)。
(4)Stop Test:等待当前执行的采样器结束后,结束整个测试。
(5)Stop Test Now:直接停止整个测试。(注意与4的“停止测试”进行区分) - 区域3:线程属性,这里可以设置线程数(模拟的用户数)和循环次数
(1)Number Of Thread(users):计划启动线程数,即你想模拟多少个用户同事发起请求;
(2)Ramp-Up Period(in seconds):计划在几秒内启动全部线程,例如图中线程数10,该参数设置5,则每秒启动线程数为10/5=2;
(3)Loop Count:字面理解这个就是循环次数的意思,但其实更贴切的应该是请求次数,也就是每个用户(线程)发起请求的次数,若该值设置为1,则一共发起的请求数=1*10,一般情况下我们选择Forever,也就是不限制请求数;
(4)Delay Thread creation until needed:延迟启动线程,不勾选则压测启动的时候所有线程就全部创建好,勾选时在需要创建的时候才创建(会对压测结果有很小的影响),一般不勾选
- 区域4:计划执行,可以设置计划执行的时间和计划多长时间后开始执行
(1)Duration:计划执行时间(若设置了Loop Count则可能未到计划时间就结束运行,因为请求数已经完成);
(2)Startup delay:延迟启动,点击开始后多少时间后才启动压测,配置为0则为立即启动;
Stepping Thread Group
- 创建Stepping Thread Group
- 参数设置
- 区域1:在取样器错误后要执行的动作,该参数与Thread Group一致
- 区域2:线程属性
(1) This group will start Max threads:设置单台负载机,线程组启动的线程总数为Max个;
(2)First,wait for N seconds:启动第一个线程之前,需要等待N秒;
(3) Then start N threads: 设置最开始时启动N个线程;
(4) Next add N1 threads every N2 seconds, using ramp-up N3 seconds :然后,每隔N2秒,在N3秒内启动N1个线程;
(5)Then hold load for N seconds:单台负载机启动的线程总数达到Max之后,持续运行N秒;
(6) Finally,stop N1 threads ervery N2 seconds - 最后,每隔N2秒,停止N1个线程数; - 区域3:线程个数/时间折线图
线程组创建完成后,相当于你已经雇佣了这么多人来给你打工,但是目前为止他们还不知道要给你干什么,那么此时你就需要通过一个窗口来告诉他们需要干什么,这个窗口也就是组成线程组的最基本元素-请求,需要进一步了解的同学请移步用JMeter做http压力测试,这一篇就够(四-请求)