性能测试入门实践路线图

news/2024/10/31 1:32:07/

我转行做软件测试工作已有六年多了, 从功能到自动化测试,然后负责性能测试团队和质量团队的技术专项治理,再到测试专家角色,负责整个技术项目的产品/运营和质量保障工作。

其中性能测试和线上稳定性保障,算是我最擅长的技术领域。很多同学咨询过我,性能测试如何入门,如何快速提升压测和性能优化相关的技能。

我写了很多文章分享性能测试相关的干货文章,但发现还是有很多同学迟迟无法入门,对性能测试的认知依然停留在使用工具压测然后统计数据出报告就完事的层次。

这篇文章,我想结合自己的实践和技术成长经历,聊聊性能测试如何从入门到落地实践的路线图。

导图

性能测试从入门到落地实践的路线图,我会以下面这张图为示例来分开描述。

方法论

有句话叫做“工欲善其事,必先利其器”,我想在后面补充一句:“欲利其器,必晓其理”!

我觉得无论任何一种知识或者技术领域,想要很好的在这个领域有所收获,一定要先掌握这个领域的理论知识,并且对相关的底层通用知识有所了解,否则在深入实践时会遇到很多认知上的偏差导致的结果南辕北辙。

基础理论知识不难学习,网上一搜很多基础理论知识的介绍,或者某些专业书籍上面都有很多关于理论知识的介绍。

学习理论知识不需要死记硬背,理论知识的作用在于让我们对性能测试有一个足够和全面的了解,知晓其脉络骨骼,然后按照方法论的指导,在具体的实践中灵活运用。

而通用的底层知识,对IT行业相关的技术从业者来说,无非就是网络协议、编码语言、数据库存储和操作系统相关知识。

这些知识基本是几十年前就有的,到现在没怎么变化,预计未来也不会有大的改变。

业务场景

我在前面的文章多次提到了我对技术和业务的认知,就是技术本身没有直接的价值,它一定要通过业务目标的达成或者商业活动的变现,才能体现自己的价值。

我们所有的测试活动开展,也是基于具体业务场景,因此在掌握基础理论知识后,开展性能测试的前提一定是要对业务场景有足够深的理解。

工具组件

技术不断发展带来的最大的优势就是出现了多种类型的工具,而工具的作用就是辅助人提高做事情的效率,性能测试也不例外。在实际的压测实施前后,借助工具可以事半功倍的完成性能测试工作。

上图的几种工具组件,下面列举几种供参考:

  • 压测工具:jmeter、gatling、locust、ghz、perfdog、airlab、sysbench;
  • 监控工具:zabbix、cat、skywalking、jaeger、prometheus、grafana;
  • 分析工具:arthas、SystemTap、jconsole、visualvm、操作系统自带工具;
  • 服务组件:常见的如redis、kafka、tomcat、feign、apollo、nacos、mybatis;
  • 系统架构:性能测试的对象是各应用服务及技术组件,需要了解整个系统的调用关系,因此熟悉被测系统的系统架构和数据流是做好性能测试工作的必须项;

技术实践

其实性能测试只是一个统称,现在大家更习惯称之为容量测试或者容量保障。

性能测试本质是一个特别吃经验的活儿,需要大量的项目实践和踩坑排查问题,定位分析优化问题,才能累积丰富的技术经验和案例。

上面我列举了几个具有代表性的技术实践类型,其实本质都是为了保障线上服务的稳定性。

体系建设

性能测试或者说任何的技术实践,做到最后都是建立体系,体系是基于理论指导的适合自己的支撑业务目标达成的最佳技术实践。我个人认为体系建设最重要的五点要素如下:

组织结构:技术团队的人员构成、新人落地、人员培养、知识库建立以及团队目标和分工;

流程规范:好的流程规范是保证团队大部分人可以遵循同一个目标和方向前进,降低内耗;

技术体系:技术团队一定要做自己的技术体系搭建,从技术选型、demo验证到技术落地以及持续优化;

沟通协作:现在很多工作单靠自己是无法完成的,需要多人协作甚至跨团队合作,因此高效的沟通协作机制很重要;

性能文化:其实不仅仅是性能文化,每种技术实践都有自己提倡的文化,比如测试的文化就是质量+效率。文化的本质就是团队所认可并且践行的一种理念,一种有益于业务、团队和个人利益的追求。

其实无论哪一门技术领域,都需要先了解理论,才能更好的实践。所有的技术都是服务于业务,一切以业务目标为导向的开展技术实践。

技术的最大价值就在于,支撑业务更好的发展而体现自身的价值。 技术实践到最后,构建最适合自己团队和业务目标达成的体系,并且需要持续改进。

加油吧,测试人!如果你需要提升规划,那就行动吧,在路上总比在起点观望的要好。未来的你肯定会感谢现在拼命的自己!


http://www.ppmy.cn/news/65806.html

相关文章

Vue3(3)组件

目录 一、组件注册 1.全局注册 2.局部注册 二、Props 一、组件注册 一个 Vue 组件在使用前需要先被“注册”,这样 Vue 才能在渲染模板时找到其对应的实现。组件注册有两种方式:全局注册和局部注册。 1.全局注册 我们可以使用Vue应用实例的app.compon…

第五十八章 Unity 发布PC平台

本章节我们介绍一些如何打包游戏到PC平台,这里重点介绍如何制作Windows操作系统下的游戏包。首先,我们创建一个“PcDemo”工程,然后简单布置一下场景内容,如下 想要打包发布Unity项目,我们可以在菜单栏选择“File”→ …

【Golang】排查 Build constraints exclude all the go files 的几个思路

输出该问题时说明在 Go 语言的启动编译(Build)阶段,出现了编译问题,往往是编译配置的问题。可以通过以下思路去排查对应的错误。 一、查看 go env 😶‍🌫️ (1)首先可以查看被排除的…

免费换电池还倒塞用户200,iPhone惨遭“耐用”反噬

多年来 iPhone 最为诟病的几个缺点之一肯定少不了电池。 在 Android 已经普及4、5000mAh 大电池加快充组合的情况下,iPhone 仅有 Pro Max(Plus)勉强及格。 更难受的是今年3月,官方换电池还迎来了幅度不小的涨价。 苹果这是在建议我…

【python爬虫一】爬虫基础操作

爬虫概述 概念:是一种按照一定的规则,自动地抓取互联网上网页中相应信息(文本、图片等)的程序或脚本,然后把抓取的信息存储下来。 爬虫的分类 通用爬虫:把一整张页面源码数据进行爬取聚焦爬虫&#xff1…

Android 音频开发——Audio概览(八)

Audio 是 Android 系统中比较重要的一个模块,在 Android 中负责音频方面的数据流传输和控制功能,也负责音频设备的管理。 一、系统架构 Android 音频架构定义了音频功能的实现方式,并指出实现中所涉及的相关源代码。 应用框架 应用框架包含应用代码,该代码使用 android.me…

PPPoE工作原理

协议原理 数字用户线路DSL(Digital Subscriber Line)是以电话线为传输介质的传输技术,人们通常把所有的DSL技术统称为xDSL,x代表不同种类的数字用户线路技术。目前比较流行的宽带接入方式为ADSL,ADSL是非对称DSL技术,使用的是PPPoE(PPP over Ethernet)协议。 PPPoE(PPP…

tcp cubic 与随机丢包

前面提到过一个 AIMD 的修正方法,“二次机会 MD”:首次丢包只 MD 收缩一个相对较小的比例,再次丢包时再继续收缩,直到 beta * Wmax。 效果如下图: 大意是在检测到丢包时,先 MD 一个相对小的缩放比例&…