从写下第1个脚本到年薪40W,我的自动化测试心路历程

我希望我的故事能够激励现在的软件测试人,尤其是还坚持在做“点点点”的测试人。

你可能会有疑问:“我也能做到这一点的可能性有多大?”因此,我会尽量把自己做决定和思考的过程讲得更具体一些,并尽量体现更多细节。

每个测试人的经历都不一样,但我希望我的经历中能让你有所收获。

测试新人

我的软件测试职业开始和大多数最普通的测试人员一样,一开始在一家社交平台的公司做软件测试,公司最开始只我人一位软件测试人员,没有任何流程和规范,但好在工作比较轻松,这就导致我有充足的时间学习各种测试技术和工具。

当你认为工作很闲时,这正是你可以有更多的时间投入学习的时候,但是,学习的内容一定要基于自己的工作来,这样才能把学来的技术变成工作经验。

当时,有一些机会在工作中做性能测试,于是,学会了使用LoadRunner和JMeter,有一次需要测试MySQL数据库的性能,用JMeter搞了半天不知道怎么设置,结果叫一位开发的同事帮我过来很快就搞定了。

这让我认识到开发知识对于测试工作的帮助,编程语言的能力会决定你测试技术的深度。

从写下第1个脚本到年薪40W,我的自动化测试心路历程_第1张图片

加入群:1150305204,即可免费领自取~

选择Python

大概在2013年的时候,脚本语言变得越来越流行,我正纠结学习Python还是Ruby,后来,我被分到社区项目的测试工作,公司产品开始选用Python开发的,所以,我毫不犹豫的选择了Python。

如果你不知道学习什么编程语言,那么就根据项目的开发语言来,这也会有助于你对测试的bug的理解。

接着,开始用Python语言和Selenium来尝试做自动化测试。那时,关于Python版的Selenium并不多,在学习的同时我开始发表相关博客。

交流是学习新技术的驱动力,大多数时候我们很难坚持学一个新技术的原因就在于缺少反馈,不管是做内部分享或者是社群交流都是很好的反馈机制。

2014年的时候,由于项目的原因,开始使用Robot Framework测试框架,正因为有Python的基础所以很快就理解了Robot Framework框架的工作原理,并可以根据项目的需要开发系统关键字。

掌握自动化工具的原理使用起来才能更加游刃有余,而这也需要你有一定的编程基础的原因。

2015年随着移动App越来越流行,趁着换工作的间隙,我开始学习了一个月的appium自动化工具,但工作中用不到后来就没在继续了。

后来,我开始针对另一个社区项目编写Web UI自动化测试,前后做了几个月,积累了一些经验,开始尝试设计Web自动化框架,当时主要还是针对Selenium API的封装。

从写下第1个脚本到年薪40W,我的自动化测试心路历程_第2张图片

自动化测试

为什么我越来越有更多机会去做自动化相关的工作,当然,是我先学会了这项技能,然后才有,公司项目又比较适合去做自动化,所以,我就尝试去做了,最后,这就变成了我的经验。

但是,没多久我会调到另外一个项目负责接公司口平台的测试,这个项目支撑公司内部不同的业务线,为了更加高效的保证接口的质量,开发设计了一套基于PHPunit的接口自动化项目,因为整个接口平台也是有PHP开发,所以,我开始尝试用PHP编写接口自动化测试。这个自动化项目非常高效的保证了接口平台的稳定性,我持续维护了两年。

测试有时候必须跟着项目发展自己的技术,但也正是之前的编程基础和自动化的经验的积累,所以,才会很快的上手接口自动化项目。

2018年我开始做全栈工程师,和团队一起从零开发内部管理平台,后端用Django框架设计接口,前端用vue.js框架设计页面,项目已经在整个公司得到应用。

这个阶段跨度有点大,但应了我前面的一些思路,当你掌握的更多的技术,那么你也会有更多的机会继续提升自己。

从写下第1个脚本到年薪40W,我的自动化测试心路历程_第3张图片

你也在往自动化方向发展吗?

在适当的年龄,选择适当的岗位,尽量发挥好自己的优势。

我的自动化测试之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,所以,我和朋友花了一段时间整理编写了下面的软件测试工程师发展规划路线,会给你带来帮助和方向:

《软件自动化测试开发学习路线》

1.软件测试基础知识内容

