关于JMeter线程组中线程数,Ramp-UpPeriod,循环次数之间的设置概念

更新时间:2023-06-27 17:35:59 阅读: 评论:0

关于JMeter线程组中线程数,Ramp-UpPeriod,循环次数之间
的设置概念
关于JMeter线程组中线程数,Ramp-Up Period,循环次数之间的设置概念
笔者是个刚刚踏⼊压⼒测试领域不到2个⽉的⼩菜,这⾥分享⼀下线程组中3个参数之间关系的个⼈见解,不喜请!喷!,望⼤家给出宝贵的想法。
假设:
线程数:n
御姐动漫
Ramp-Up Period:T (有⼈称之为启动时间,有⼈说是准备时长,看个⼈喜好)
循环次数:a
若每个循环运⾏时间是 t
当时间到 S = (T- T/n)时,最后⼀个线程启动,若要使所有线程同时运作,则需要在最后⼀个线程启动的时候第⼀个线程仍未关闭,为达到这个要求,需满⾜ a·t > S及a > S/t
每⼀个个线程运⾏时间既是R = a·t(此处的a是⼤于S/t的某⼀值),则第⼀个线程在时间点为R 的时候停⽌,整个测试理论运⾏时间则
是:S + R = (1-1/n)·T + a·t
总结:
测试中变量是线程数 n ,每个循环时间 t 是个实践值,循环次数 a 只是为了延长单个线程的运⾏时间,从⽽保证当最后⼀个线程启动时,所有线程都在运⾏中,达到压测效果。
以上是我个⼈的总结,额,什么?看不懂!其实笔者写完了也晕了,下⾯我们⽤确切的数值进⾏试验
我们设置线程数 n = 5,循环次数a = 1000,请求,得到聚合报告如图:
出租方图中得到⾕歌⾸页的平均请求时间⼤约为t = 0.2秒
这⾥,我们为了⽅便分析,将Ramp-Up Period 设置为T = 10秒(实际合理的时间后⾯会说明)
依然是n = 5,得到 S = (T- T/n) = 8 ,也就是说,从第⼀个线程启动到第8秒的时候,最后⼀个线程开始启动,若需要在最后⼀个线程启动的时候第⼀个线程仍未关闭,则需要满⾜ a·t > S ,已知S = 8,t = 0.2,得到 a > 40 。
OK,既然循环次数要⼤于40,我们不妨把循环设置成100,那么单个线程运⾏时间就是R = a·t = 20秒,
也就是说第⼀个线程会在第20秒的时候停⽌,整个测试的理论运⾏时间为 S + R = (1-1/n)·T + a·t = 28秒
我们⽤⼀张图来直观的看看每个线程的运⾏情况
七彩虹主板驱动
从图中可以得到从第8秒开始,到第20秒,5个线程同时在运⾏中,此时才是真正的模拟5个⽤户同时并发
说了这么多,我们的⽬的到底是什么?⽆⾮是如何设置线程数,Ramp-Up Period以及循环次数。线程数我就不多说了,看各个项⽬的测试需求,⽽刚刚我说了这么多,实质上只是介绍了⼀些概念和如何合理的设置循环次数,⾄于Ramp-Up Period如何合理这是,请看下⾯⼤神的分析。
作为菜鸟,笔者以菜鸟的⽂笔和想法污染的⼤家的⼤脑,请见谅,还是那句话,不喜请!喷!漳河镇
每个线程均独⽴运⾏测试计划。因此,线程组常⽤来模拟并发⽤户访问。假如客户机没有⾜够的能⼒
来模拟较重的负载,可以使⽤Jmeter的分布式测试功能来通过⼀个Jmeter控制台来远程控制多个Jmeter引擎完成测试。
  参数 ramp-up period ⽤于告知JMeter 要在多长时间内建⽴全部的线程。默认值是0。假如未指定ramp-up period ,也就是说ramp-
up period 为零, JMeter 将⽴即建⽴所有线程,假设ramp-up period 设置成T 秒,全部线程数设置成N个, JMeter 将每隔T/N秒建⽴⼀个线程。
  线程组的⼤部分参数是不⾔⾃明的,只有ramp-up period有些难以理解,因为如何设置适当的值并不轻易。⾸先,假如要使⽤⼤量线程的话,ramp-up period ⼀般不要设置成零。因为假如设置成零,Jmeter将会在测试的开始就建⽴全部线程并⽴即发送访问请求,这样⼀来就很轻易使服务器饱和,更重要的是会隐性地增加了负载,这就意味着服务器将可能过载,不是因为平均访问率⾼⽽是因为所有线程的第⼀次并发访问⽽引起的不正常的初始访问峰值,可以通过Jmeter的聚合报告监听器看到这种现象。
这种异常不是我们需要的,因此,确定⼀个合理的ramp-up period 的规则就是让初始点击率接近平均点击率。当然,也许需要运⾏⼀些测试来确定合理访问量。游三事件
时间句子  基于同样的原因,过⼤的ramp-up period 也是不恰当的,因为将会降低访问峰值的负载,换句话说,在⼀些线程还未启动时,初期启动的部分线程可能已经结束了。
  那么,如何检验ramp-up period I太⼩了或者太⼤了呢?⾸先,推测⼀下平均点击率并⽤总线程除点击率来计算初始的ramp-up period。例如,假设线程数为100,估计的点击率为每秒10次,那么估计的理想ramp-up period 就是 100/10 = 10 秒。那么,应怎样来提出⼀个合理的估算点击率呢?没有什么好办法,必须通过运⾏⼀次测试脚本来获得。
  其次,在测试计划(test plan)中增加⼀个聚合报告监听器,如图2所⽰,其中包含了所有独⽴的访问请求(⼀个samplers)的平均点击率。第⼀次取样的点击率(如http请求)与ramp-up period 和线程数量密切相关。通过调整ramp-up period 可以使⾸次取样的点击率接近平均取样的点击率。
第三,查验⼀下Jmeter⽇志(⽂件位置:JMeter_Home_Directory/bin) 的最后⼀个线程开始时第⼀个线程是否真正结束了,⼆者的时间差是否正常。
  总之,是否能确定⼀个适当的ramp-up time 取决于以下两条规则:
  ·第⼀个取样器的点击率(hit rate)是否接近其他取样器的平均值,从⽽能否避免ramp-up period 过⼩。
单杠练腹肌
  ·在最后⼀个线程启动时,第⼀个线程是否在真正结束了,最好⼆者的时间要尽可能的长,以避免ramp-up period过⼤。
蜻蜓  有时,这两条规则的结论会互相冲突。这就意味着⽆法找到同时满⾜两条规则的合适的ramp-up period。糟糕的测试计划通常会导致这些问题,这是因为在这样的测试计划⾥,取样器将不能充分地采集数据,可能因为测试计划执⾏时间太短并且线程会很快的运⾏结束。

本文发布于:2023-06-27 17:35:59,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1052849.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:线程   点击率   时间   测试   启动   设置   访问
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图