13年老鸟整理,性能测试技术知识体系总结,从零开始打通...

news2024/11/23 4:03:04

目录:导读

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


前言

从个人的实践经验来说,我认为性能测试技术体系的构建,大致要分为四个阶段,分别是:日常化、自动化、工具化和平台化。

1、日常化

很多做性能测试的同学,在工作中面临的最大问题是性能测试无法成为日常测试工作的一部分,即性能测试作为质量保障的一种手段,却无法融入正常的需求版本迭代流程中。

最常见的例子就是一句话需求,比如:这几个接口压测一下,出一份报告;或者线上出了性能问题,才火急火燎的找测试同学,对系统进行压测,再排查定位问题。

要构建性能测试的技术体系,最基础也是最核心的部分,就是将性能测试融入软件研发交付流程中,即但凡涉及到系统迭代或者变更,都需要经过评估甚至性能测试,才能发布上线。

否则性能测试只会成为不重要的救火队员角色,疲于奔命却没时间去沉淀,更不要说构建测试体系了。

2、自动化

在传统的性能测试方法中,每次性能测试(需求迭代或项目维度)都需要重新评估需求,然后准备对应的测试数据和压测脚本,在我看来除了增加多余的工作量,实际的作用和价值并不明显。

正常情况下,大部分公司的业务和系统不会有高频次大范围的变更,即比较核心的业务链路和场景相对是稳定的。

在这种情况下,对核心业务场景(比如P0+P1场景)进行性能测试全量覆盖,是一种比较可行的方式。

通过自动化的执行方式,不仅能提高验证效率,还可以大大缩短信息反馈耗时,即快速得到迭代后系统性能变化的结果,做到快速评估和反馈,这样也有助于帮助研发同学快速修复,提高线上交付效率。

3、工具化

性能测试体系的构建,除了压测工具之外,还需要丰富和完善其他方面的工具。

比如:
造数工具:性能测试最耗时的部分应该是准备阶段,其中最麻烦的应该是准备测试数据并验证其可用性,因此提升造数据的效率是工具化很重要的一部分。

常见的造数方法有线上数据导出脱敏、调用API生成、录制回放以及通过生成器模式进行封装。

故障案例库:其实导致出现性能问题的根因总结下来就那么几种,只不过实际表现为多种方式,比较好的方式是对日常工作中发现的性能问题和故障进行汇总分析,通过FMECA的方式搭建故障案例库,进而形成研发和测试规范。

监控分析工具:影响性能的因素是多种多样的,除了常见的基础资源监控,还应该考虑丰富链路追踪、堆栈分析、内存分析、线程分析以及缓存和数据库监控等各个方面的工具建设。

4、平台化

当性能测试融入到日常的软件研发迭代流程中,并且通过自动化的方式覆盖了大部分场景后,接下来就需要考虑将流程+执行+工具+案例融合为平台,将性能测试过程管控起来,通过平台对外提供标准完善的功能。

这个时候性能测试就可以视作是一种服务,为整个技术团队提供服务稳定性保障和技术效率的服务。

当然,落地平台化有几点需要考虑,比如团队规模大小、需求迭代频次、业务和系统复杂性以及技术团队本身的基础技术设施的建设程度。

如果团队规模较小,且技术团队的基础设施建设一般,平台化就不用考虑了。

构建性能测试技术体系的最大制约,就是无法直观体现自己的价值,且建设过程耗时较久,对技术的深度和广度要求也比较高。

个人认为,如果要从零开始构建性能测试技术体系,单纯的技术能力是一方面,团队的执行力和想办法让测试结果获得认同,也是很关键的因素。

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

在风雨中成长,在挑战中磨砺,只有不断追求进步,才能绽放内心的力量,创造属于自己的辉煌人生。

困难不是放弃的理由,挫折不是退缩的借口,只要心怀坚持与勇气,奋斗的道路上,必将收获属于你的辉煌与成功。

