资深老鸟,性能测试入门到快速上手压测整理,一篇上高速...
1、性能测试入门1)业务场景我们所有的测试活动开展,也是基于具体业务场景,因此在掌握基础理论知识后,开展性能测试的前提一定是要对业务场景有足够深的理解。2)工具组件技术不断发展带来的最大的优势就是出现了多种类型的工具,而工具的作用就是辅助人提高做事情的效率,性能测试也不例外。在实际的压测实施前后,借助工具可以事半功倍的完成性能测试工作。上图的几种工具组件,下面列举几种供参考:压测工具:jmeter
目录:导读
前言
1、性能测试入门
1)业务场景
我们所有的测试活动开展,也是基于具体业务场景,因此在掌握基础理论知识后,开展性能测试的前提一定是要对业务场景有足够深的理解。
2)工具组件
技术不断发展带来的最大的优势就是出现了多种类型的工具,而工具的作用就是辅助人提高做事情的效率,性能测试也不例外。在实际的压测实施前后,借助工具可以事半功倍的完成性能测试工作。
上图的几种工具组件,下面列举几种供参考:
压测工具:jmeter、gatling、locust、ghz、perfdog、airlab、sysbench;
监控工具:zabbix、cat、skywalking、jaeger、prometheus、grafana;
分析工具:arthas、SystemTap、jconsole、visualvm、操作系统自带工具;
服务组件:常见的如redis、kafka、tomcat、feign、apollo、nacos、mybatis;
系统架构:性能测试的对象是各应用服务及技术组件,需要了解整个系统的调用关系,因此熟悉被测系统的系统架构和数据流是做好性能测试工作的必须项;
3)技术实践
其实性能测试只是一个统称,现在大家更习惯称之为容量测试或者容量保障。
性能测试本质是一个特别吃经验的活儿,需要大量的项目实践和踩坑排查问题,定位分析优化问题,才能累积丰富的技术经验和案例。
上面我列举了几个具有代表性的技术实践类型,其实本质都是为了保障线上服务的稳定性。
4)体系建设
性能测试或者说任何的技术实践,做到最后都是建立体系,体系是基于理论指导的适合自己的支撑业务目标达成的最佳技术实践。我个人认为体系建设最重要的五点要素如下:
组织结构:技术团队的人员构成、新人落地、人员培养、知识库建立以及团队目标和分工;
流程规范:好的流程规范是保证团队大部分人可以遵循同一个目标和方向前进,降低内耗;
技术体系:技术团队一定要做自己的技术体系搭建,从技术选型、demo验证到技术落地以及持续优化;
沟通协作:现在很多工作单靠自己是无法完成的,需要多人协作甚至跨团队合作,因此高效的沟通协作机制很重要;
性能文化:其实不仅仅是性能文化,每种技术实践都有自己提倡的文化,比如测试的文化就是质量+效率。文化的本质就是团队所认可并且践行的一种理念,一种有益于业务、团队和个人利益的追求。
2、快速上手压测工作
1)熟悉业务特性
无论是做什么类型的测试工作,都脱离不了业务。
我们的被测对象,也是基于系统架构的用代码实现的高度具象的业务系统。
如果是专职做性能测试,或者刚介入一个全新的系统进行压测,想要短时间内了解业务细节是几乎不可能的。
但为了更好的快速开展工作,我个人的经验是快速熟悉业务特性,结合自己的经验对系统有个大致的了解。
2)什么是业务特性呢
可以参照下面几个例子:
电商下单业务:典型的先读后写类型,要考虑库存、事务的一致性,还有响应时间的范围;
大数据&报表业务:典型的读场景,可能会涉及到缓存或者消息队列,甚至是批处理;
金融风控信审业务:这种业务对响应时间没有太高的要求,但业务链路较长,不同系统间的交互要考虑;
语音识别搜索业务:涉及到语音文字的识别转换、准确率和命中率,计算密集型业务要更关注内存资源;
上述几个例子只是参考,其实最核心的思路在于:了解业务有什么特点,对响应时间、事务一致性的要求,可能的技术实现方式是什么,用到了什么技术组件,压测时要关注哪些指标。
3)了解系统架构
聊完业务特性后,被测系统的系统架构是一定要了解的。
因为我们的工作对象是具体的系统,而且压测要关注技术指标,关注请求处理的过程以及耗时等情况。
一般来说要了解被测系统的系统架构,可以通过如下几种方式:
系统架构图&网络拓扑图;
模拟几个请求,借助链路追踪工具来绘制请求链路;
如果都没有,通过监控观察请求的变化,挨个摸底;
看业务需求的prd,了解业务之间的关系,然后映射到具体的服务和接口;
上述几种方式是我常用的几种方式,在具体工作中要灵活变通,而且这种对系统架构摸底和请求链路的了解过程,也是个人快速学习和成长的过程。
4)团队工作方式
团队工作方式,不仅限于性能测试团队或者测试团队,而是从需求到发布整个软件研发过程各个团队是如何协同配合的。
刚进入一个新的团队或者介入一个新项目时,可以从下面几个方面去熟悉,主要包括:
流程:包含需求评审、提测、UAT、灰度和生产发布等主要流程以及时间节点;
环境:开发环境、测试环境、UAT环境以及生产环境,主要涉及域名、权限、负责人等;
基础工具:配置中心、注册中心、需求&缺陷管理平台、CICD流水线工具、监控分析工具等;
测试工具:包含压测工具、抓包工具、造数工具、mock工具、文档管理工具、协作办公沟通工具等;
测试方法:之前怎么做压测?对指标有没有标准或定义?测试方案测试报告的撰写要求等;
协作人员:不同业务域或者业务系统的研发/运维/DBA是谁,跨团队的沟通协作方式等;
完整版!企业级性能测试实战,速通Jmeter性能测试到分布式集群压测教程
| 下面是我整理的2025年最全的软件测试工程师学习知识架构体系图 |
一、Python编程入门到精通

二、接口自动化项目实战

三、Web自动化项目实战

四、App自动化项目实战

五、一线大厂简历

六、测试开发DevOps体系

七、常用自动化测试工具

八、JMeter性能测试

九、总结(尾部小惊喜)
人生最动人的篇章,往往写在最艰难的转折之后。当你觉得力不从心时,请记住:每一个"不可能"的突破,都始于"再试一次"的勇气。你的坚持,正在为世界书写新的可能!
别让他人的质疑成为你的枷锁!你体内蕴藏着改变命运的力量,每个微小的进步都在为辉煌铺路。当别人停下脚步时,你的坚持就是最有力的回应。向前走,属于你的舞台正等待绽放!
更多推荐



所有评论(0)