软件测试职业以及发展定位
软件测试的概述&原则
软件测试的策略及详细讲解
软件测试的生命周期
软件测试工作流程
软件需求分析制作详解
软件测试计划的编写
软件测试用例的常用方法--等价类,边界值
软件测试用例的常用方法--因果图,判定表
测试用例的常用方法--状态迁移图;场景法
软件测试环境准备&团队组织架构&职责划分
bug编写规范,教你写出不low的缺陷
bug的流转与状态处理
缺陷编写规范与流程处理
缺陷编写规范与流程处理

2.MySQL数据库知识

数据库对测试人员的重要性
数据库概述
数据库安装
navicat连接数据库
简单的增删改查语句
DDL语言+类型与约束
数据库的增删改操作
数据库的其他约束
数据库的删除操作

3.接口测试基本知识

接口测试原理本质
接口测试用例编写和设计
Postman部署与接测试以及断言
Postman测试集使用&参数化
Postman接口关联以及发送报告
Fiddler环境搭建及原理&抓包、过滤、断点
Fiddler模拟mock实战及弱网实战
Jmeter常见元件详解及接门测试参数化
Jmeter接门关联、断言及JDBC包使用
Jmeter的jar包使用及生成测试报告

4.Python编程技术

编程语言介绍/编程概念讲解/环境搭建
Python编程思维及语法:变量的定义及基本使用
Python编程思维及语法:基本运算、基本数据类型、
Python编程思维及语法:输⼊与输出、数据的类型转换
Python编程逻辑流程:数学运算符/比较运算符/赋值运算符
Python编程逻辑流程:逻辑运算符/成员运算符
Python编程逻辑流程:程序中的条件分支--if
Python编程逻辑流程:程序中的循环结构--while
Python中的数据类型:python中的list列表定义
Python中的数据类型:python中的list列表操作流程
Python中的数据类型:python中的dict字典定义
Python中的数据类型:python中字典的增删改查
Python中的数据类型:元组在python中的应用

Python复杂操作:range函数在python中的意义

Python复杂操作:for循环的定义实操
Python复杂操作:字符串、列表的切片操作
Python中的数据类型:python中的集合应用
Python函数:python中的函数定义
Python函数:python中函数的注释
Python函数:python中函数的嵌套
Python函数:python中的内置函数
Python函数:python中的匿名函数
Python函数:python中函数的调用与引用的概念
Python函数:python中的装饰器详解
Python中的模块化与引用关系
Python导包:from关键字与import关键字的应用场景
python中的文件操作
面向对象:python中的类机制
面向对象:类属性的概念与应用
面向对象:类中的继承概念应用
面向对象:类中的多态概念
面向对象:异常机制

5.Web自动化测试技术

