5年碌碌无为,我终于从功能测试转到了自动化测试,薪资暴涨8K......

news2025/3/14 10:48:13

目录:导读

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


前言

自动化测试现已悄然成为测试工程师必备技能,今天,我们就来聊一聊手工测试如何进阶自动化测试。

Python自动化测试:https://www.bilibili.com/video/BV16G411x76E/

接口自动化测试方向:Python+requests+pytest+yaml+alluer+Jenkins;
web自动化测试方向:Python+selenium4+pytest+POM+allure+Jenkins;
app自动化测试方向:Python+appium+POM+pytest+allure+Jenkins;

为什么要学习自动化测试?

测试人员的职业发展路线,无非就是两条,技术路线和管理路线,技术路线一般就是功能测试(60%)–> 自动化测试(25%)–> 测试开发(5%)–> 测试架构师 / 业务专家 / 测试专家(5%),管理路线一般就是测试工程师(60%)–> 测试组长(25%)–> 测试经理(10%)–> 测试总监(5%)。

如果你已经从事测试工作两三年时间了,或者开发转测试,又或者上来就要包装三年及以上工作经验,那么掌握自动化测试技能必不可少。

对于还没有入行的小伙伴或者刚毕业的同学,更多的是关注测试基础技能的掌握,即使不会自动化也是可以找到一份初级测试岗位的工作,会编程和自动化更多的是作为加分项,特别是今年找工作比往年来说更难了,行业越来越卷,测试的招聘要求中几乎都会出现自动化测试的字眼,因此会自动化测试也是自身的核心竞争力。

又有人说,我想走管理路线,是不是就不需要学习自动化测试呢?
虽然说,管理岗位更多的是对项目整体的 把控,需要有较强的沟通组织协调能力,但并不意味着就可以不懂技术,很难想象一个不懂技术的管理者如何让手下信服,遇到一个自动化项目或测试平台项目需要开发时,如何合理科学地给下属分配任务?

在我看来,即使你已经决定走管理路线,也不要过早的抛弃技术,应该要有足够的技术积累,毕竟测试是一个技术岗位,而且在互联网行业,大家极力推崇技术,可以说是技术为王的行业,一个不懂技术的管理者恐怕很难服众。

那么如何学习自动化测试?

1、学习一门编程语言
2、了解自动化测试的思想
3、主攻自动化测试,学习自动化测试工具库,包括接口自动化、Web 自动化、App 自动化
4、会独立搭建自动化测试框架

学习一门编程语言

学习一门编程语是打开技术大门的第一步,也是功能测试进阶自动化测试甚至测试开发的基本准入门槛。对于测试行业来说,绝大多数从业者会选择两门语言来学习,就是 Python 和 Java。(目前大多数企业主流的还是用python来做的自动化)

自动化测试的思想

在学习自动化之前,需要先了解自动化测试的思想,因为技术是为业务服务的,抛开业务谈技术就是耍流氓,只有了解其思想,才能更好地实施落地。哪些场景适合做自动化测试、哪些场景不适合做自动化测试,以及自动化测试的原则等。

自动化测试就是把手工测试的一系列动作转化为机器自动执行。

例如:要实现在电商网站上搜索商品,需要有以下步骤:打开网站(打开电商网站)–> 定位元素(定位到搜索输入框)–> 操作元素(在搜索框中输入衬衫,点击搜索按钮)–> 模拟页面动作(下拉、上滑)–> 断言结果(预期结果与实际结果比对,判断是否通过测试)–> 生成测试报告。

适合自动化测试的场景如:需求不会频繁变动、UI 比较稳定、项目周期较长、大量的回归测试任务、冒烟测试,针对本次迭代的核心功能进行冒烟测试,不适合自动化测试的场景如:交互性太强、视频音频播放器等。

自动化测原则,比如:一个 case 完成一个功能点、一个脚本是一个完成的场景、脚本之间独立,不能有依赖、设置合适的检查点、设计良好的框架。

主攻自动化测试

掌握编程语言以及了解自动化测试思想之后,便是开始主攻自动化测试了,总共可分为三种,接口、Web、App。

推荐初学者从接口自动化开始学习,相比于 UI 自动化,接口自动化测试收益更大、更容易实现、维护成本更低,有更高的投入产出比,因此是公司开展自动化测试的首选。

企业中做自动化测试的目的主要是针对那些已经成熟并且变化很少的功能模块进行回归测试。

比如 Python 技术栈会使用 Requests、Pytest 等框架结合公司业务实现一套覆盖公司系统绝大部分接口的自动化测试框架,并集成到 Jenkins,每天定时执行,将测试报告发送到邮箱。

