JMeter
服务端系统性能测试是针对服务器端应用程序或服务 在特定负载下的运行能力和稳定性进行评估的方法。
产品文档应该有产品的性能指标,做性能测试前,如果需求文档没有性能指标则要向产品团队要。服务端系统性能测试 的常见指标有:TPS、响应时长、并发连接和并发用户、CPU\内存\磁盘\网络 负载。
TPS(transaction per second): 是服务端每秒处理请求的数量;最直观的反映了系统的处理能力。TPS由 RPS、网络延迟、服务端本身的处理速度 这三个因素决定的,服务端本身的处理速度 就是我们要测的,测试是我们要保证的就是另外两个因素;做性能/压力测试时,被测系统和加压系统,应该放在一个带宽网速比较好的环境中,保证网络延迟没有问题;然后,性能测试工具要测试 TPS 能否达到,主要就是每秒发送请求的数量,也就是RPS。
此外还有RPS(request per second):是 测试工具每秒发送请求的数量;和TPS不同,RPS是每秒发送的请求数量,TPS是每秒处理的请求数量,RPS是决定TPS的重要因素。
EPS(error per second): 是 服务端 每秒处理出错的数量;也包含在TPS中,一个好的系统EPS应该一直为0。
TOPS(timeout per second):是 服务端 每秒处理超时的数量;超时时间具体是多少由产品定义,一个好的系统TOPS应该一直为0。
响应时长:就是服务端处理请求耗费的时间;是影响用户体验的重要指标。主要有平均响应时长(服务端处理请求的平均耗费时间) 和 响应时长区段统计(避免个别请求耗时特别长的请求被平均了看不出来)。
并发连接和并发用户:并发连接数是服务端和客户端 建立的 TCP连接的数量;并发用户数是服务端同时服务的 用户数量。一个用户的一个操作可能引发多个并发连接。
并发连接数指标,适用于测试面向客户端程序的 API服务系统,比如云服务。和TPS 对系统性能的衡量侧重点不同,并发连接数指标 衡量 系统 能同时处理客户的能力。linux下可通过如下命令
netstat -an | grep ESTABLISHED | grep -w 80 | wc -l
查看并发连接的数量
CPU\内存\磁盘\网络 负载:在性能测试时,不能只看TPS、响应时长等指标是否达到,也要看被测系统在达到这些指标时,机器本身的负载情况,主要有 CPU占用率, 内存使用,磁盘IO、磁盘使用率;在性能测试分析时,主要关注两点:机器是否接近满负荷状态和资源使用是否持续上升。