上周做的压力测试,使用的ramp-up time不恰当,导致测试结果非常难看。
先来了解ramp-up period这个参数。在Jmeter脚本的第一个要素是线程组(Thread Group),因此首先让我们往返顾一下。线程组需要设置以下参数:
·线程数量。
·ramp-up period。
·运行测试的次数。
·启动时间:立即或者预定的时间,假如是后者,线程组所包含的元素也要指定这个起止时间。
参数 ramp-up period 用于告知JMeter 要在多长时间内建立全部的线程。默认值是0。假如未指定ramp-upperiod ,也就是说ramp-up period 为零, JMeter 将立即建立所有线程,假设ramp-up period设置成T 秒, 全部线程数设置成N个, JMeter 将每隔T/N秒建立一个线程。
首先,假如要使用大量线程的话,ramp-up period 一般不要设置成零。因为假如设置成零,Jmeter将会在测试的开始就建立全部线程并立即发送访问请求,这样一来就很轻易使服务器饱和,更重要的是会隐性地增加了负载,这就意味着服务器将可能过载,不是因为平均访问率高而是因为所有线程的第一次并发访问而引起的不正常的初始访问峰值。这个刚好正是我们遇到的问题。
因此,确定一个合理的ramp-up period的规则就是让初始点击率接近平均点击率。
那么,如何检验ramp-up periodI太小了或者太大了呢?首先,推测一下平均点击率并用总线程除点击率来计算初始的ramp-up period。 例如,假设线程数为100,估计的点击率为每秒10次, 那么估计的理想ramp-up period 就是 100/10 = 10 秒。那么,应怎样来提出一个合理的估算点击率呢?没有什么好办法,必须通过运行一次测试脚本来获得。
以上都是简单的拷贝,个人感觉还是非常有用的。因为这个参数设置错误后,根本得不到你想要的测试结果。
读:开始需要读书了
想:也许没有很多自己的思想,但能写下也是一种进步。加油!