1.定义
什么是性能测试?
对响应时间的评估、分析,结合应用的架构和实现细节找出问题,并最终确认问题得到解决的过程
2.详解
2.1 什么时候进行性能测试?
用户:用户体会到的性能是软件对用户操作的响应时间,是用户从提交或输入一个 url 地址到系统将全部数据呈现出来的时间。
系统管理员和性能测试工程师:除与用户的视角一样外,还关注与系统状态相关的信息,如系统资源的使用情况,包括 CPU 的使用、内存的使用情况、磁盘 I/O、数据交互等。还关注硬件资源的可扩展性即规划性能部分,如系统支持 100 个用户并发没问题,支持 200 个呢?
软件开发工程师:关注以上所有问题,还关注内存泄露、数据库是否死锁、中间件以及和应用程序服务器等问题。
3.术语释意
3.1 请求
3.2 响应
3.3 协议
传输层协议: tcp、udp
3.4 响应时间
应用系统从用户发出请求开始,到客户端接收到所有数据所消耗的时间。
(1)网络传输时间:N1+N2+N3+N4。
(2)应用服务器处理数据:A1+A3。
(3)数据库处理时间:A2
3.5 在线人数
正在使用软件的用户
3.6 并发用户
指同一时刻与服务器进行数据交互的所有用户数量。(在线用户未必是并发用户)
服务器实际承受的压力不只取决于并发用户数,还取决于用户的业务场景
服务端承受的最大并发访问数取决于并发用户数+业务场景
计算并发用户数:
(1)一般都根据以往经验和行业标准进行估算。
如电信业并发用户数常为在线用户的万分之一;
OA 软件并发用户数一般在在线用户数的 5%-20%。
(2)参考其他同类产品。
(3)分析历史数据(一年或半年内的每天需要处理的交易业务量)。
(4)试上线运行。
**用于估算并发用户数的公式(仅供参考)
平均用户并发数:C=n*L/T 峰值并发用户数:C›≈C+3√C
C是平均并发数,n是用户从登陆到退出系统的时间段,L是系统使用时间段的平均值,T是使用系统的时间段数值,C›指并发用户数的峰值
对于企业内部使用的web系统,还有精度更小的一种公式 平均用户并发数:C=n/10 峰值用户并发数:C›≈r*C
3.7 吞吐量与吞吐率
吞吐量:指一段时间内服务器处理的字节数,直接体现服务器的承载能力。
吞吐率:指单位时间内从服务器返回的字节数,即吞吐量/测试时间,也可以是单位时间内处理的客户请求数。
(它是衡量网络性能一个重要指标。通常情况下吞吐量越大,吞吐率的值也越大,吞吐率越大表示系统的负载能力越强)
* :从吞吐量和 VU 关联图可看出,吞吐量在 VU 增长到一定数量时,软件系统出现性能瓶颈,此时吞吐量不再随 VU 增多而增大,而是趋于平衡。
* :实际测试时,吞吐量在测试前是不知道的,必须通过不断添加虚拟用户来测试,以找到吞吐量的拐点,即吞吐量的最大值。
3.8 每秒事务数
表示每秒系统处理的事务数,是衡量系统处理能力的重要指标。
指每秒钟用户向服务器提交的 HTTP 请求的数量。
点击一次可能会向服务器发出多个 HTTP 请求。通常服务器都具有防刷新机制,以防刷新导致的巨大压力。
点击率仅仅反映客户端提交的请求数,不能表现服务器当前承受的压力,因为服务器不能处理全部请求时可以拒绝客户端的部分请求。
若把每次点击作为一次提交事务来对待,则点击率与 TPS(吞吐量) 同义。
也称"休眠时间"、等待时间。指用户在进行操作时,每个请求之间的时间间隔。
负载测试一般忽略思考时间,压力或可靠性测试根基实际情况设置一个思考时间。通常思考时间设置为 3-5s。
资源利用率:指服务器系统中不同硬件资源被占用的程度,主要包括 CPU 利用率、内存利用率、磁盘利用率、网络等。
性能测试中常用资源利用率进行横向对比,如 CPU 使用率很高,而其他资源较低,可知 CPU 是系统瓶颈。配置调优测试中,通过比较配置调优前后的系统资源利用率来判断调优效果。
性能计数器:是描述服务器或操作系统性能的一些数据指标。主要是通过添加计数器来观察系统资源的使用情况。
计数器在性能测试中发挥着“监控和分析”的关键作用,尤其是分析系统可扩展性和定位性能瓶颈时。性能测试中分析测试结果时,必须基于多个不同的计数器进行分析。
4.性能测试分类