news 2026/1/10 15:55:43

吐血整理,性能测试的左移右移+性能基线实践,详细分析...

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
吐血整理,性能测试的左移右移+性能基线实践,详细分析...

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)

前言

1、传统性能测试

在传统的性能测试中,理论上都要求测试参与需求评审,评估是否存在可能的性能瓶颈场景。其次在技术方案设计阶段,和开发一起过方案,讨论方案的可测性和是否会导致性能问题。

然后在研发阶段准备对应的测试环境,写压测方案,准备测试用例和数据,直到系统集成测试阶段,才开始介入真正的压测执行工作。

但在实际的工作场景中,很多性能测试同学遇到的往往是一句话需求,比如:这几个接口压测一下,出一份报告;或者线上出了性能问题,才火急火燎的找测试同学,对系统进行压测,再排查定位问题。这种情况其实反应了下列几点问题:

对性能测试不重视,属于可有可无的救火队员或者背锅侠;
对质量保障不重视,或者说对于测试人员的工作内容不重视;
整个的软件研发交付流程和管理层面问了问题,重实现而轻质量;

当然,也可能存在其他方面的因素,比如测试人员的角色定位,工作产出等方面。长此以往,性能测试的角色越发尴尬,没有足够时间去了解需求场景,性能测试做的不深,工作没产出没亮点。

这也是市场上专职性能测试岗位越来越少,并且面试时要求功能测试同学掌握性能测试的原因。

其实在成熟的性能测试体系中,性能测试也有左移右移的方法和实践,甚至这些方法在日常的功能测试过程中大家也经常做,只不过被大家忽视了而已。

2、性能测试的左移实践

在我们所熟知的测试流程中,大家肯定都知道冒烟测试。即由测试提供核心功能和场景的测试用例,开发完成自测后再正式提测,这样做的好处是提前发现一些明显的存在阻塞的问题,便于后续测试活动的顺利开展。

在性能测试中,也可以做类似开发自测的事情,这种左移的手段,总结下来主要有四点:

性能冒烟:可以理解为冒烟测试的通过率,即开发完成接口开发和功能实现后,先在本地执行测试提供的压测脚本,确认接口本身不存在明显的性能问题,再系统的提测,进行系统整体的性能测试。

性能基线:性能基线可以看作测试门禁,即只有性能测试结果通过性能基线标准后,才能认为该版本的系统性能满足上线要求。

建立初始的基线后,后续的每次测试得到的数据都需要进行记录(存在差值),直到这些数据在统计区间内(一个大版本或一个季度)形成新的基线。关于性能基线,可以参考我前面的文章:《建立性能基线的实践方法》。

流程固化:这个其实很好理解,就是将上述的性能冒烟和性能基线动作,融入到研发测试交付的整个流程中,通过流程引导研发同学来配合做这件事。

平台赋能:如果只是提供性能测试脚本,那开发可能还要自己造数据看监控,费时费力,那性能冒烟会很容易胎死腹中。

比较好的办法是由测试同学负责提供造数据的工具,同时将测试环境的日常运维工作接过来,并通过统一的平台对业务场景、测试脚本、测试数据和环境以及执行权限进行管控。开发同学在需要时只需要点一下执行,平台自动记录结果,判断是否通过,这也是流程固化的延伸实现。

3、性能测试的右移实践

很多同学在实践性能测试时,大多只关注测试环境的测试结果,结果领导问一句:本次上线要准备多少台服务器,要什么配置,就不知道了。

要回答这个问题,就涉及到了容量规划。
什么是容量规划?

你的测试结果要对线上服务的扩缩容提供直观有效的参考数据,便于更精准的管理线上服务的成本。在降本增效大行其道的当下,这也是性能测试值得深入实践和体现价值的一点。

要落地容量规划,就需要在测试时考虑被测服务的硬件配置、数据量级、业务模型、流量模型是否和线上保持一致,或者彼此之间有可换算的公式,否则容量规划很难落地,也无法对服务上线的配置产生直接有效的结论。

性能测试的右移,可以从以下几点来开展:

完善监控:对于线上服务来说,无法保证永远不出问题,但可以尽量做到少出问题,或者出了问题可以更快的发现修复。

而完善的监控体系,最大的作用就是让发现问题和定位排查的效率更高。测试在其中可以做的事情其实不少,比如基于P0场景和业务的监控,比如线上的性能巡检。

应急机制:线上出现问题,除了完善的监控来快速发现,还需要技术同学快速响应,及时的处理问题,这就需要一套线上的应急响应机制,而测试同学很适合来推动这件事。

相比于运维,测试更熟悉业务,且测试对于每版本迭代出现的bug以及迭代交付的范围更清楚,还可以在后续组织复盘,跟进改进落地的进度和效果。

