性能测试
1、我们理解的性能测试:
- 使用压力测试工具
- 测试普遍认知的指标参数
- 静态页面、查询、登陆登出
- 跟其他产品比较:给客户、经理和架构师看
2、对性能测试的理解误区:
- 性能测试是可有可无的东西
- 性能测试的受众为客户或者第三方
- 仅仅是为了跟其他产品或者臆想出来的指标比较
- 没有从客户和业务的角度出发看待性能
- 仅仅测试表面数字比较好的功能
- 只关注测试结果忽略测试系统和测试环境的影响
- 性能测试=模拟测试
- 忽略数据分析:数据来源?提供什么数据?怎么分析数据?
3、可以从性能测试中得到的信息:
- 评估性能瓶颈
- 评估客户市场符合度
- 评估架构设计
- 一份有价值的性能分析报告
4、性能测试的关注者:
- 受众
- 客户、经理
- 架构师
- 测试人员
- 执行者
- 测试人员
- 架构师
- 执行时机
- 产品研发之前确定性能指标
- 架构设计完成之后确定度量标准
- 稳定版本发布之前出具性能分析报告
- 架构更改或者性能调优之后评估改动结果
- 执行方式
5、性能测试不等与压力测试:
- 目标的差别
- 性能测试的目的是检查系统是否符合业务性目标设定,并为系统架构的整体优化提供参考。
- 压力测试的目的是检查系统是否可以支撑一定压力。
- 测试方法的相似性
- 大都通过压力测试工具,尤其是并发压力测试工具进行测试
- 测试参与人员
- 性能测试需要架构师的参与
- 测试数据分析的差异
- 性能测试更加关注数据后面的业务价值
- 性能测试数据是为了帮助架构师找到性能的拐点
- 压力测试不需要对数据进行分析
6、指标:
- 并发数
- 强并发情况(并发同时访问同一功能)
- 弱并发情况(并发同时访问不同功能)
- 在线用户
- 响应时间
- End-to-End 性能日志
- 客户端指标
- HTTP 4XX, 5XX错误情况
- 页面交互次数
- 页面装载时间
- 页面大小
- 服务器硬件数据指标
- CPU占用率
- IO读写情况
- 网络数据指标
- 吞吐量、带宽利用率
- 服务端局域网堵塞情况
- 运行环境数据指标(JVM)
- 堆内存情况
- GC后内存占用情况
- 并发线程情况
- 线程数、线程死锁情况
- GC情况(GC次数、消耗时间,Full GC间隔时间)
7、测试工具:
- 性能测试工具
- Load Runner测试数据
- Web测试数据
- Http Analyzer
- Firebug/Yslow
- Fiddler
- 互联网网络测试: WANem
- 监控工具
- 通过JConsole获取JVM性能数据
- 特定服务器的监控工具,如OEM(AUM?)
- 通过JMX定义扩展性能记录
- 局域网网络流量监控软件
- 定制分析工具
- 日志分析工具
- GC日志的分析
- Apache Http Server日志的分析
- 应用程序异常日志的分析
- Application Runtime Tracking
- AOP,异步机制,对服务端应用记录响应性能日志
- User Behavior Survey
- 记录用户访问的分布及每个功能的压力分布
- End-to-End Performance Logging
- 页面请求及网络传递时间
- 服务端数据处理时间
- 服务端应用事务调用时间
- 页面装载及渲染时间
8、设定参考指标:
- 业务背景 (Business Background)
- 明确真实的用户量、数据量,确定性能估计标准
- 物理部署架构 (Deployment Architecture)
- 明确每个部署节点的作用和压力
- 明确节点所在服务器的伸缩能力
- 核心业务功能(Core Function)
- 找到性能测试的价值点
- 服务质量标准 (Quality of Service)
- 确定成功率,测试可接受率、响应时间等标准
- 用户体验(User Ability)
- 确定响应时间标准、HTTP4xx,5xx错误可接受率。
相关推荐
chensen 2020-11-14
lwnylslwnyls 2020-11-06
ATenhong 2020-10-15
yanzhelee 2020-10-13
佛系程序员J 2020-10-10
guojin0 2020-10-08
佛系程序员J 2020-10-08
bluewelkin 2020-09-16
wwzaqw 2020-09-04
zhongdaowendao 2020-09-02
favouriter 2020-08-18
奎因amp华洛 2020-08-15
一青年 2020-08-13
千锋 2020-08-10
nangongyanya 2020-08-09
dongxurr 2020-08-08
明天你好 2020-08-03
kyelu 2020-08-03
Ashes 2020-08-03