当软件的性能出现瓶颈时,会反过来影响和制约软件功能的表现。
性能测试术语定义
响应时间
呈现时间
数据在被客户端收到响应数据后呈现页面所消耗的时间
系统响应时间
应用系统从请求发出开始到客户端接收到数据所消耗的时间
并发用户数
平均并发用户数 C=n*L/T
并发用户数峰值 CC=C + 3*sqrt(C)
吞吐量
单位时间内系统处理客户请求的数量
吞吐量一般用请求数/秒或页面数/秒来衡量
在web系统的性能测试过程中,吞吐量主要以请求数(单击数)/秒、页面数/秒或字节数/秒来体现
计算方法
吞吐量F=Nvu*R/T
F吞吐量
Nvu虚拟用户的数量
R表每个vu发出的请求数量
T表性能测试所用的时间
性能计数器
描述服务器或操作系统性能的一些数据指标
计数器在性能测试中发挥着“监控和分析”的关键作用
性能测试方法
性能测试
通过模拟生产环境的业务 压力和使用场景组合,测试系统的性能是否满足实际的性能的需求
主要目的验证系统是否具有系统宣称具有的能力
需要事先了解被测试系统典型场景,并具有确定的性能目标
负载测试
在一定负载程度下进行最大负载的过程
主要目的是找到系统处理能力的极限
需要在给定的测试环境下进行,通过逐步施加压力的方式找到系统性能的最大瓶颈
用来了解系统的性能容量,或是配合性能调优来使用
压力测试
通过确定一个系统的瓶颈或者不能接受性能点,来获得系统能提供的最大服务级别的测试
主要目的是为了检查系统处于压力情况下时,应用的表现
主要通过模拟负载等方法,使得系统的资源使用达到较高水平(80%-90%)
一般用于测试系统的稳定性
配置测试
对被测试系统的软/硬件环境的调整,了解各种不同的环境对系统性能的影响的程度,从而找到系统各项资源的最优配置
主要目的是为了了解各种不同因素对系统性能的影响的程度,从而判断出最值得进行调优操作
一般在对系统性能状况有初步了解后进行
一般用于性能调优或规划能力
并发测试
通过模拟用户的并发访问,测试多用户并发访问同一个模块或子系统时是否存在死锁或者其他性能问题
主要母的是发现系统中可能隐藏的并发访问时的问题
主要关注系统可能存在的并发问题
可靠性测试
通过给系统加载一定的业务压力的(如资源在60%-80%的使用率)的情况下,让应用持续运行一段时间,测试系统在这种条件下是否能够稳定运行
主要目的是验证系统是否能够长期稳定的运行
需要在压力下持续一段时间运行
测试过程中需要关注系统的运行状况
失效恢复测试
针对有冗余备份和负载均衡的系统设计的。这种测试方法可以用来检验如果系统局部发生故障,用户是否能够继续使用系统;以及如果这种情况发生,用户将受到多大程度的影响
主要目的是验证在局部故障的情况下,系统能够继续使用。
当问题发生时能支持多少用户访问和采取何种应急措施
只有对系统持续运行指标有明确要求的系统才需要进行这种类型的测试。
全面性能测试模型
预期指标的性能测试
需求分析与设计阶段的性能指标
独立业务性能测试
组合业务性能测试
疲劳强度性能测试
长时间处理大业务量的能力
大数据量性能测试
在生产环境下进行
网络性能测试
一般由系统集成人员完成
服务器性能测试
特殊测试
配置测试、内存泄露测试