一、测试前期准备
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、分析测试结果并编写性能测试报告
性能测试结果分析原则:
1) 把实时与推测分开,总是用实际用证据来证明你的推测。
2)在没有足够证据前,不对程序进行优化。
3)优先验证简单的假设。(推测瓶颈)
4)日志文件中没有错误不代表真的没有错误。
5)从系统到应用、从外到内进行层层剥离,缩小范围。
6)范围缩小后,再分割成多个单元,对每个单元进行轮番压力测试,来证明或者否定是哪个单元引起的性能问题。
瓶颈分析:
服务硬件瓶颈->网络瓶颈(局域网可不考虑)->服务操作系统瓶颈(参数配置)->中间件瓶颈(参数配置、数据库,web服务器等)->应用瓶颈(SQL语句、数据库设计、业务逻辑、算法等)
2、性能测试总结
对本次性能测试做一个总结。把可以固化的文档和方法归类整理,把需要改进的地方列出在后续测试中实施。
实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。
如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步
在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。
我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,
测试开发视频教程、学习笔记领取传送门!!!