一、不同角色关注的性能
用户视角
- 响应时间
管理员的视角
- 响应时间
- 系统状态相关信息
开发的视角
- 响应时间
- 扩展性
- 性能瓶颈
二、术语定义
-
响应时间
——呈现时间 :数据在被客户端收到响应数据后呈现页面所消耗的时间
——系统响应时间:应用系统从请求发出开始到客户端接收到数据所消耗的时间
-
并发用户数
——计算公式
平均并发用户数C=n*L/T
并发用户数峰值CC=C+3*sqrt(C)
以OA系统距离,假定该系统有5000个用户,平均每天大概有500个用户要访问该系统(可以从系统日志获得),对于一个典型用户来说,一天之内用户从登录到退出的平均时间为2小时,而在一天之内,用户只有在8小时内会使用该系统,那么:
平均并发用户数为:C=500*2/8 = 125
并发用户峰值为:C=125+3*根号125=159
- 吞吐量
——单位时间内系统处理客户请求的数量
——吞吐量一般用请求数/秒或页面数/秒来衡量
在web系统的性能测试过程中,吞吐量主要以请求书(单机数)/秒、页面数/秒或字节数/秒来体现
——计算方法
吞吐量F=Nvu*R/T
F吞吐量
Nvu虚拟用户的数量
R表每个vu发出的请求数量
T表性能测试所用的时间
-
性能计数器
——描述服务器或操作系统性能的一些数据指标
——计数器在性能测试中发挥着“监控和分析”的关键作用
-
思考时间
——用户在进行操作时,每个请求的间隔时间
——0思考时间
三、性能测试的方法
1、性能测试(Perfomance Testing)
通过模拟生产环境的业务要和使用场景组合,测试系统的性能是否满足实际的性能的需求
——主要目的验证系统是否有系统宣称具有的能力
——需要事先了解被测试系统典型场景,并具有确定的性能目标
负载测试(Load Testing)
3、压力测试(Stress Testing)
通过确定一个系统的瓶颈或者不能接受性能点,来获得系统能提供的最大服务级别的测试
——主要目的是为了检查系统处于压力情况下,应用的表现
——主要通过模拟负载等方法,使得系统的资源使用达到较高水平(80%-90%)
——一般用于测试系统的稳定性
4、配置测试(Configuration Testing)
对被测试系统的软/硬件环境的调整,了解各种不同的环境对性能测试的影响的程度,从而找到系统各项资源的最优配置
——主要的目的是为了了解各种不同因素对系统性能的影响的程度,从而判断出最值得进行调优的操作
——一般在对系统性能状况有了初步了解后进行
——一般用于性能调优或规划能力
5、并发测试(ConCurrency Testing)
通过模拟用户的并发访问,测试多用户并发访问同一个模块或子系统时是否存在死锁或者其他性能问题
——主要目的是发现系统中可能隐藏的并发访问时的问题
——主要关注系统可能存在的并发问题
6、可靠性测试(Reliability Testing)
通过系统加载一定的业务压力的(如资源在60%-80%的使用率)的情况下,让应用持续运行一段时间,测试系统在这种条件下是否能够稳定运行
——主要的目的是验证系统是否运行长期稳定的运行
——需要在压力下持续一段时间运行
——测试过程中需关注系统的运行状况
7、失效恢复测试(Failover Testing)
针对有冗余备份和负载均衡的系统设计的,这种测试方法可以用来检验如果系统局部发生故障,用户是否能够继续使用系统;以及如果这种情况发生,用户将受到多大影响
——主要目的是验证在局部故障的情况下,系统能否继续使用
——当问题发生时能支持多少用户访问和采取何种应急措施
——只有对系统持续运行指标有明确要求的系统才需要进行这种类型的测试
四、性能测试模型
第8节