2023年7月11日发(作者:)
性能测试方法
性能测试包括:验收性能测试、负载测试、压力测试、配置测试、并发测试、可靠性测试、失败恢复测试。
1、验收性能测试
Acceptance Performance Testing
通过模拟生产运行的业务压力量和使用场景组合,测试系统能否满足生产性能要求
主要用来验证系统是否能够达到宣称的能力
是一种完全确定了系统运行环境和测试行为的测试方法
验收性能测试有一个很明确的目标、场景、核心业务,才开展验收性能测试,看是否达到预期的目标
2、验收性能测试 - 内容
确定用户场景
给出需要关注的性能指标
测试执行
测试分析
示例:要求系统在100个并发用户的条件下进行A业务操作,响应时间不超过5s。
3、负载测试
负载测试主要是考察软件系统在既定负载下的性能表现。对负载测试有如下理解:
1、负载测试是站在用户的角度去观察在一定条件下软件系统的性能表现
2、负载测试的预期结果使用户的性能需求得到满足。此指标一般体现为响应时间、交易容量、并发容量、资源使用率等 4、压力测试
为了考察系统在极端条件下的表现,极端条件可以是超负荷的交易量和并发用户数。注意,这个极端条件并不一定是用户的性能需求,可能要远远高于用户的性能需求。
压力测试是到系统崩溃的时候才算成功。
压力测试和负载测试的区别:
压力测试和负载测试不同的是,压力测试的预期结果是系统出现问题,而我们要考察的是系统处理问题的方式。比如说,我们期待一个系统在面临压力的情况下能够保持稳定,处理速度可以变慢,但不能系统崩溃。
因此,压力测试是能让我们识别系统的弱点和在极限负载下程序将如何运行。
负载测试关心的是用户规则和需求,压力测试关心的是软件系统本身。
我们在做软件压力测试时,往往要增加比负载测试更多的并发用户和交易,这是为什么?
5、并发测试
验证系统的并发处理能力。
一般是和服务器端建立大量的并发连接,通过客户端的响应时间和服务器端的性能监控情况来判断系统是否达到了既定的并发能力指标。
并发测试和负载测试
负载测试往往就会使用并发来创建负载,之所以把并发测试单独提出来,是因为并发测试往往涉及服务器的并发容量,一集多进程/多线程协调同步可能带来的问题。这是要特别注意的,必须测试的。
6、基准测试
当软件系统中增加一个新的模块的时候,需要做基准测试,以判断新模块对整个软件系统的性能影响。
按照基准写实的方法,需要打开/关闭新模块至少各做一次测试。
关闭模块之前的系统各个性能指标标记下来作为基准(Benchmark),然后与打开模块状态下的系统性能指标作比较,以判断模块对系统性能的影响。
7、稳定性测试
测试系统在一定负载下运行长时间后是否会发生问题。
软件系统的有些问题是不能一下子就暴露出来的,或者说需要时间积累才能达到能够度量的程度。
这种问题一般是程序占用资源却不能及时释放而引起的。比如,内存泄漏问题就是经过一段时间积累才会慢慢变得显著,在运行初期却很难检测出来;还有客户端和服务器在孵在运行一段时间后,建立了大量的连接通路,却不能有效地复用或及时释放。
8、配置测试
Configuration Testing
通过对被测系统软硬件环境的调整,了解各种不同环境对系统性能影响的程度,杏儿找到系统各项资源的最优分配原则。
一般用于性能调优和规划能力。
9、可靠性测试 = 稳定性测试
Reliability Testing
通过给系统加载一定的业务压力,让应用持续运行一段时间,测试系统在这种条件下是否稳定运行。
主要验证系统是否支持长期稳定运行。
测试过程中需要关注系统的运行状态
10、失效恢复性测试
Failover Testing
针对有冗余备份和负载均衡的系统设计的。用来验证如果系统局部发生故障,用户是否能够继续使用系统,以及如果这种情况发生,用户将收到多大程度的影响。
测试系统能否快速地从错误状态中回复到正常状态。
冗余备份:比如有三台机器,是通过交换器来进行连接的,同时都用一个平台,第一个在运行的时候,其他两个都会进行备份,第一个不通的时候,可以用第二个,第二个机器里边也存有第一台机器的访问数据
负载均衡:比如有三台机器,还有一个第4台机器(负载均衡器),也是通过交换器来连接,
请求是通过负载均衡器然后发到第一台电脑,如果第一台不通,再发给第二台、第三台,当第一台的的机器好了还是发给第三台,这时候第一台的状态就是第三台机器的状态,第三台就变成第一台机器的状态,第二台还是自己的状态。
Mysql的cluster就是集群,集群是查询的时候不会同步,要是更新或者插入就立马会同步。
主备之间的关系叫做HA,这种构成了一个方案叫高可靠性方案
11、失效恢复性测试 - 特定
主要目的是验证在局部故障情况下,系统能否继续使用。一般的关键业务系统都会热备份或负载均衡的方式实现。
当问题发生时能支持多少用户访问。
不是所有系统都需要进行失效性测试。
测试方法总结:每种测试有其存在的空间和目的,当接收一个软件项目后,在有限的资源条件下,选择去做哪一种测试,这应该根据当前软件过程阶段和项目的本身特点来做选择。
一定要做的测试方法:可靠性测试、稳定性测试、负载测试、压力测试
不一定要做的测试方法:失效恢复性测试、配置性测试、基准性测试、并发测试。
发布者:admin,转转请注明出处:http://www.yc00.com/web/1689026533a197069.html
评论列表(0条)