勇往直前,脚踏实地,梦想是奋斗的起点,努力是成功的阶梯,不停追求,才能书写属于自己的壮丽篇章。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1511038.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

新质生产力浪潮下,RPA如何成为助力先锋?

新质生产力浪潮下,RPA如何成为助力先锋? 在数字化、智能化的今天,“新质生产力”一词越来越频繁地出现在我们的视野中。那么,究竟什么是新质生产力?它与我们又有什么关系?更重要的是,在这一浪潮…

2024年,10大产业趋势:创新驱动下的全面转型与发展

本趋势指南深入探讨塑造企业创新未来的力量,以及为什么企业必须改变创新方式。指南概述了创新未来的愿景,其中人类智慧和AI技术在创新中相结合,相互补充和放大,这将是一个全新范围的端到端创新平台,旨在将各个点连接起…

用chatgpt写论文重复率高吗?如何降低重复率?

ChatGPT写的论文重复率很低 ChatGPT写作是基于已有的语料库和文献进行训练的,因此在写作过程中会不可避免地引用或借鉴已有的研究成果和观点。同时,由于ChatGPT的表述方式和写作风格与人类存在一定的差异,也可能会导致论文与其他文章相似度高…

Python中Matplotlib保存图像时去除边框(坐标轴、白色边框、透明边框)方法