Web自动化测试入门:前端页面的组成分析详解
Web自动化测试入门:javascript操作Dom元素详解
Web自动化测试入门:selenium中的环境搭建详解
Web自动化测试入门:selenium原理,UI自动化的核心含义
Web自动化测试入门:从手工用例向自动化测试用例的迈进
Web自动化测试入门:常规定位--八大元素定位
Web自动化测试入门: 元素定位之selenium4.0特有网格定位
Web自动化测试入门: 元素定位之selenium元素内定位
Web自动化测试进阶:网页中难点之等待机制--强制等待
Web自动化测试进阶:网页中难点之等待机制--隐式等待
Web自动化测试进阶:网页中难点之expected_conditions的应用与原理
Web自动化测试进阶:网页中难点之等待机制--显式等待
Web自动化测试进阶:网页中难点之匿名函数在等待中的使用
Web自动化测试进阶:selenium模拟鼠标操作
Web自动化测试进阶:selenium模拟键盘操作
Web自动化测试进阶:ActionChain模拟拖动滚动操作
Web自动化测试进阶:实战中的单选复选框选择
Web自动化测试进阶:实战中的下拉框定位问题
Web自动化测试进阶:selenium中的switch_to函数详解
Web自动化测试进阶:selenium中的句柄操作详解
Web自动化测试进阶: 网页中难点之frame切换
Web自动化测试进阶: 网页中难点之多窗口切换
Web自动化测试进阶: 网页中难点之alert切换
Web自动化测试进阶:实战项目中难点之验证码问题
Web自动化测试进阶:图像处理的灰度化与二值化操作
Web自动化测试进阶:验证码处理之OCR图像识别操作
Web自动化测试进阶:验证码处理之cookie跳过验证码操作
Web自动化测试进阶:验证码处理之js处理方案
Web自动化测试进阶:自动化中的难点--文件上传操作
Web自动化测试进阶:自动化中的难点之input标签文件选择
Web自动化测试进阶:自动化中的难点之非input标签文件选择
Web自动化测试进阶:实战难点之多文件上传
Web自动化测试进阶:实战难点之iframe日期控件
Web自动化测试框架篇:unittest+pytest框架入门应用
Web自动化测试框架篇:实战中的pytest框架规则
Web自动化测试框架篇:pytest框架夹具及顺序
Web自动化测试框架篇:pytest框架插件实战详解
Web自动化测试框架篇:如何利用pytest框架生成测试报告
Web自动化测试框架篇:POM核心设计思路详解
Web自动化测试框架篇:POM的业务代码逻辑与组件分离
Web自动化测试框架篇:用POM思想设计一套框架
Web自动化高级篇:用POM思想重构unittest框架代码
Web自动化高级篇:进阶思路--从POM到关键字驱动
Web自动化高级篇:测试报告生成及Allure报告优化
Web自动化高级篇:Allure报告生成之用例重运行
Web自动化高级篇:Allure的装饰器执行流程
Web自动化高级篇:Allure的截图,异常截图操作
Web自动化高级篇:自动化执行记录之自定义框架日志封装
Web自动化高级篇:自定义框架封装设计理念
Web自动化高级篇:关键字与核心执行器封装
Web自动化高级篇:自动化测试重复流程的抽取和处理
Web自动化高级篇:数据驱动与数据分离--yaml文件驱动
Web自动化高级篇:动态化测试用例的生成与断言数据的生成
Web自动化拓展:web自动化分布式测试Grid介绍
Web自动化拓展:Web自动化分布式测试之selenium-Grid的hub详解
Web自动化拓展:Web自动化分布式测试之selenium-Grid的Nodes详解
Web自动化拓展:Web自动化分布式测试之selenium-Grid的配置详解
Web自动化拓展:全面提升测试效率--实战中的Grid的应用与常见问题处理

6.接口自动化测试

接口自动化入门: Http请求的核心概念及原理详解
接口自动化入门: Http的请求头,请求体,响应码解析
接口自动化入门: Http请求的域名与IP地址概念
接口自动化入门: swagger/word/excel/pdf等不同种类的接口文档理解
接口自动化入门:项目实战中接口测试流程分析及实现
接口自动化入门:Jmeter实现在接口工具中关联接口处理方案
接口自动化入门:Jmeter的多组数据测试、JDBC驱动及数据断言
接口自动化入门:JSON中的万能密码--JSONPath解析
接口自动化入门:大型项目中接口测试分工协同安排
接口自动化入门:接口自动化思维逻辑梳理及相关环境搭建
接口自动化入门:接口自动化实战项目需求分析+用例分析
接口自动化入门:Requests组成介绍及接口调用方式
接口自动化入门:Requests请求头设置详解
接口自动化入门:Requests的RESTFul请求发送
接口自动化入门: Requests实现项目接口关联调用测试实战
接口自动化入门:登录流程中的Session,Token鉴权实践
接口自动化入门:requests中的Assert断言处理
接口自动化入门: 加密接口处理之对称加密
接口自动化入门:加密接口处理之非对称加密
接口自动化进阶:Pytest运行规则插件安装常用参数详解
接口自动化进阶:Pytest结合Requests实现自动化
接口自动化进阶:Pytest全局配置pytest.ini文件详解
接口自动化进阶:Pytest之Fixture拓展及conftest.py加载机制
接口自动化进阶:Pytest之Parameterize数据驱动应用
接口自动化框架篇:Pytest断言处理以及Allure报告生成
接口自动化框架篇:Pytest+Allure报告企业定制化实现
接口自动化框架篇:Pytest企业级接口用例管理流程
接口自动化框架篇:Pytest中的接口请求封装
接口自动化框架篇:Pytest中的接口关联封装
接口自动化框架篇:优化逻辑--接口关联封装改进
接口自动化框架篇:规范JSON数据格式测试用例封装
接口自动化框架篇:接口框架中如何实现热加载封装
接口自动化框架篇:接口框架中的常归断言封装
接口自动化框架篇:接口框架中的日志记录封装
接口自动化框架篇:使用python连接数据库-PySQL介绍
接口自动化框架篇:PySQL的游标概念及数据操作
接口自动化框架篇:PySQL的游标概念及数据操作
接口自动化框架篇:Mysql数据库数据断言封装
接口自动化框架篇:接口框架中的数据类型处理
接口自动化框架篇:核心执行器封装流程
接口自动化框架篇:框架中的数据流转处理
接口自动化框架篇:框架中的不同请求方式封装
接口自动化框架篇:自定义异常日志封装
接口自动化框架篇:自定义断言封装逻辑
接口自动化框架篇:BaseURL基础路径封装
接口自动化框架篇:接口加密解密封装
接口自动化框架篇:接口签名Sign封装
接口自动化框架篇:接口自动化框架的测试报告生成
接口自动化拓展:接口Mock的理念与实战场景
接口自动化拓展:Flask框架安装、介绍及工作中的应用
接口自动化拓展:Flask框架与前端页面的通讯
接口自动化拓展:Flask框架的数据库操作
接口自动化拓展:Flask框架的增删改查接口实战