数据沉淀:上面讲到了落地容量规划的几个前置条件,数据沉淀中最重要的就是三个模型:数据量级、业务模型、流量模型。

4、建立性能基线的实践方法

1)选择较为稳定和核心的业务模块(比如电商的导购搜索商品库存订单支付物流业务);

2)测试场景的覆盖范围按照优先级分批覆盖(比如优先P0场景,然后P1/P2场景逐步覆盖);

3)选取能直观表示性能变化结果的指标并在团队内达成共识(比如QPS、TPS、99RT及对应服务的资源使用率);

4)覆盖场景对应的脚本和数据应跟随迭代实时更新(在编码阶段跟进变化,并及时进行联调并更新对应的测试数据);

5)性能测试的执行动作尽量做到自动定时执行(自动执行时出问题或者测试结果异常可以手动执行并实时观察,异常数据和日志也应该快速记录下来,便于后续的排查和优化);

6)性能测试执行的结果数据最好通过自动记录+手动调整来记录并展示(展示可以通过饼图/折线图/柱状图等形式来展示,并提供分组筛选和对比功能);

7)每次性能测试结果都会存在一定误差(假设一切条件不变,每次执行的结果也存在误差,误差正负值可以取1%-5%);

8)性能基线的展示和统计区间可以按照版本号和季度等不同维度来展示(如果业务复杂且团队大,可以加上业务域甚至BU的的展示和筛选项);

9)性能基线的初始版本可以选取某个大的版本迭代或者标志性项目的结果为基准,后续性能基线的更新则根据具体情况来变更调整(比如业务需求大幅度变化/系统重构);

10)切记:性能基线一定要在独立稳定的环境开展,且环境的服务硬件配置最好和线上环境保持等配等比缩容!

完整版!企业级性能测试实战,速通Jmeter性能测试到分布式集群压测教程

下面是我整理的2025年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

二、接口自动化项目实战

三、Web自动化项目实战

四、App自动化项目实战

五、一线大厂简历

六、测试开发DevOps体系

七、常用自动化测试工具

八、JMeter性能测试

九、总结(尾部小惊喜)

人生最动人的篇章,往往写在最艰难的转折之后。当你觉得力不从心时,请记住:每一个"不可能"的突破,都始于"再试一次"的勇气。你的坚持,正在为世界书写新的可能!

别让他人的质疑成为你的枷锁!你体内蕴藏着改变命运的力量,每个微小的进步都在为辉煌铺路。当别人停下脚步时,你的坚持就是最有力的回应。向前走,属于你的舞台正等待绽放!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/13 19:23:34

21、深入解析RAC数据库的跟踪与诊断技术

深入解析RAC数据库的跟踪与诊断技术 1. 引言 在RAC(Real Application Clusters)数据库环境中,获取跟踪和诊断信息对于解决性能问题、排查故障至关重要。本文将详细介绍获取这些信息的方法,包括跟踪文件位置、DBMS_MONITOR包、ORADEBUG工具以及LKDEBUG实用程序等内容。 2…

作者头像 李华
网站建设 2025/12/13 19:19:54

【Python大数据毕设选题】基于Hadoop+Django的个人财务健康分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习

✍✍计算机毕设指导师** ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡有什么问题可以…

作者头像 李华
网站建设 2025/12/29 20:32:04

快速掌握Faster Whisper:Whisper模型训练加速终极指南

快速掌握Faster Whisper:Whisper模型训练加速终极指南 【免费下载链接】faster-whisper plotly/plotly.js: 是一个用于创建交互式图形和数据可视化的 JavaScript 库。适合在需要创建交互式图形和数据可视化的网页中使用。特点是提供了一种简单、易用的 API&#xff…

作者头像 李华
网站建设 2025/12/28 8:24:43

BluetoothKit终极指南:快速构建iOS和macOS蓝牙应用

BluetoothKit终极指南:快速构建iOS和macOS蓝牙应用 【免费下载链接】BluetoothKit 项目地址: https://gitcode.com/gh_mirrors/blu/BluetoothKit 想要在iOS和macOS平台上快速开发强大的蓝牙应用吗?BluetoothKit正是你需要的终极解决方案&#xf…

作者头像 李华
网站建设 2025/12/13 19:18:47

游戏深度魔法:Flame引擎视差滚动技术的实战解析

游戏深度魔法:Flame引擎视差滚动技术的实战解析 【免费下载链接】flame 项目地址: https://gitcode.com/gh_mirrors/fla/flame 在2D游戏开发的世界里,有一个能够瞬间提升游戏品质的"魔法"——视差滚动技术。这种看似简单的视觉效果&am…

作者头像 李华