直接说解决方法: plt.savefig(‘image3.png’,bbox_inches‘tight’,pad_inches0) (三行搞定) import numpy as np import matplotlib.pyplot as pltimg np.random.randn(10,10)figplt.imshow(img) plt.axis(off) plt.savefig(image3.png,b…

面试题02.07.链表相交

方法一:暴力 public ListNode getIntersectionNode(ListNode headA, ListNode headB) {//先获得链表长度ListNode l1 headA;ListNode l2 headB;int m 0, n 0;while(l1 ! null){m;l1 l1.next;}while(l2 ! null){n;l2 l2.next;}ListNode l3 headA;for(int i …

YOLOv5_seg-Openvino和ONNXRuntime推理【CPU】

纯检测系列: YOLOv5-Openvino和ONNXRuntime推理【CPU】 YOLOv6-Openvino和ONNXRuntime推理【CPU】 YOLOv8-Openvino和ONNXRuntime推理【CPU】 YOLOv7-Openvino和ONNXRuntime推理【CPU】 YOLOv9-Openvino和ONNXRuntime推理【CPU】 跟踪系列: YOLOv5/6/7-O…

Ableton Live 12 Suite:音乐创作的全能工作站 mac版

在数字音乐制作的领域中,Ableton Live 11 Suite 无疑是引领潮流的旗舰产品。作为一款综合性的音乐制作和演出软件,它提供了从创作灵感的萌芽到最终作品完成的全方位解决方案。 Ableton Live 12 Suite Mac版软件获取 Ableton Live 11 Suite 凭借其强大的…

革命性创新:聚道云软件连接器如何为企业重塑财务管理流程?

一、客户介绍 某科技股份有限公司是一家专注于高性能存储技术领域的创新型科技公司。自公司成立以来,该公司始终秉持创新发展的理念,致力于为客户提供卓越的存储解决方案,以满足不同行业对数据存储的需求。作为业界的佼佼者,该公…

47、C++/引用,函数重载,类相关学习20240312

一、自己封装一个矩形类(Rect),拥有私有属性:宽度(width)、高度(height), 定义公有成员函数: 初始化函数:void init(int w, int h) 更改宽度的函数:set_w(int w) 更改高度的函数:set_h(int h) 输出该矩形的周长和面积函数:void show()。 代码&…

系统及其分类

系统定义 系统:指若干相互关联的事物组合而成的具有特定功能的整体。 系统的基本作用:对输入信号进行加工和处理,将其转换为所需要的输出信号。 系统分类 系统的分类错综复杂,主要考虑其数学模型的差异来划分不同类型。主要分为…

【干货详解】接口测试和功能测试有什么区别

本文主要分为两个部分: 第一部分:主要从问题出发,引入接口测试的相关内容并与前端测试进行简单对比,总结两者之间的区别与联系。但该部分只交代了怎么做和如何做?并没有解释为什么要做? 第二部分&#xff1…

jquery-viewer(Viewer.js)—— 一个 jQuery 图片展示插件

用法&#xff1a; <link href"/path/to/viewer.css" rel"stylesheet"> <script src"/path/to/viewer.js"></script>new Viewer(element[, options]) 【element&#xff1a; HTMLElement类型&#xff0c;可以是img元素或包含…

蓝桥杯 - 大石头的搬运工 C++ 前缀和 算法 附Java python

题目 思路和解题方法 这段代码的目标是计算给定点集的最小总移动成本&#xff0c;使得所有点都在同一直线上。它通过计算每个点左边和右边的移动成本&#xff0c;然后在所有可能的分割点中选择最小成本。具体步骤如下&#xff1a; 读取输入的点集&#xff0c;每个点表示为 (y, …

C/C++ 树中王牌:红黑树的结构及实现

一、红黑树的定义 红黑树&#xff0c;是一种二叉搜索树&#xff0c;但在每个结点上增加一个存储位表示结点的颜色&#xff0c;可以是Red或 Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制&#xff0c;红黑树确保没有一条路 径会比其他路径长出俩倍&#xff…

2024大广赛Canva可画都有哪些命题?

大广赛官网在3月8日发布了2024年Canva可画的命题&#xff0c;Canva可画是全球领先的视觉传播平台&#xff0c;2013年诞生于悉尼&#xff0c;2018年进入中国市场。秉承“赋予世界设计的力量”的使命&#xff0c;Canva可画为用户提供零门槛的设计编辑工具(网页端/App/小程序)&…

element-plus 完成下拉切换功能

项目场景&#xff1a; element-plus element-plus 完成下拉切换功能&#xff0c;选用了popover 组件去进行样式修改&#xff0c;本来大概是要实现下面这样的样式效果&#xff0c;没想到调整的时候&#xff0c;这个选择的高亮模块总是超出。 实现效果&#xff1a; 解决方案&am…

Linux/Cap

Enumeration nmap 第一次扫描发现系统对外开放了21&#xff0c;22&#xff0c;80端口&#xff0c;端口详细信息如下 除了22的ssh服务&#xff0c;80的http服务&#xff0c;还开了21端口&#xff0c;运行着ftp服务&#xff0c;从nmap给出的结果可以看到并没有启用匿名登录设置…

【力扣 - 找到字符串中所有字母异位词】

题目描述 给定两个字符串 s 和 p&#xff0c;找到 s 中所有 p 的 异位词 的子串&#xff0c;返回这些子串的起始索引。不考虑答案输出的顺序。 异位词 指由相同字母重排列形成的字符串&#xff08;包括相同的字符串&#xff09;。 示例 1: 输入: s "cbaebabacd"…

能查看二十四节气并提醒的软件是什么 二十四节气提醒软件

阳光斜照&#xff0c;我站在窗前&#xff0c;感受着四季的变迁。每个季节都有它独特的韵味&#xff0c;而二十四节气&#xff0c;便是这四季变换的细腻注脚。它们不仅是大自然的节奏&#xff0c;更与农事、生活紧密相连&#xff0c;承载着古人的智慧和对自然的敬畏。 小时候&a…

linux 新增定时任务

1、创建定时任务 crontab -e 2、加入定时任务规则 0 2 * * * /usr1/local/mysql-backup/backup.sh 说明&#xff1a;backup.sh是sh脚本 3、重启定时任务 service crond restart 扩展 1、查看定时任务列表 crontab -l 2、需要修改定时任务 crontab -e