7.APP自动化测试

App自动化测试入门:APP测试的定义及环境搭建处理
App自动化测试入门:Appium设计理念解析
App自动化测试入门:APP测试中常用的ADB操作命令理解
App自动化测试入门:APP自动化稳定性测试详解
App自动化测试入门:Appium自动化的组件角色介绍
App自动化测试入门:Appium的自动化测试原理
App自动化测试入门:Appium的Inspector实战操作
App自动化测试入门:Desktop配置及底层逻辑
App自动化测试入门:运用Appium-Python-Client替代Desktop操作
App自动化测试入门:实战中的APP元素定位方式之Id定位
App自动化测试入门:实战中的APP元素定位方式之Name定位
App自动化测试入门:实战中的APP元素定位方式之ClassName定位
App自动化测试入门:实战中的APP元素定位方式之TagName定位
App自动化测试入门:实战中的APP元素定位方式之Xpath定位
App自动化测试入门:实战中非常规模式下的其他元素定位方式详解
App自动化测试入门:APP自动化中Activity组件原理
App自动化测试入门:实战中App自动化页面加载资源流程中的"坑"
App自动化测试入门:实战中App自动化页面资源渲染需要注意的"雷区"
App自动化测试入门:APP自动化测试中的三种常规等待类型
App自动化测试入门: 常规等待无法处理的bug解决方案--Activity等待与指令等待
App自动化测试进阶:App自动化-常规元素属性详解
App自动化测试进阶:App自动化-常规元素操作
App自动化测试进阶:App自动化非常规元素操作之触控操作详解
App自动化测试进阶:App自动化非常规元素操作之多指操作详解
App自动化测试进阶:App自动化非常规元素操作之新版本W3C操作
App自动化测试框架篇:实战中Pytest的用例标签详解
App自动化测试框架篇:Pytest-html测试报告生成
App自动化测试框架篇:实战中Pytest的用例参数化驱动测试用例
App自动化测试框架篇:实战中Pytest的conftest与钩子函数
App自动化测试框架篇:Pytest的yiled关键字原理解析
App自动化测试框架篇:Pytest-html报告添加截图操作
App自动化测试框架篇:Pytest-html获取用例结果流程
App自动化测试框架篇:Pytest-html报告源码解读与改造
App自动化测试框架篇:Pytest-html 自定义异常截图流程
App自动化测试框架篇:Pytest-html 实战中测试报告生成解析
App自动化测试框架篇: 企业级自定义框架封装思路详解
App自动化测试框架篇: 企业级数据驱动之数据的定义方式
App自动化测试框架篇: 自定义框架测试下的元素操作关键字封装详解
App自动化测试框架篇: 自定义框架测试下的系统函数关键字封装详解
App自动化测试框架篇: 自定义框架测试下的逻辑处理关键字封装详解
App自动化测试框架篇: 自定义框架测试下的逻辑处理关键字封装详解
App自动化测试框架篇: 自定义框架测试下的断言关键字封装详解
App自动化测试框架篇: 框架设计数据分离关键字之存储文件处理
App自动化测试框架篇: 框架设计数据分离之关键字热处理
APP自动化测试框架篇: 关键字驱动在企业中的落地方案