这样做的目的主要是用来监控哪些接口服务挂了,以及版本迭代过程中上了新功能可能影响关联到其他接口导致异常发生,所以上线前要把系统或者模块的接口自动跑一遍,以便于测试人员第一时间发现问题,并交给开发人员进行修复解决,减少线上 Bug 率。

这个阶段需要学习自动化测试相关工具库,比如 Python 技术栈会有 Requests、Selenium、Appium 以及单元测试框架 Unittest、Pytest。Java 技术栈会有 HttpClient、Selenium、Appium 以及单元测试框架 TestNG 等。

自动化测试框架

学习了上述相关的自动化测试工具库,学会使用线性代码做自动化测试,但是线性代码存在很多缺陷。
比如:测试的输入和断言都是捆绑在脚本中,易读性差;
无共享或重用脚本、可复用性低;线性脚本修改代价大,维护成本高,不便于后期优化等。

真正在企业中做自动化不会是这种线性代码,而是有一套较好的自动化测试框架。

因此在企业中,自动化测试工程师又可分为两种,一种是自动化测试用例工程师,日常工作主要是维护这套框架,编写测试用例脚本,以及将新增的用例维护到自动化中,技术含量不高,但比单纯使用测试工具的测试好一些;

另一种是开发自动化测试框架,衡量这套框架质量的好坏很大程度就取决于它的易用性和可复用性,易用性就是让组内不懂代码的测试也能维护自动化用例,让技术能力不强的人转变为自动化测试用例工程师,可复用性就是有较好的共享重用脚本,新的功能加进来之后,这套代码的改动很小,有较强的兼容性。

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

不经历风雨,怎能见彩虹;不承受磨难,怎能拥有坚强。让失败成为你成功的垫脚石,让努力成为你奋斗的动力,走出属于自己的路,创造属于自己的辉煌!

只有勇敢面对挑战,才能超越自我;只有不断努力奋斗,才能创造奇迹。相信自己的潜力,坚持不懈地追求目标,你将成为那个无法被击垮的人!

只要心中有梦想,就不要停下前行的步伐。即使路途坎坷,也要坚定信念,勇往直前。因为只有奋斗,才能创造出更美好的人生!

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

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

相关文章

JavaEE企业级应用开发教程——第十二章 Spring MVC数据绑定和相应(黑马程序员第二版)(SSM)

第十二章 Spring MVC数据绑定和相应 12.1 数据绑定 在 Spring MVC 中,当接收到客户端的请求时,会根据请求参数和请求头等信息,将参数以特定的方式转换并绑定到处理器的形参中,这个过程称为数据绑定。数据绑定的流程大致如下&…

Golang每日一练(leetDay0035) 二叉树专题(4)

目录 103. 二叉树的锯齿形层序遍历 Binary Tree Zigzag Level Order Traversal 🌟🌟 104. 二叉树的最大深度 Maximum Depth of Binary-tree] 🌟 105. 从前序与中序遍历序列构造二叉树 Construct-binary-tree-from-preorder-and-inorder-…

MySQL8.0的安装和配置

🎉🎉🎉点进来你就是我的人了 博主主页:🙈🙈🙈戳一戳,欢迎大佬指点!人生格言:当你的才华撑不起你的野心的时候,你就应该静下心来学习! 欢迎志同道合的朋友一起加油喔🦾&am…

结合实际谈谈个人对代码优化的感想以及java优化

前言 本来想写一篇结合在实际工作中,自己去优化java代码的文章,用于记录便于复习提升自己的;但是在回想起自己在实际工作中诸多因素导致存在的问题(仅针对我个人),个人总结以及去证实了,所悟&am…

16. unity粒子特效---旋转 + 花瓣飞舞案例

1. 旋转模块(Rotation over Lifetime) 在主模块中也可以设置粒子的旋转角度,通过参数Start Rotation,不过这个参数设置的是粒子刚生成时的角度,后面不会发生变化。 使用旋转模块可以通过参数Angular Velocity进行设置…

十一、删除市场活动

功能需求 ①用户在市场活动主页面,选择要删除的市场活动,点击"删除"按钮,弹出确认窗口; ②用户点击"确定"按钮,完成删除市场活动的功能. ③*每次至少删除一条市场活动 ④*可以批量删除市场活动 ⑤*删除成功之后,刷新市场活动列表,显示第一页数据,保持…

如何规划自己的大一生活

大家好,我是帅地,在帅地的训练营里,有不少大一打二大学员,不少学员在大一就会数据结构,算法等学了,还参加了一些实验室项目,这主要得益于他们规划等早。 帅地在接下来的时间里,会写…

心累,网站被盗刷 1.7T 流量

小伙伴们大家好,我是阿秀。前几天我在上班摸鱼的时候忽然收到阿里云发来的邮件说账户欠费,服务停止同时也有人在群里说网站图片看不到了。我当时第一反应就是 OSS 套餐超了,因为以前也收到过类似的邮件,我去年双十一的时候买了一个…

JUC高级八-Java对象内存布局和对象头

JUC高级八-Java对象内存布局和对象头 1. 对象的内存布局 在HotSpot虚拟机里,对象在堆内存中的存储布局可以划分为三个部分:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)(保证8个字节的倍数&#xff…

【java】泛型编程

文章目录泛型类泛型与多态泛型方法泛型界限设置上界设置下界类型擦除函数式接口Supplier供给型函数式接口Consumer消费型函数式接口Function函数型函数式接口Predicate断言型函数式接口判空包装泛型类 package com.test.entity; public class Score<T> {String name;Str…

一文搞懂Session和JWT登录认证

前言 目前在开发的小组结课项目中用到了JWT认证&#xff0c;简单分享一下&#xff0c;并看看与Session认证的异同。 登录认证&#xff08;Authentication&#xff09;的概念非常简单&#xff0c;就是通过一定手段对用户的身份进行确认。 我们都知道 HTTP 是无状态的&#xf…

模型实战(9)之YOLOv8预测模块predictor详解、预测视频后同时保存结果视频+目标帧

YOLOv8预测模块predictor详解、预测视频后同时保存结果视频+目标帧 Ultralytics YOLOv8Ultralytics YOLOv8是最新版本的YOLO对象检测和图像分割模型。 作为一种尖端的、最先进的(SOTA)模型,YOLOv8建立在以前版本的成功基础上,引入了新的功能和改进,以增强性能、灵活性和效率…

高速Serdes技术(FPGA领域应用)

目录引入一、Serdes&#xff08;概念-历程&#xff09;1、概念2、技术现状3、发展历程二、Serdes结构三、在FPGA领域中的运用四、Serdes跟Lvds的关系五、Xilinx 有关 serdes的文档六、参考文献引入 回顾接口技术发展历史&#xff0c;其实数据的传输最开始是低速的串行接口&…

202307读书笔记|《双向奔赴的爱,才是人间理想》——爱是双向奔赴,共同成长

《双向奔赴的爱&#xff0c;才是人间理想》作者燕七&#xff0c;读作者的第一本书是《鲸鱼安慰&#x1f433;了大海》可太美了&#xff0c;这次订阅通知这本&#xff0c;立马加入了书架&#xff0c;跑完步读了起来。没有第一本惊艳&#xff0c;但也不错&#xff0c;值得一读&am…

JavaScript对象的属性描述符(Property Descriptor)介绍

JavaScript对象的属性描述符&#xff08;Property Descriptor&#xff09;介绍 JavaScript 中的对象&#xff08;Object&#xff09;是一个包含相关数据和方法的集合&#xff0c;通常由一些变量和函数组成&#xff0c;我们称之为对象里面的属性&#xff08;property&#xff0…

java springboot工程RESTful入门案例 认识请求类型 参数

我们先创建一个java的springboot工程 然后 我们先用老方式试一下 在启动类的同级创建目录controller 下面创建一个类 叫 UserController 参考代码如下 package com.example.threshold.controller;import org.springframework.web.bind.annotation.GetMapping; import org.spri…

负载均衡与DNS轮询

负载均衡 load balance 负载均衡&#xff08;Load Balancing&#xff09;是一种将工作负载&#xff08;Workload&#xff09;分摊到多个计算资源&#xff08;服务器、存储设备、网络设备等&#xff09;上的技术&#xff0c;目的是提高系统的可用性、性能和扩展性。负载均衡可以…

序列化和反序列化二叉树 -----前序,中序,后序,层序

目录 一.序列化和反序列化 1.什么是序列化和反序列化 二.前序遍历 1.序列化 1.问题分析 2.代码实现 2.反序列化 1.问题分析 2.代码实现 三.后序遍历 1.序列化 1.思路分析 2.代码实现 2.反序列化 1.思路分析 2.代码实现 四.中序遍历 1.序列化 1.思路分析 2.代…

SpringBoot 使用Prometheus采集自定义指标数据

一、我们需要什么指标 对于DDD、TDD等&#xff0c;大家比较熟悉了&#xff0c;但是对于MDD可能就比较陌生了。MDD是Metrics-Driven Development的缩写&#xff0c;主张开发过程由指标驱动&#xff0c;通过实用指标来驱动快速、精确和细粒度的软件迭代。MDD可使所有可以测量的东…

RPC调用框架简单介绍

一.Thrift Apache Doris目前使用的RPC调度框架。Thrift是一款基于CS&#xff08;client -server&#xff09;架构的RPC通信框架&#xff0c;开发人员可以根据定义Thrift的IDL(interface decription language)文件来定义数据结构和服务接口&#xff0c;灵活性高&#xff0c;支持…