一般的来讲,被测试系统的性能为:通道个数*单个通道的TPS=总tps。
Tps,就是一秒可以处理的事务个数。
当我们使用很少的虚拟用户(VU)数给系统加压,如果VU的个数比通道个数小,那么就无法知道总的tps的个数。因为很多通道是空闲的。
比如,我们使用50UV来给系统加压,thinktime=0,就是不同的发起请求,一个接一个来加压。如果被测试系统(简称AUT,application under testing)的单个事务响应时间是0.5秒,那么如果通道的个数超过50uv,那么此时TPS=50/0.5=100.
当UV的个数超过了通道个数,就会产生等待处理队列,这样我们让然能够使用少量的VU来产生大量的压力。
但是,实际上,被测试系统的操作,往往是存在时间间隔的,这样不停的发送,即:thinktime=0的情况,对于实际的模拟,有时候并不理想。特别是当响应时间变长之后。
因此,我们就会让thinktime大于0.具体的做法是两种:
1,在每次请求事务完成之后,增加一个固定的thinktime时间,来等待。
2,把每次事务设定一个固定的时间,我们也叫做“步长”。比如,我们设置步长为1秒。当处理时间是0.3秒,那么thinktime=0.7秒。当处理时间上升到0.6秒,那么thinktime时间变成0.4秒。
使用步长,显然是更合理的能够模拟客户更真实的行为。当然,真实客户的操作时间间隔往往很长,在性能测试过程中,也不会真的设置太长时间来模拟,一半都会缩短时间。
推荐阅读: