浅析性能测试策略及适用场景

面对日益复杂的业务场景和不同的系统架构,前期的需求分析和准备工作,需要耗费很多的时间。而不同的测试策略,也对我们的测试结果是否符合预期目标至关重要。

这篇博客,聊聊我个人对常见的性能测试策略的理解,以及它们的适用场景。。。

一、常见的测试策略

性能测试实施过程中,针对不同的业务场景,我们经过分析和场景建模后,会选择不同的测试策略。下面的十种测试策略,覆盖了绝大多数的场景。

1、并发测试

模拟客户端请求,在单位时间内(S)同时发起一定量的请求,验证系统是否具有并发性的问题。

PS:不要无脑高并发!!!

2、负载测试

不断增加请求压力,直到服务器某个资源项达到饱和(比如CPU使用率达到90%+)或某个指标达到安全临界值(比如运维的监控告警阈值or拐点);

负载测试(也叫阶梯式压测)一般主要用来寻找性能的拐点,验证系统在既有测试环境不同的请求压力下能否正常运行。示例如下:

3、容量测试

采用负载测试策略,验证在现有测试环境下被测系统的最大性能表现(可接受的最大性能表现,不一定是最优性能表现)。

4、极限测试

在既有测试环境下,不考虑资源占用率的极限情况(CPU使用率达到95%以上或IO异常繁忙或Load值较高),在系统不宕机的情况下的最大处理能力。

PS:由于被测系统的业务场景各不相同,这种策略,采用率相对较少。

5、配置测试

不断调整系统各方面的配置(软硬件、参数配置等),验证在性能达到最优时(最优的性能一定是权衡各方面因素找到的平衡点)的最佳配置。

6、浪涌测试

验证系统在某段时间内并发突增或请求量波动较大的情况下,系统能否正常稳定的提供服务。

PS:这种测试策略使用的也相对较少,主要针对不确定性的短期的峰值流量涌入场景(比如某微博的离婚、恋爱、分手话题)。

7、稳定性测试

以恒定的并发数(根据负载测试的结果,CPU使用率在70%时对应的并发数),验证系统在混合场景下的性能表现。

8、批处理测试

验证待测系统在既有环境下,系统的批处理(一般都是一个crontab或者触发式的job)业务能力能否满足生产的业务需求指标。

9、高可用测试

在集群多节点或分布式的情况下,破坏其中一个或多个集群节点,验证系统能否及时恢复服务能力。

10、容错恢复测试

验证系统能否在出现故障的情况下仍能保持正常提供服务的能力或出现故障后的自我恢复能力。比如下面这张图:

a1面积越大,说明系统的处理能力越强;a2面积越大,说明系统稳定性越好;a3面积越大,说明系统的容错能力越好(啧啧,图有点丑。。。)

之前有手动画了好几个性能模型图,找不到了,尴尬。。。

二、适用场景

以上十种测试策略,根据适用的业务&测试场景、采用该策略的目的以及场景出现频次来划分,仅供参考。

三、经验之谈

1、中小型团队:常规的测试策略选型:并发、负载、容量、配置、批处理、稳定性、高可用策略,可以覆盖绝大部分需求。

2、电商类业务:高并发、高可用、稳定性,是重中之重。

3、业务场景:很多时候一个性能需求包含好几个业务场景,但并发、负载、容量、稳定性,建议都采用。

4、需求场景:需求分析和场景建模做不好,测试结果往往偏差很大。

5、压测环境:环境的调研选型,建议和生产环境等配置最小化部署,这是成本和结果精准度的平衡。

6、测试数据:无论是数据量还是数据的有效性以及热点数据的覆盖率,都决定了测试结果的可参考价值。

7、技术建设:基础架构(包括环境、服务部署、详尽的监控体系、问题处理流程)的完备,才能让性能测试左移。

8、文档建设:一定要重视文档建设和数据留存,这样可以避免很多不必要的麻烦和重复性工作。

9、平台化:平台的作用是对流程的规范以及多人协同工作的效率整合,不要过度追求平台化(但一定要有技术规划和方案准备)。

10、不要无脑高并发!!!

原文地址:https://www.cnblogs.com/imyalost/p/11204522.html

时间: 2024-11-10 07:12:54

浅析性能测试策略及适用场景的相关文章

loadrunner场景对性能测试策略的映射

性能测试策略 LoadRunner性能测试场景 压力测试 面向目标测试场景+忽略think time 负载测试 手工测试场景+同步点+think time+虚拟IP+带宽模拟…… 并发测试 同步点+多虚拟用户 基准测试 脚本和场景复用

性能测试策略之----基准测试

