作者:比熊--悉尼 | 来源:互联网 | 2023-07-24 10:50
性能测试概念:指测试系统在一定的负荷压力下,系统的响应时间、吞吐量、稳定性、系统可扩展性等性能指标,并结合应用框架和实现细节找出问题,最终确认问题得到解决的过程。性能测试目的:评估
性能测试概念:
指测试系统在一定的负荷压力下,系统的响应时间、吞吐量、稳定性、系统可扩展性等性能指标,并结合应用框架和实现细节找出问题,最终确认问题得到解决的过程。
性能测试目的:
- 评估系统能力:测试中得到的负荷和响应时间等数据可被用于验证计划模型的能力,并帮助做出决策。
- 识别体系中的弱点:受控的负荷可以被动增加并突破极限,从而修复体系的瓶颈或薄弱的地方。
- 系统调优:重复运行测试,验证调整系统的活动时候获得预期结果,进而改进性能。
- 验证稳定性:在一定负荷条件下执行测试一段时间,评估系统稳定性和可靠性是否满足需求。
性能测试关键指标:
- 响应时间:系统对请求做出相应所需的时间,是用户感知软件性能的主要指标。
- 并发数:同时访问系统的用户数。并发指从业务的角度模拟真实用户同时访问系统。
- 吞吐量:指单位时间内系统处理用户的请求数。
- TPS(Transaction Per second):指每秒系统能够处理事务或交易的数量,它是衡量系统处理能力的重要指标。
- 每秒点击数:每秒用户向Web服务器提交HTPP请求数,Web应用特有指标。
性能测试方法:
- 验收性能测试:通过模拟生产环境运行的业务压力量和使用场景组合,测试系统是否满足生产性能要求。是一种完全确定了系统运行环境和测试行为的测试方法。典型流程:确定用户场景 > 列出需关注的性能指标 > 测试执行 > 测试分析
- 负载测试:站在用户的角度观察软件在一定条件下,系统性能是否满足用户需求。该指标一般体现为响应时间、交易容量、并发容量、资源使用率等。
- 压力测试:指在超负荷的交易量、并发用户数等条件下系统的表现。压力测试的预期结果就是系统出现问题,要考察的是系统处理问题的方式。举个栗子:期望一个系统在面临压力时能够保持稳定,处理速度可以变慢,但不能崩溃。所以压力测试是为了识别系统的弱点和在极限负载条件下,程序将如何运行。
- 并发测试:验证系统的并发处理能力。一般是和服务器建立大量的并发连接,通过客户端的响应时间和服务器端的性能监控情况判断系统是否达到既定的并发能力指标。并发测试往往涉及服务器的并发容量以及多进程、多线程协调同步可能带来的问题,是要特别注意且必须要测试的。
- 基准测试:当软件系统新增一个模块时,需要做基准测试。操作:关闭模块后记录系统各项性能指标作为基准(Benchmark),然后与打开模块后的各项系统指标进行对比,以判断模块对系统性能的影响。
- 可靠性测试:测试系统在一定负载下长时间运行后是否会发生问题。有些系统问题是需要时间积累才能够到能度量的程度。举个栗子:内存泄漏问题就粗腰啊经过一段时间积累才能显现出来,在软件运行初期很难检测到,内存泄漏的原因是客户端和服务器连接通路不能及时有效的释放导致的。
- 配置测试:通过对被测系统软硬件环境的调整,了解各种不同环境对系统性能影响的程度,从而找到系统各项资源的最优分配原则。一般用于性能调优和规划能力。
- 可恢复测试:用来校验当系统局部发生故障,用户能否继续使用系统,或者用户将受到多大程度的影响,测试系统能否快速的从错误状态中恢复到正常状态。并非所有系统都需要进行失效性测试。
当接手一个软件项目后,在有限的资源条件下,选择去做哪种测试,应根据当前软件过程阶段和项目的本身特点来做选择。
性能测试应用领域:
- 能力验证:最常用的应用领域,通常描述“某系统能否在A条件下具备B能力”。特点:①要求在已确定的条件下运行 ②需要根据典型场景设计测试方案及用例。
- 规划能力:关心的是“应如何使系统具备满足需求的性能能力”。特点:①探索性测试 ②可被用于了解系统性能以及获得扩展性能的方法。
- 性能调优:对系统性能进行调优。一般调优步骤:①确定基准环境、基准负载和基准性能指标 ②调整系统运行环境和实现方法,执行测试 ③硬件环境调整 ④系统设置的调整、应用级别的调整 ⑤记录测试结果,进行分析
- 缺陷发现:主要目的是通过性能测试手段发现系统中存在的缺陷,并没有可参考的性能指标或需要达到的性能目标,因此不要采用并发测试方法,若需要关注压力及失效回复过程中的问题,则可以采用压力测试和失效恢复测试的方法。
- 性能基准比较:在不设定明确的性能目标的情况下,通过比较得到每次迭代中的性能表现 变化,根据这些变化决定迭代是否达到预期目标。
性能测试流程:
一、性能需求分析
性能需求分析需要得出的结论:
- 明确是否真的需要做性能测试
- 明确被测系统特点、基本业务、关键业务、用户行为
- 明确性能测试范围
- 明确性能测试指标及测试目标
- 明确性能测试策略
二、性能测试计划
该阶段用于生成指导整个测试执行的计划,主要完成以下活动:
- 明确性能测试团队成员及其职责
- 测试经理、测试设计、测试开发、测试执行、测试分析、支持
- 明确测试时间
- 明确测试环境及测试工具
- 测试场景设计
三、测试设计与开发
该阶段占据了很大的时间比重,主要完成以下工作:
- 测试环境准备
- 测试用例设计
- 测试脚本开发与调试
- 测试数据准备
四、性能测试执行阶段
该阶段相对比较简单,主要工作是执行测试并记录结果,一般只需要使用菜单或按钮即可完成,记录测试的工作也可以依靠工 具完成。
五、性能测试报告
性能测试报告是性能测试的里程碑,通过报告能展示出性能测试的最终成果,对测试结果进行分析,根据测试的目的给出测试 结论,并展示系统性能是否符合需求,是否有性能隐患。性能测试报告中需要阐明:
- 性能测试目标、性能测试环境
- 性能测试数据构造规则、性能测试策略
- 性能测试结果、性能测试调优说明
- 性能测试过程中遇到的问题和解决办法等