8.APP自动化测试拓展

App自动化测试拓展:企业级设备集群管理平台环境搭建介绍 
App自动化测试拓展:企业级设备集群管理平台核心配置含义
App自动化测试拓展:Appium在多机器下的自动化操作流程
App自动化测试拓展:实战中APP测试框架结合ATXServer集群测试方案
App自动化测试拓展:H5在APP中的应用与问题介绍
App自动化测试拓展:实战中的混合应用APP问题常见处理方式
App自动化测试拓展:混合应用中的元素定位与操作流程
App自动化测试拓展:混合应用中的跳转及等待操作处理
App自动化测试拓展:公众号H5 webview混合应用测试实战
微信小程序自动化:Minium环境搭建、自动化流程梳理
微信小程序自动化:小程序自动化的核心思路与原理理解
微信小程序自动化:小程序中的元素定位、属性分析、元素操作
微信小程序自动化:小程序中的特殊操作-点击、长按、拖动
微信小程序自动化:minitest命令详解/测试报告分析

9.跨平台自动化测试RobotFramework & Airtest

RobotFramework简介与环境搭建
RF语法之变量使用
RF基础语法之测试用例编写
RF之关键字与资源文件
RF之语法控制流与循环
RF-Web自动化项目实战
RF-接口自动化项目实战
RF-扩展库开发
RF-集成Jenkins之持续集成
Airtest环境搭建与IDE使用
Airtest-Web自动化项目实战
Airtest-APP自动化项目实战
Airtest之poco框架
Airtest-windows应用程序自动化测试
Airtest之脚本运行方式

10.DevOps 持续集成

GIT代码版本控制:版本控制概念/环境搭建
GIT代码版本控制:版本库创建
GIT代码版本控制:克隆、pull、push、commit命令使用
GIT代码版本控制:版本冲突解决/分支/tag控制
Jenkins持续集成:CICD介绍、环境搭建
Jenkins持续集成:Jenkins插件管理常用插件
Jenkins持续集成:命令执行机制/远程ssh执行
Jenkins持续集成:Allure测试报告集成/办公软件集成
Jenkins持续集成:自动化用例结合Jenkins应用
Jenkins持续集成:Jenkins定时任务/GIT集成
Jenkins持续集成:构建 CI/CD 流水线 开发-测试-运维
sonar代码白盒检测:代码检测概念,sonar环境搭建
sonar代码白盒检测:常见代码检测问题解析
sonar代码白盒检测:代码检测报告分析
sonar代码白盒检测:Jenkins与sonar组合持续集成

11.Jmeter性能测试

性能和功能的区别
性能指标:响应时间
程序运行过程中,对服务器资源占用率
吞吐量 和 并发量 的关系?/区别?
性能测试整体流程介绍
项目中性能测试的背景分析
性能需求分析-业务模型
性能测试用例的概念和示例
性能测试概念-负载测试
性能测试用例结构及项目实例
性能测试完成标准
性能测试环境 服务器配置
Jmeter环境构建
Jmeter多线程插件的使用
Jmeter压测汇总报告结果分析
Jmeter梯度压测线程组实际应用
Jmeter分布式集群压测概念
阿里云PTS云服务器压测方式
Jmeter压测使用CSV数据集
Jmeter 7大定时器分析
结果分析之Basic Graphs图表
InfluxDB + Grafana+Jmeter监控大屏
Jmeter 后端监听器连接InfluxDB
Jmeter-InfluxDB-Grafana完整调试
nmon数据采集与结果分析
prometheus 服务器 配置
性能测试报告-测试实施情况编写
性能测试报告-资源使用率截图内容
如何找性能拐点及性能瓶颈定义
APP性能测试概念,目的与意义
性能测试流程和性能测试工具分析
APP性能指标(cpu、内存、流畅度等)
APP性能测试工具选择,环境搭建实战
APP性能指标启动时间、CPU、流量详解获取方法
APP性能监控脚本实现;数据分析
APP性能指标之电量、内存、FPS
APP性能指标之过度渲染及实战
Locust简介 Locust是什么?
Locust发起HTTP接口请求
Locust的Web界面
locustfile之task_set属性
locustfile之weight (权重)属性
详解任务集合TaskSet类
动态URL参数使用
Locust“逐步负载”模式运行
Locust+Grafana 搭建性能监控平台

