为什么要进行性能测试
以最终用户的眼光看待性能
性能度量
- 可用性
- 相应时间
- 吞吐量
- 利用率
性能标准
- 超过15秒:排除交互的可能性。如果真的发生,应该设计成可以让用户转向其他操作,并且在后续时间里继续请求响应。
- 超过4秒:这样的延迟妨碍解决问题的活动,和破坏数据的录入。然而,当一个事务完成之后,1-15秒的延迟是可以忍受的。
- 低于2秒:用户如果需要记住几个信息,就不能超过两秒
- 亚秒:思想密集型的工作,尤其是一个图形应用程序,响应时间要非常的短,才能够保持用户的兴趣和吸引他长时间的关注
- 0.1秒:屏幕敲字要达到的响应。
商业价值
性能问题有一个讨厌的坏习惯,那就是等到发现它们时,往往已经是太迟了,而且您越晚发现它们,解决它们的成本就越高。 计划:应用程序按计划成功部署,并在系统部署后不出现或少出现问题,从而立即开始为企业带来效益。 实际:在产品研发过程中,非常频繁的发送实际部署和部署目标的不吻合,是由于在解决性能问题时花费大量的时间和金钱。对于企业来说,这可不是好消息,因为这个应用程序未能实现预期的效益。
性能测试成熟度
- 救火式:很少或者从来没有进行过性能测试,导致在生产环境的上发现的性能方面问题都得马上去解决。
- 性能验证:公司为性能测试单独安排了一段时间。在研发过程中,仍然有相当多的性能缺陷(30%)
- 性能驱动:在应用程序生命周期中的每一个阶段,均对系统性能加以考虑。上线性能问题就不会太多(5%)
系统设计阶段缺少性能方面的考虑
有多少用户
低估网站人气
自动化测试
不使用自动化的测试工具,您几乎无法执行有效的的性能测试
有效应用程序性能测试的基本原则
在实施有效的性能测试策略之前,您需要解决很多问题。
- 选择一个合适的性能测试工具
- 设计一个合适的性能测试环境
- 设计切合实际的性能测试目标
- 确保和编写被测应用程序足够稳定
- 做到代码冻结
- 确定和编写关键业务脚本
- 提供搞质量、足够的测试数据
- 确保嘴巴的性能测试设计
- 确定监控服务器和网络的关键性能指标(kpi)
- 安排有足够的时间进行有效的性能测试
环境检查
- 服务器数量
- 负载均衡策略
- 硬件信息
- 软件清单
- 应用程序组件清单
- 外部连接
关键性能指标
- 可用性或正常运行时间
- 并发性、扩展性和吞吐量
- 响应时间
- 网络容量(数据量、数据吞吐量、数据错误率)
- 服务器容量(cpu、内存、磁盘I/O、磁盘空间)
确保应用程序足够稳定,保证每次请求都是成功的
重点看看以下可能隐藏的问题
- 大数据量展现
- 执行效率不佳的sql语句
- 大量的网络数据交互
- 应用程序的未知错误
代码冻结
确保测试后代码不会变动,如有变动通知测试人员。
识别并确认关键业务的事务
您需需要找出那些在一个工作日当中一个普通的用户最经常执行的大量关键任务。这些事务将是您性能测试的所有构成部分。