性能测试知识科普(二)

简介: 在聊测试策略之前,很有必要聊聊性能测试的目的,或者性能测试的本质是要做什么,解决什么问题。只有想明白这点,后面的需求分析、工具选型、制定测试策略才能更好的开展。

上一篇文章聊到了性能测试最基本的三个术语:并发、TPS、响应时间,并且以高速收费站的故事为例,详细的分析了这三个术语在实际的应用实践中该如何理解,以及三者之间的关系。


这篇文章是性能测试基础知识科普的第二篇,我想聊聊在实际工作中,性能测试最常见的一些测试策略。


性能测试的目的是什么


在聊测试策略之前,很有必要聊聊性能测试的目的,或者性能测试的本质是要做什么,解决什么问题。只有想明白这点,后面的需求分析、工具选型、制定测试策略才能更好的开展。


在实际的软件研发测试交付过程中,对测试同学来说,除了要验证功能的正确性之外,系统的性能表现也是很重要的一项工作内容。简单理解就是用户在使用系统提供的服务时,除了功能不出错,还要尽可能支持更多的人用系统提供的服务。功能的正确性是基本盘,更好的性能具有更大的附加值。


软件系统是运行在服务器上面的,服务器的底层是硬件资源和网络,从另一个角度来看摩尔定律的话,就是硬件的配置越高越好,原则上能提供更好的性能。当然,软件的性能还与其最初的设计和构建有很大的关系。因此,性能测试的本质是什么?


  1. 找到软件运行环境中底层硬件的资源瓶颈;
  2. 找到软件设计和构建过程中出现的影响性能的点;


基于上述两点,再看下面这张图:


640.png


上图列举了常见的影响软件性能的一些因素和例子,对于性能测试来说,就是针对上述的这些因素,去设计对应的测试策略,验证是否存在相关的影响软件性能的因素。


新手小白需要的是什么


很多网上的文章或者技术专栏抑或技术书籍,告诉了我们很多的测试策略名词,比如并发测试/负载测试/极限测试/配置测试/容量测试/浪涌测试/高可用测试/容错恢复测试。这些理论知识容易让小白云里雾里,不知道什么情况该用什么策略。


当然,这些理论都没问题,但理论和实践之间存在一个巨大的鸿沟,那就是如何让理论成为自己的理论,这需要大量的实践思考和总结。我曾经也写过这种理论性很强的文章,现在回头看确实有点贻笑大方。


新手小白最需要的是什么?我一直思考这个问题。现在回头看,他们最需要的是能以他们可以理解的方式一步步走入实践的方法,或者说理论切入实践的路径


工作中常用的测试策略


还是以实际工作的场景来谈常用的测试策略,其中最关键的就是2点:如何设置脚本并发和测试数据下面是一些常见的工作案例,我会先介绍案例,然后举例说明测试策略。


案例名称

脚本并发策略/测试数据策略

服务配置/并发推荐数值

新服务上线

梯度递增压力/参数化

4C8G/20-100

性能优化验证

梯度递增压力/参数化

4C8G/10-40

负载均衡验证

梯度递增压力/参数化

4C8G/10-60

参数配置调整验证

恒定并发压力/参数化

4C8G/固定数值

业务/技术逻辑调整验证

恒定并发压力/参数化

4C8G/固定数值


一些经验之谈:


  1. 绝大多数场景,第一次压测都推荐梯度递增方式,这样便于找到性能拐点;
  2. 固定并发压力只适用于其他条件不变,只有某一个影响因素变更的情况下使用;
  3. 一般都推荐先梯度,找到性能拐点定位问题后,再通过固定并发方式去验证优化是否生效;
  4. 单独的性能测试环境很重要,如果环境无法独立,建议听领导的要求压测一波统计数据出个报告就行;
  5. 测试数据记得一定要参数化,一定不要用同一个或同一批数据去反复压测(功能测试都更新数据更何况性能);
  6. 以上都是经验之谈,新手小白可以照抄,但遇到问题建议不断调整去试错和验证,不要照着剧本念戏;


以上就是关于性能测试常见测试策略的内容,下篇文章,聊聊压测工具的选型和使用。

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
存储 SQL 数据采集
性能测试知识科普(七):监控能给你带来什么
当然这些指标是我们日常工作中经常遇到和会关注的,但实际上在性能测试过程中,要根据不同的业务场景、技术架构以及问题表现来关注分析不同的指标。而不是只关注自己看到的指标,填充到表格里提交一份所谓的压测报告就完事的。
性能测试知识科普(七):监控能给你带来什么
|
缓存 测试技术 数据处理
性能测试知识科普(六):三大模型
在性能测试工作中,业务模型、流量模型和数据模型是至关重要且必须在项目中构建的,否则很可能导致测试的场景和实际差距很大,测试结果也无法为性能分析和优化提供足够有说服力的支撑。为了便于大家理解三大模型
性能测试知识科普(六):三大模型
|
运维 监控 中间件
性能测试知识科普(五):能力分层
前面的文章分享了性能测试中的核心术语和指标、常用测试策略、压测工具选型以及性能需求分析的内容。写这篇文章的初衷是昨天有同学咨询我,希望通过付费方式让我教她性能测试,可以达到独立owner项目的程度。
性能测试知识科普(五):能力分层
|
缓存 负载均衡 监控
性能测试知识科普(四):分析需求
为了避免某个可用区由于网络硬盘等原因损坏导致服务不可用,跨可用区的服务部署是一种常见的容灾手段。
性能测试知识科普(四):分析需求
|
数据可视化 测试技术
性能测试知识科普(三)
还有在一些技术交流群,很多同学会说自己遇到的问题,如不知道怎么用jmeter参数化,locust的压测结果图表怎么看,怎么写gatling的压测脚本等等。并不是说觉得用工具low,而是遇到问题,我个人觉得首先应该分析问题,找到解决方法和策略,然后寻找合适的工具来辅助自己快速解决问题。
|
缓存 监控 测试技术
性能测试知识科普(一)
换成高速收费站的场景,就是车到了收费窗口,我刷卡扫码支付,然后抬杆放行直到车出去下一个车进来。这个过程的耗时就是所谓的响应时间。至于我们常见的平均响应时间和99响应时间,只是不同维度的统计方法而已。
|
7月前
|
关系型数据库 MySQL Java
【JMeter】(3)---MySQL压测
【JMeter】(3)---MySQL压测
174 0
|
7月前
|
JSON Java 测试技术
【JMeter】(2)---HTTP压测
【JMeter】(2)---HTTP压测
97 0
|
5月前
|
消息中间件 弹性计算 Java
使用阿里云性能测试工具 JMeter 场景压测 RocketMQ 最佳实践
使用阿里云性能测试工具 JMeter 场景压测 RocketMQ 最佳实践
|
7月前
|
XML 前端开发 测试技术
使用 jMeter 对 SAP Spartacus 进行并发性能测试
使用 jMeter 对 SAP Spartacus 进行并发性能测试
73 0