1、测试接口单线程TPS平均值,如下图约80/sec
2、设置RPS定时器,在jmeter接口下面增加定时器jp@gc - Throughput Shaping Timer,然后线性设置TPS的增长速率,比如预期接口能达到400TPS。
3、按照单线程80TPS来算,起码要使用400/80=5个线程来跑。 增加监听器jp@gc - Transactions per Second来观察tps变化。
4、跑完后可看到,TPS曲线中,TPS最大约能达到330/sec,即为最大TPS。
而此时的聚合报告中吞吐量为213.7/sec,其计算方式为总样本数/压测时间 (19499/91≈213.7/sec),这里实际为压测时间段内的平均TPS,由于本次设置的RPS增长是线性的,前期比较小,所以平均TPS(213.7/sec)是小于峰值TPS(330/sec)的。
另外,由于这种测试方式压力是逐步增加的,因此响应时间,异常均未出现异常。只能说明系统最大的TPS是这么多,此时如果通过增大线程数,增加压测时间,其TPS只会有所下降。但是这里并不能算出最大并发数。
1、增加阶梯加压线程组jp@gc - Stepping Thread Group (deprecated),线性设置并发压力
2、增加监听器jp@gc - Composite Graph,观察线程数、响应时间、TPS的曲线趋势。按照接口95%响应时间1S内,报错率不超过99.9%的指标要求来看,系统可支持的最大并发数为100/S(计算方式为100线程,而此时接口响应时间约在1s,所以每秒并发数为100/sec)。
另外,可看出TPS约为100/sec,远远小于上面测试的最大TPS(330/sec),也说明了随着压力的增大,系统的TPS会降低,来保证处理的正确性。而最大的TPS仅为合适的压力下,达到的理想状态。
原文:https://www.cnblogs.com/chooperman/p/14627122.html