12.vue测试开发平台

阶段1. 前端HTML/CSS/JS项目开发实战
阶段2. VUE 前端框架项目开发实战
阶段3. Flask WEB后端开发框架项目实战
阶段4. Flask+Vue前后端分离系统项目实战
阶段5. 测试平台管理系统基础功能开发  
阶段6:接口自动化测试平台设计阶段
阶段7:接口测试平台前端界面设计与开发
阶段8:接口测试平台后端设计与开发
阶段9:接口测试平台联调测试
阶段10:WEB自动化测试平台设计阶段
阶段11:WEB测试平台前端界面设计与开发
阶段12:WEB测试平台后端设计与开发
阶段13:WEB测试平台联调测试
阶段14:APP自动化测试平台设计阶段
阶段15:APP测试平台前端界面设计与开发
阶段16:APP测试平台后端设计与开发
阶段17:APP测试平台联调测试
阶段18:用例执行图形报表可视化数据监测
阶段19:CICD持续集成整合企业测试流程
阶段20:办公软件钉钉/飞书/企微等整合
阶段21:Xmind测试用例数据格式集成
阶段22:Swagger/Har动态接口数据集成
阶段23:测试平台分布式集群部署实战

13.django测试开发

WEB开发技术简介及Django开发环境搭建
Django开发web接口urls及views机制
Django数据库模型和视图
Django-admin环境搭建及应用
接口测试脚本自动化及脚本存在的问题
Pytest插件开发测试工具原理分析
如何将Python测试工具打包成可执行命令
自动化测试平台开发思路
通过Django_admin_vue模板快速开发出web界面
平台开发:项目创建及自定义管理平台数据展示内容
平台开发:实现复杂数据维护页面
平台设计:如何将测试数据转换为数据库存储
平台实现:接口测试平台效果演示及debug调试
WEB封装思维锻炼:web自动化中封装技术的应用
WEB封装思维锻炼:fixture及断言截图机制拓展封装
代码封装思维对于测试开发的重要性
WEB平台驱动封装:POM的作用以及它的问题
WEB平台驱动封装:UI自动化框架实现原理剖析
WEB平台:底层UI执行驱动工具开发
WEB平台:自动化平台项目实战及原理debug分析
APP_UI平台:APP自动化平台内容梳理及实战项目
APP_UI平台:封装思想及拓展思想分析
APP_UI平台:平台数据库设计思路分析
UI自动化测试平台封装思维整体梳理
自动化平台架构:集群分布式部署方案分析
自动化平台部署:Nginx集群部署实践
自动化平台部署:集群下登陆session共享方案

14.安全测试

安全测试两大项目靶场部署
WEB安全漏洞及渗透测试手法:反射性XXS漏洞
WEB安全漏洞及渗透测试手法:DOMXXS漏洞
WEB安全漏洞及渗透测试手法:SQL注入漏洞
WEB安全漏洞及渗透测试手法:文件下载漏洞
WEB安全漏洞及渗透测试手法:平行权限漏洞
WEB安全漏洞及渗透测试手法:路径遍历漏洞
WEB安全漏洞及渗透测试手法:URL跳转漏洞
WEB安全漏洞及渗透测试手法:短信_邮件_炸弹_暴力破解
漏洞扫描工具:ZAP简介及安装
漏洞扫描工具:ZAP纯自动扫描机制
漏洞扫描工具:ZAP被动扫描-浏览器
漏洞扫描工具:ZAP模糊测试
漏洞扫描工具:ZAP构建CSRF攻击表单
漏洞扫描工具:CSRF Token构建机制
漏洞扫描工具:安全测试报告及脚本机制

15.K8S云原生技术测试应用内容

容器技术与虚拟机区别
手把手教你搭建docker环境
Docker 容器使用
Docker 项目运行镜像制作
Docker容器部署运行测试环境
Kubernetes介绍
高可用Kubernetes集群部署
详解Pods、Service、Namespace等核心概念
核心组件:Master
K8S测试环境搭建
Helm应用管理工具
Kubesphere产品介绍
K8S持续集成流程实现
K8S云原生 CI/CD 工具链
自动化测试技术与K8S融合

你可能感兴趣的:(压力测试,python,单元测试,自动化测试,程序员,职场和发展,功能测试)