JMeter Web性能测试增强版系列2- Ultimate Thread Group
介绍
Ultimate Thread Group非要翻译成中文的话,根据JMeter的官方文档意思,可以翻译成终极版线程组,意思是说这个线程组能够满足所有人的需要,它能够做到下面3点:
1. 可以在线程组上添加一条又一条的记录,每条记录用于指定我们在某个时间段期望启动的线程数,同时也可以指定这些线程数在这个时间段内全部启动起来的时间,稳定运行的时间,全部关闭掉的时间。
2. 在这个线程组上可以添加无限条这样的记录。
3. JMeter能够展示我们事先规划的时间和线程数的关系图,并且能够按照你规划的时间和线程数的关系去执行。
 
说明
1. 添加该线程组的方式和添加其它线程组一样,右单击“测试计划”,鼠标依次滑动到“添加” -> "Thread(Users)" -> "jp@gc - Ultimate Thread Group"上,最后在“jp@gc - Ultimate Thread Group”上点击下就行了。
2. 在“Threads Schedule”里点击“Add Row”添加记录。记录添加后,双击记录的任一个字段都可以改变该字段的值。
3. 每条记录有5个字段。
   Start Threads...表示在该记录所指定的时间段内我们要启动的线程数。
   Initial Delay...表示这些线程在测试计划开始执行多久后才开始启动,单位秒。JMeter规定整个测试计划开始执行的时间为00:00:00,若此字段配置的是0,则意味着测试计划开始执行便开始启动这些线程,若此字段配置的是15,则则意味着测试计划开始执行15s后才开始启动这些线程。
   Startup Time...表示启动这些线程所需的时间,单位秒。
   Hold Load For...表示这些线程全部启动起来之后,稳定执行的时间,单位秒。
   Shutdown Time...表示关闭这些线程所需的时间。单位秒。
4. 举例来说明字段里的这些参数
   例1,



例2,



注释:第2条记录规划的线程在第1条记录规划的线程结束后开始启动(我们可以看到第2条记录的Initial Delay是100s,即这个意思),启动执行关闭过程和第1条记录相同。
例3,



该图线其实是下面两个记录图线在时间上的相叠加,





实际应用
在web性能测试中,许多公司在制作测试计划时,往往用固定数目的长连接和web服务器相连,这样虽然也能模拟web处于一种稳定的并发访问的状态,但还是与现实情况有一些差距的。因为虽然在一段时间内的任一时刻看起来和web相连的用户连接总是那么多,但这并不意味着这段时间内一直都是这些用户连接存在着,在不同的时刻总是有部分用户关闭浏览器或离开网页,而同时又有一些新用户打开浏览器登上网页。而web服务器要维护这些连接的状态,并同时要打开和关闭这些连接,做这些事情要更消耗CPU,所以要更好的模拟实际网络场景做性能测试,需要模拟用户上线下线的情况,即并发访问web服务器的过程中要加入不断有tcp连接打开关闭的情形。有了Ultimate Thread Group,便能很好的模拟这点。
在测试中,假设我们可以这样预估用户的行为:在早上8:00到9:00点这个时间段不断的有用户上线,虽然这期间也会有用户下线,但整体来说并发访问的用户数是递增的,到9:00时,并发用户数为1000人/秒;此后在9:00到12:00这个时间段内并发访问的用户数处于稳定状态,这个时间段内下线和新上线的用户数基本上持平,所以在这3个小时内并发用户数基本上维持在1000人/秒。我们预估每人在网上待的平均时间大概是15分钟,所以对某个时刻的1000人来说,应该在15分钟后最后一个人下线,因为下线和新上线的用户数基本上持平,所以在这个15分钟内,第15分钟时,第1000个人上线。这种假设虽然和实际情况有偏差,但这是一种能模拟用户上线下线,比较逼近真实情况的模型了。综上,我们可以在Ultimate Thread Group中这样添加记录来进行我们的测试。



虽然我们在图中看到并发的用户数图线是水平的,其实它是由许多三角尖峰图线叠加而成的,这些三角尖峰图线模拟了用户上线下线的情形,即与web服务器建立TCP连接,关闭TCP连接的情形。
相关课程
  • 高级软件测试课程

    ¥5000元173人学习

  • 软件测试就业班全栈课程

    ¥6000元166人学习

  • 友情链接
  • 唯美谷