性能测试流程
性能需求分析
测试人员需要与需求人员(客户)、领导及项目相关人员进行沟通,同时收集各种项目资料,对系统进行分析,确认测试的意图。另外,还要需要客户对性能的态度。重点关注性能指标。
注意事项:
有时测试人员面对的是一般客户提出来的性能要求,对于一般客户来说,他们对于性能测试各项要求并不了解,他们可能希望被测系统越快越好,容量越大越好,此时我们需要对系统的性能、测试技术实现方式做好评估后,需要我们介绍性能指标给客户,明确每个指标的终值,以及告知大概如何设计场景得到这些数据。
需求文档案例
某系统需求中性能部分的说明如下:
要掌握哪些性能测试需求
系统响应时间要求
每秒完成的业务量的要求
系统资源使用情况要求
用户并发量以及使用场景设计要求
性能测试计划
测试环境的准备,软硬件配置,网络状况,测试数据的准备
明确测试策略:设计符合需求的测试场景,需要对系统那些业务模块进行测试
明确人员配备:除测试人员,还包括开发,数据库,运维等人员的参与协作,性能测试的时间安排。
软件的运行环境:包括软件、硬件、网络环境
测试资源:人力、电脑、工具、数据等
交付物
测试进度计划
性能测试目标要求:性能指标要求
测试策略:性能测试的类型
风险评估:测试启动、结束、暂停、再启动、退出准则
注意事项:
服务器和客户端一定要在同一个局域网内,否则网络因素会成为性能测试的瓶颈。
在性能测试中要增加一些必要的检查点(断言),否则都不知道是否执行操作成功。但是也不要加太多检查点,否则会影响性能指标
测试程序中要加一些等待时间,使得测试和真是情况一致。但是统计响应时间时要过滤这些时间。
尽量统计出每个页面、每个动作的响应时间以及响应时间的细分(域名解析、服务器时间、网络传输时间、客户端时间等),以便更好的分析测试结果
运行性能测试时关闭日志功能,调试脚本时打开日志功能
性能测试的数据准备,尽量保证数据库里的数据和真实生产环境里的数据同步或略多于真实环境数据,如果数据会不断累加,要考虑软件整个生命周期内可能最大数据量
误区
误区1:应用程序必须在功能测试通过后才能做性能测试
说明:整体性能需要,但是小模块接口性能测试也应该尽早展开
误区2:性能测试要像功能测试一样,覆盖到所有功能
说明:不是所有功能,根据二八原则有选择的制定性能测试方案
误区3:系统吞吐率虽则并发增加而增加
说明:并不是线性增长,有峰值和平稳期
误区4:我们一定要想方设法达到客户给出的性能指标要求
说明:有些需要和客户沟通增加硬件配置等解决性能瓶颈问题
误区5:压力测试、负载测试、容量测试等要一一分开执行
说明:一个整体系统性能测试场景里,应该包括各种类型对的测试
误区6:性能测试就是工具的使用
说明:工具只是辅助作用,测试方案、场景的分析、问题的定位才是关键