-
第二章 性能测试初体验
性能测试工作实质上是利用工具去模拟大量用户操作来验证系统能够承受的负载情况找出潜在的性能问题,分析并解决;找出系统性能变化趋势,为后续的扩展提供参考
-
2.1 性能测试的价值
- 软件测试的分类:
-
2. 2 性能测试流程
- 性能测试常规流程
(1)业务学习:通过查看文档,手工操作系统来了解系统功能;
(2)需求分析:分析系统非功能需求,圈定性能测试的范围,了解系统性能指标;
(3)工作评估:工作量分解,评估工作量,计划资源投入(即需要多少人力,多少工作日来完成性能测试工作);
(4)设计模型:圈定性能测试范围后,把业务模型映射成测试模型;
(5)计划编写:计划测试工作,在文档中明确列出测试范围、人力投入、持续时间、工作内容、风险评估、风险应对策略等;
(6)脚本开发:录制或者编写性能测试脚本(目前,很多被测系统都是无法录制脚本的,我们需要手工开发脚本),开发测试挡板程序、开发测试程序等;
(7)测试环境准备:性能测试环境准备包括服务器与负载机两部分,服务器是被测系统的运行平台,负载机是我们用来产生负载的机器,用来安装负载工具,运行测试脚本;
(8)测试数据准备:根据数据模型来准备被测系统的主数据和业务数据。主数据是保证业务能够运行畅通的基础,比如菜单、用户等数据;业务数据是运行业务产生的数据,比如订单;数据量会引起性能的变化,在测试的时候往往要准备一些存量/历史业务数据;
(9)测试执行:测试执行是性能测试成败的关键,同样的脚本不同执行人员得出的结果可能差异较大。差异主要体现在场景设计与测试执行上;
(10)缺陷管理:对性能测试过程中发现的缺陷进行管理;
(11)性能分析:对性能测试过程中暴露出来的问题进行分析,找出原因;
(12)性能调优:性能测试工程师与开发人员一起来解决性能问题;
(13)测试报告:测试工作的重要交付件,对测试结果进行报告;
(14)评审:对性能报告中的内容进行评审,确认问题、评估线上风险。
-
2.3 性能测试成功与失败要素
- 性能测试上手难度较高,是一门融合测试、开发、运维、需求调研、架构、协调管理等综合技能的学科;
- 性能测试有几大难点:需求分析、场景设计、性能诊断调优、环境搭建和模拟;
- 性能测试的重点关注点:
(1)评估系统,需求分析;
(2)场景设计、用例设计;
(3)测试执行,是否通过;
(4)性能诊断优化;
-
不同角色看性能
- 系统与性能的结构图
从不同人群的角度,包括产品、研发、测试来看,每个人对测试的理解都不相同!