性能测试——监控指标 & 性能测试模型 & 性能测试分类 & 性能测试的实施

1 性能测试的概念
(1)什么是系统的性能?
系统性能是一个很大的概念,对一个软件系统而言包括执行效率、资源占用、稳定性、安全性、兼容性、可扩展性、可靠性等等。
(2)什么是性能测试?
性能测试是通过自动化的测试工具,模拟多种正常、峰值以及负载条件对系统各项性能指标进行测试。

2 性能测试的监控指标
(1)并发数:在同一时间,进行同一操作的用户数;
(2)响应时间:也叫作请求相应时间,是对请求做出响应的时间;
(3)事务响应时间:事务是一组密切相关的操作集合,事务响应时间是对这一组操作集合响应的时间;
(4)每秒事务通过数TPS:指每秒系统能够处理的事务的数量;
(5)点击率:每点击一次相当于向WEB服务器发送一次HTTP请求,点击率越大,服务器的压力也就越大;
(6)吞吐量:单位时间内,系统处理用户请求的数量,直接体现软件的承载能力(吞吐量的单位没有固定的);
(7)思考时间:真实的模拟用户的操作,思考时间是指每个请求或者操作时间的间隔时间;
(8)资源利用率:不同系统资源的使用情况。

3 性能测试模型
(1)理发店模型(曲线拐点模型)
A. 随着并发用户数的增加,在轻压力区的相应时间变化不大,比较平缓,进入重压力区后呈现增长趋势,进入拐点区后倾斜率增大,响应时间急剧增加;
B. 随着并发用户数的增加,吞吐量也在不断增加,进入重压力区之后逐渐平缓,到达拐点区时说明系统已将到达处理的极限,急剧下降;
C. 随着并发用户数的增加,资源利用率也在不断增加,进入重压力区后逐渐平缓,至拐点区时已经达到饱和状态。
(具体介绍可参考:http://www.cnblogs.com/jackei/archive/2006/11/20/565527.html
性能测试——监控指标 & 性能测试模型 & 性能测试分类 & 性能测试的实施
(2)地铁模型
A. 随着地铁站内乘客数量的增多,地铁的资源得到充分利用;
B. 随着地铁站内乘客数量的增多,出现部分乘客等待的情况,等待时间较短;
C. 当乘客的行李过大导致进站阻塞,可以增加站口的宽度,缓解这种情况;
D. 当乘客越来越多时,现有的刷卡机已经无法满足乘客的需求,可以增加刷卡机的台数;
E. 当处于上班高峰期时,进站乘客越来越多,站台的情况已经完全无法满足乘客的需求,导致地铁站过分拥堵,乘客不断抱怨… …
(具体介绍可参考:http://www.cnblogs.com/puresoul/p/5458734.html

地铁模型说明:
A. 一旦发生性能问题,但从硬件出发无法从根本上解决性能问题;
B. 要进行性能调优时尽可能将多种方式中和起来一同解决。

4 性能测试的分类
(1)基准测试:基准测试是一个标尺,有基础的标准,能够通过对比发现系统的不同点和变化;
(2)性能测试:模拟在正常条件的情况下,系统的能力情况;
(3)负载测试:在被测系统上不断施加压力直到性能已经到达某种饱和的情况,可以通过负载测试找到系统的处理极限,为系统调优提供数据;
(4)压力测试:在被测系统已经饱和的情况下,继续施加压力,找到系统在高负载下的问题;
(5)并发测试:通过模拟用户的并发访问,找到多用户并发访问时是否存在什么性能问题;
(6)配置测试:通过对软硬件环境的调整,使软硬件资源达到最大化的利用;
(7)可靠性测试:对系统加载一定压力的情况下,让系统持续运行一段时间,测试系统在该种条件下能否正常运行;
(8)失效性恢复测试:并不是每个系统都支持失效恢复性测试,失效恢复性测试是针对有备份和负载均衡的系统设计的,该测试是验证在系统出现局部性故障时,用户能否正常使用系统,用户的使用情况会受到多大程度的影响;
(9)大数据测试:与压力测试、负载测试、可靠性测试、并发测试相结合的测试。

5 性能测试的实施
(1)性能测试的前期准备:系统基础功能验证、组建测试团队、测试工具需求确认
(2)引入工具:工具选择、工具应用技能的培训、确定工具应用过程
(3)编写性能测试方案:调研测试需求、测试策略和测试资源需求、性能测试计划
(4)脚本的设计与开发:测试环境设计、测试场景设计、测试用例设计、脚本和辅助工具的开发
(5)测试执行与管理:建立测试环境、部署测试脚本和测试场景、执行测试结果和记录结果
(6)性能分析与调优:根据测试结果进行分析,给出调优方案
(7)编写性能测试报告:测试目标、测试描述、测试结果和数据