基准测试:也是单用户测试,测试环境确定以后,对业务模型中的重要业务做单独的测试,获取单用户运行时的各项性能指标,为多用户并发测试和综合场景测试等性能分析提供参考依据 单用户测试还是需要控制台,运行场景,收集测试数据,通过Analysis进行结果分析,它的测试数据为以后的测试做准备. 检查点:存在的原因:LR报告的验证仅在网络层面上,LR模拟客户端向服务器端发送请求数据包,之后服务器给客户端返回应答包,但是LR不会验证服务器应答包中数据的正确性所以出现了检查点 web_reg_find("text

性能测试四十五:性能测试策略

1.项目具体需求,及业务场景:关注真实用户会是怎样的一个业务场景,确定用户的用户习惯. 2.指标:响应时间在多少以内,并发数多少,tps多少,总tps多少,稳定性交易总量多少,事务成功率,交易波动范围,稳定运行时长,资源利用率,测哪些交易,哪些接口,测试哪些场景. 3.环境:生产环境服务器数量,测试环境服务器数量,按照资源配比得出测试指标. 4.协议:系统用什么协议进行通讯. 5.压力机数量:如果并发用户数太多,需要把压力发到不同的压力机,不然可能会存在压力机瓶颈问题,导致tps和响应时间抖动.

MySql中测试GUID 与Int自增主键 性能对比 总结适用场景【转】

一. 创建以下三个数据表: int 主键自增表, guid主键表, 关联以上两个表的关系表tbl_test_relation CREATE TABLE `tbl_test_int` (    `id` INT(11) NOT NULL AUTO_INCREMENT,    `name` VARCHAR(50) NULL DEFAULT NULL,    `comment` VARCHAR(100) NULL DEFAULT NULL,    PRIMARY KEY (`id`))COMMENT=

性能测试之LoardRunner 测试场景监控关注的几点

1.系统业务处理能力,即通常我们在进行性能测试的时候,在特定的硬件和软件环境下考察的业务处理能力,即“事物”,需要关注当前.平时.峰值以及长远未来业务发展情况,考虑不同业务的处理数量,从而设定相应的业务处理性能指标.系统业务处理能力性能指标包括:TPS(Transaction per Second每秒事物数).HPS(Hits Per Second每秒点击数).Throughput(吞吐量)等 2.系统资源使用情况,即服务器(应用服务器.数据库服务器).CPU利用率.内存使用情况.磁盘I/O情况

【性能诊断】二、单功能场景的性能分析(fiddler、SQL Profiler)

Fiddler fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据. 使用Fiddler无论对开发还是测试来说,在诊断分析问题时,都有很大的帮助. 下载地址:http://www.telerik.com/download/fiddler 工作原理和使用说明可参考:http://www.cnblogs.com/TankXiao/archive/2012/02/06/2337728.html 当然我们如果

性能测试总结(一)测试流程

转载: 本文主要介绍下性能测试的基本流程,性能测试从实际执行层面来看,测试的过程一般分为这么几个阶段,如下图: 下面分别介绍下每个阶段具体需要做什么: 一.性能需求分析: 性能需求分析是整个性能测试工作开展的基础,如果连性能的需求都没弄清楚,后面的性能测试执行其实是没有任何意义的,而且性能需求分析做的好不好直接影响到性能测试的结果. 一些性能测试人员常犯的错误就是测试一开始就直接用工具对系统进行加压,没有弄清楚性能测试的目的,稀里糊涂做完了以后也不知道结果是否满足性能需求.市面上的书籍也大都是直

优化Angular应用的性能

优化Angular应用的性能 MVVM框架的性能,其实就取决于几个因素: 监控的个数 数据变更检测与绑定的方式 索引的性能 数据的大小 数据的结构 我们要优化Angular项目的性能,也需要从这几个方面入手. 1. 减少监控值的个数 监控值的个数怎么减少呢? 考虑极端情况,在不引入Angular的时候,监控的个数是为0的,每当我们有需要绑定的数据项,就产生了监控值. 我们注意到,Angular里面使用了一种HTML模板语法来做绑定,开发业务项目非常方便,但考虑一下,这种所谓的“模板”,其实与我们

阿里的开源思想:与世界讨论中国的互联网技术与场景

自从2015年11月阿里巴巴集团宣布正式加入Apache基金会以来,阿里技术已经向Apache捐赠了三个开源项目,分别是JStorm.RocketMQ和Weex.其中Weex于2016年12月15日正式捐赠给Apache基金会.而RocektMQ有望成为首个来自中国的Apache互联网中间件顶级子项目,Weex则有望成为来自中国的移动开发顶级子项目. 截止到2016年9月,阿里已经开源115个项目,加入了FSF基金会.Apache基金会.Linux 基金会和Xen顾问团队.阿里云还是MySQL开