不同角色关注的性能
1、用户视角
响应时间
- 呈现时间:数据被客户端收到响应数据后呈现页面所消耗的时间 发去请求到所有页面数据展现出来 全部数据包达到客户端
- 系统响应时间:应用系统从请求发出开始到客户端接收到数据所消耗的时间 第一个数据包达到客户端,小于呈现时间 更加具备代表性
2、管理员的视角
响应时间
系统状态相关的信息
3、开发的视角
响应时间
扩展性(超越硬件提供更大资源)
性能瓶颈
并发用户数
计算公式:
平均并发用户数C=n(用户数)L(访问时间间隔)/T(平均访问时间段)
并发用户数峰值CC=C+3sqrtC
例:平均500个用户访问该系统,对于一个典型用户来说,一天之内从登录到退出平均时间2小时,用户只在8小时间之内会使用该系统
C=5002/8=125
CC=125+3sqrt125=159
吞吐量
单位时间内系统处理客户请求的数量吞吐量一般请求数/秒或者页面数/秒来衡量 - WEB系统性能测试过程中,吞吐量主要以请求书(单击数)/秒、页面数/秒或字节数/秒
计算方法:
F=Nvu(虚拟用户数量)*R(每个vu发出的请求数)/T(性能测试所用时间)
性能计数器
操作系统已有的,描述服务器或者操作系统的一些数据指标
思考时间
用户在进行操作时,每个请求的时间间隔
性能测试方法
1、性能测试:通过模拟生产环境业务压力和使用场景组合,测试系统的性能是否满足实际的性能需求 - 主要目的是严重系统是否具有系统宣称的能力
- 需要事先了解被测试系统典型场景,并确定性能目标
环境(硬件组成、网络类型、连接方式):开发环境、测试环境(功能测试->开发环境、性能测试->生产环境)、生产环境(系统上线后实际运行的环境)
2、负载测试:在一定负载程度下进行最大负载的过程 - 目的是找到系统处理能力的极限
- 在给定测试环境下进行,通过逐步施加压力方式找到系统性能最大瓶颈
- 用来了解系统性能的性能容量或是配合性能调优来使用
3、压力测试:确定一个系统的瓶颈后者不接受性能点,来获得系统提供服务最大服务级别 - 用于测试系统稳定性
- 一开始就使得系统资源达到较高水平(最大的80%-90%)
- 检查系统处于压力情况下的表现
4、配置测试:对被测系统软硬件环境的调整、网络环境等,找到最优的资源配置
5、并发测试:模拟用户并发,测试用户并发访问同一个模块后者子系统是否存在死锁或者其他性能问题
6、可靠性测试:vs压力 最大负载60%-80% 判断停止测试的标准不同,压力测试系统什么时候崩溃(错误不断出现)什么时候停止,可靠性系统什么时候出错什么时候停止
7、失效回复测试:针对有冗余备份和负载均衡系统设计的,用来检验系统发生局部发生故障用户是否可以继续使用
全面性能测试模型
预期指标性能测试 - 需求分析和设计阶段性能指标
独立业务性能测试
组合业务性能测试
疲劳性能测试 - 长时间处理大业务量能力
大数量性能测试 - 生产环境进行
网络性能测试 - 一般由系统集成人员完成
服务器性能测试
特殊测试 - 配置测试、内存泄漏测试…
确定问题
检查代码
调整数据库配置
检查硬件配置
检查软件配置
检查网络
确定原因
影响
用户数
资源监控
模块
客户端/服务端
硬件配置
负载
优化
确定调整目标和解决方案
确定调整目标主要作品是明确何时停止系统调整,否则工作将永无尽头
测试解决方案
分析调整结果
系统调整是否达到或者超出了预定目标
系统是否整体性能得到了改善,还是牺牲了某部分性能来解决问题的
调整是否可以结束了