性能测试流程-JMeter工具进行系统最大并发数测试

上一篇博文详细说明使用iperf工具进行系统最优发包频率的测试,本篇博文针对第二个点:系统最大并发数,进行详情说明。

日志系统我们按照不同的并发数访问常用接口得出系统最大用户数与系统最大请求数,此指标我们使用JMeter性能测试工具来实现。

一.确定业务场景。

确定并发操作的业务场景,将核心接口整理出来为后续加压测试进行数据准备。

二.确定最大并发数测试方法。

根据学习查询,确定两种测试方法,方法如下:

1)方法一:按照不断加压直至吞吐量不再增加时得出最大并发用户数。

2)方法二:计算最大用户并发数,强调同时操作,也可以理解为同时发送请求,针对这个问题使用RPS定时器测试每秒最大请求数;在平衡状态下,最大并发用户数=RPS*响应时间

注:

a.最大并发用户数:同一时间在系统上的用户数量,这些用户可能分布在不同的功能模块或页面上。

b.最大并发请求数:同一时间在系统上的用户同时向服务器做出的请求数量,这些请求也可能分布在不同的功能呢模块或页面上。

三.方法一测试步骤。

按照不同模块进行加压测试,例如:并发总数为42个,初始线程加载无延迟,初始加载线程1个,运行1s后再次加载线程10个,加载时间为0s,全部线程加载完毕后持续运行40s,每过1s停止10个线程。持续总时间为:加载线程的时间4s+持续运行的时间40s+线程停止的时间4s=48s。

通过不同并发总数进行加压,找到吞吐量不再增加的临界值,此值约为最大并发用户数。

四.方法二测试步骤。

该种方法有两种测试方式:

1)使用jp@gc - Throughput Shaping Timer(吞吐量成形计时器,调节rps的定时器)。

例如:

a.设置线程组中线程数为50,ramp-up时间为1s,永远循环;请求下添加rps定时间,rps由1/s增加到3000/s;获取线程组运行时间与定时器时间最小值。

b.查看HPS运行后的结果,发现HPS数值平均在2100,即RPS=2100。

c.查看TPS运行后的结果,发现TPS平均在300/s(系统整体处理能力取决于处理能力最低模块的TPS值)。

d.查看RT运行后的结果,发现事务响应时间在70ms以内。

e.查看聚合报告无异常数据,单个 Request 的平均响应时间为17ms。

结论:稳定情况下,最大rps约为2100/s,平均响应时间为17ms,最大并发用户数 =2100*0.017=36。

2)使用jp@gc – Stepping Thread Group阶梯加压线程组。

例如:

并发总数为50个,初始线程加载无延迟,初始加载线程1个,运行2s后再次加载线程10个,加载时间为1s,全部线程加载完毕后持续运行40s。持续总时间为:加载线程的时间13s+持续运行的时间40s=53s。

查看HPS运行后的结果,发现HPS数值平均在2100。

查看TPS运行后的结果,发现TPS平均在300/s(系统整体处理能力取决于处理能力最低模块的TPS值)。

查看RT运行后的结果,发现事务响应时间在100ms以内。

查看聚合报告无异常数据, 单个 Request 的平均响应时间为22ms。

结论:稳定情况下,最大rps约为2100/s,平均响应时间为22ms,最大并发用户数=2100*0.022=46。

3) 结合1)和2)实例结果得出主页面模块最大并发用户数=41个/s,最大并发请求数=2100请求/s