一、测试前期准备
1、确定用户、业务、系统需求(目标)
1)确定客户的需求和期望
在需求分析和文档的支持下,需要对软件系统上的用户业务使用情况进行分析,提出我们所关注的性能测试需求,并告知业务人员。让业务人员来判断我们的性能需求是否满足客户的真实需求。
2)确定实际业务需求
主要确定用户的业务请求分布等:主要业务请求、平均日交易量、年交易量、峰值交易量等等。
3)确定系统需求
这里的主要工作是分析系统的性能需求、确定合理的性能目标。可以从下面几个方面进行考虑:
- 普通数据容量负载时,在不同的用户数时的并发业务响应时间、随机业务响应时间;
- 大数据容量负载时,在不同的用户数时的并发业务响应时间、随机业务响应时间;
- 未来若干年数据容量负载时,在不同的用户数时的并发业务响应时间、随机业务响应时间。
2、系统类别
分清系统类别是我们掌握什么样的技术的前提,掌握相应技术做性能测试才可能成功。例如:系统类别是B/S结构,需要掌握HTTP协议,java,C#,html等技术。或者是C/S接口,可能要了解操作系统,winsock,com等。
3、系统构成(系统配置基线清单)
硬件设置,操作系统设置是性能测试的制约条件,一般性能测试都是利用测试工具模仿大量的实际用户操作,系统在超负荷情形下运作。不同的系统构成性能测试就会得到不同的结果。
4、网络拓扑图
便于分析系统的薄弱环节,针对性设置测试方案。以及为后期对性能瓶颈分析做准备。
5、实际网络带宽
便于测试时对带宽做模拟,较为真实的反应测试带宽情况。 10000mbs / 500 = 200kps
6、测试服务器及测试机配置清单
了解性能测试硬件资源(包括所测服务器,测试机等)。根据实际情况添加设备。
7、系统功能流程图
便于测试人员分析系统哪些模块易出现瓶颈,从而针对性做性能测试。
8、确认测试时间点
二、测试实施
1、制定测试计划
主要任务是规划性能测试所需的测试环境、测试软件、相关技术与测试工具的选择,测试的人员组织,测试目标、测试日程等
2、编写测试方案(性能测试方案大体与测试计划类似,可根据实际情况决定输出工件)
3、设计测试用例
设计测试用例是在了解软件业务流程的基础上。设计测试用例的原则是受最小的影响提供最多的测试信息,设计测试用例的目标是一次尽可能的包含多个测试要素。这些测试用例必须是测试工具可以实现的,不同的测试场景将测试不同的功能。因为性能测试不同于功能测试的测试用例,尽可能把性能测试用例设计的复杂,才有可能发现软件的性能瓶颈。因此对于设计用例至少要考虑到以下3个问题:
- 业务复杂,功能众多,如何一次尽可能地包含多个测试要素?(场景的创建)
- 脚本如何开发?
- 场景数据出来后,如何分析?
4、录制测试脚本
5、模拟测试场景
6、运行测试
通过性能测试工具运行测试用例。同一环境下做的性能测试得到的测试结果是不准确的,所以在运行这些测试用例的时候,需要用不同的测试环境,不同的机器配置上运行。在执行测试用例时,应掌握以下原则:
- 测试前,要确认系统的关键参数已经基本配置正确
- 测试前,要确保测试脚本的业务功能运行正确
- 测试前,清空所有应用日志,调高错误日志的输出级别(Error级),必要时再每次测试前重启应用服务和数据库应用服务
- 调整系统参数时,一次只调整一个,不要同时调整多个,并记录调整前后的系统变化
- 优先测试基线案例(即正常流程负载测试)
三、测试收尾
1、分析测试结果并编写性能测试报告
性能测试结果分析原则: