性能测试流程与调优
概述
分析性能需求
制定性能测试计划
设计场景
编写脚本和程序初始化配置
执行性能测试
分析结果
性能调优
回归测试
测试报告
1.概述:
性能测试:测试软件在系统中的运行性能,评估是否能满足需求
性能分析:对性能测试数据进行分析,定位性能的瓶颈问题
性能调优:对性能问题进行调优
2.分析性能需求:
了解系统性能需求,把所有的需求点列出来,整理成一个文档输出
数据建模,根据分析出来的性能需求,确定具体的业务流的并发量等
确定合理的性能目标,预期性能的目标可以根据类似系统的日志分析,或者参考以往数据记录
3.指定性能测试计划:
测试环境
测试软件
测试人员
测试目标
测试日程
测试风险分析
4.设计场景:
在线用户数
并发请求
峰值响应
持续压力
空载测试、基准测试(一个用户使用系统的各项指标)、最大测试、并发测试、混合测试(各个场景、测试方法混合起来)、疲劳测试等
5.编写脚本和程序初始化配置
脚本
例如loadrunner环境参数的设置等,以文档形式记录,供报告使用或以后参照。
6.执行性能测试:
保持环境的一致性,即测试系统的环境和正式系统的环境一直,以免测试结果在正式环境中不起作用
7.分析结果:
性能问题分析的基本原则
把事实与推测分开,总是用实际的证据来证明你的推测
在没有足够证据之前,不对程序进行优化
优先验证简单的假设
日志文件中没有错误不代表真的没有错误
从系统到应用、从外到内进行层层剥离,缩小范围
确认是系统级问题还是应用级的问题
确认是否外部系统问题(如密码鉴权问题,EJB问题等)
确认是应用程序问题还是数据库问题
范围缩小后,再分割成多个小单元,对每个小单元进行轮番压力测试,来证明或者否定是哪个单元引起性能问题
8.性能调优:
在应用系统的设计、开发过程中,应始终把性能放在考虑的范围内(任何时刻都要记住性能测试)
确定清晰明确的性能目标是关键
必须保证调优后的程序运行正确
性能更大程度是取决于良好的设计,调优技巧只是一个辅助手段
调优过程是迭代渐进的过程,每次调优的结果要反馈到后续的代码开发中去
性能调优不能以牺牲代码的可读性和维护性为代价
调优步骤:
确定清晰的性能目标,并按优先级排列
利用科学的测试工具对应用程序进行测试,并记录测试结果
把分布式系统拆分成组价:web层、业务层、集成层、以及网络传输时间,分别进行调优
有系统的科学调优
遵循一定的程序:测试性能à找出瓶颈à假设造成瓶颈的因素à测试假设是否成立à修改应用à再次测试性能
确定影响性能的因素:CPU、Memory还是IO
找出主要的瓶颈,首先解决最容易的,再重复测试
一次修改一个瓶颈,不要对不需要的地方进行调优
提高CPU性能:更快的代码、SQL,更好的算法,减少短期生存的对象
提高内存性能:减少或减小长期生存的对象
提高IO性能:重新设计应用,减少IO的交互
优化完成之后,进行测试
在代码中记录优化的地方,并对旧代码进行注释
9.回归测试:
功能的回归和性能的回归
10.测试报告: