5年测试经验,从月薪9k变1w5,进阶自动化测试真就这么香?

news2024/11/28 16:02:02

在这个吃技术的IT行业来说,我之前每天做的是最基础的工作,但是随着时间的消磨,我产生了对自我和岗位价值和意义的困惑。

一是感觉自己在浪费时间,另一个就是做了快2年的测试,感觉每天过得浑浑噩噩,薪资也从不见涨,岗位也一直得不到提升,我身边的许多同事要么升职加薪,要么跳槽去了更好的公司工作,特别觉得我自己碌碌无为。我的薪资也是一直卡在了一w以下,这样苦恼的日子没有持续多久,我就找到了方向,这些过去的成长我也不多说了,我们要的只是一个结果,我的结果就是涨薪了6k。

所以如何从功能测试到自动化测试,达到技术提升的目的,是很多初级测试人必经的一个阶段。作为一个过来人,对自学过程中的困难深有体会。所以我热衷于收集整理资源,记录踩坑到爬坑的过程。希望能把自己所学,实际工作中使用的技术、自学方法、心得及踩过的一些坑,记录下来.

​更希望想自学的你一样,通过我的分享可以少走一些弯路,可以形成一条自己的体系,并应用到实际中。当然,也真心的希望你们升职加薪,或许这才是最实际的吧。

一、学习自动化之前,我们应该先了解自动化测试是什么?

自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。

二、自动化测试的类型

什么可以自动化?实际上很多,但是通常容易误解这个问题。

1.有两个主要类型,功能性和非功能性:

  • 功能性:测试软件的实际业务应用程序。
  • 非功能性:用于测试软件的其余要求(例如性能,安全性,数据存储等)。

性能测试主要是使用测试工具,Loadrunner、Jmeter等,对软件进行压力测试、负载测试、强度测试等等,因为这些无法用手工进行代替,所以必须自动化。 自动化功能测试:包括单元测试、接口测试、UI测试。主要是编写代码、脚本,让软件自动运行,发现缺陷,代替部分的手工测试。但一般只有大的项目才需要进行自动化,中小型项目不推荐使用自动化测试。 目前企业对自动化测试需求越来越多(见下图)。测试人员想要在未来有更好的发展,非常需要通过掌握自动化技术来增加自己有竞争力。

2.自动化测试的学习路径

搞定性能、自动化测试,独当一面!(我目前也是在这个阶段不过是属于经验比较浅的那一批,所以才20k左右)

先说性能测试,行业内是有很多误区和痛点的:

  • 只测不调,无法给出研发和运维人员执行建议
  • 无法定位问题,缺乏清晰的逻辑和数据证明价值
  • 性能测试工具≠性能测试
  • 性能测试技术体系落后(loadrunner),急需拥抱开源软件

如果要搞定这些问题,那么性能测试你得这么去学:

性能测试的概念和流程:常见问题剖析、流行工具、方案设计  性能测试工具:jmeter工具的使用、实战;jmeter多协议、拓展与定制;分布式压测与任务调度;  性能监控:性能监控体系与监控数据采集  性能实施:分布式服务压测,场景设计、场景执行;测试结果关联分析,TPS、响应时间、线程关联分析,压力和资源使用率关联分析  性能分析与报告:jvm调试与系统调试;性能瓶颈分析

性能测试你能到这个程度,15k那是妥妥的了,如果下面自动化测试的学习内容你能够掌握,那就可以直接冲击月薪25k!

搞定Python或者Java语言,建议先从Python入手,先学习Python的基本语法等。

web端的自动化测试:selenium安装、录制、处理;web控件、JavaScript脚本、PO模式;  移动端APP自动化测试:appium使用、录制、元素定位方法;APP控件定位、交互,参数化用例;appium问题定位分析、源码分析、二次封装;  服务端接口自动化测试:接口自动化测试框架request;接口请求构造、断言;json/xml请求、响应断言;headcookie处理、认证体系;

三、自动化测试学习资源配套

  • 接口自动化测试
接口测试一般有两种方式实现测试,一种通过工具实现;另一种通过代码实现,工具更多的做调试,大多数互联网企业做接口测试都是通过代码实现。 工具的测试,一般容易上手,对于“0”基础的人来说,不失为入门的首选,代码量有限,只要熟悉测试流程,会熟练使用工具就能够完成基本的接口测试,但是灵活性差,自动化程度没有代码高,市面上常见可以接口测试工具有postman、Jmeter等。代码的实现,主要是通过python。

  • web自动化测试
web自动化测试主要通过代码实现。比如常见的应用有:Python/Java+selenium。 首先,还是需要熟练使用一门语言,非常熟练的运用至少一门编程语言。 其次,需要学习web测试的流程步骤,因为是基于页面默认人工操作,故而需要对于页面构成需要有一定的基础,比如:HTML+JavaScript+CSS,懂得页面元素的定位,以及常见的定位方式的使用等。如果有接口自动化的基础,那么学习web自动化相对会容易一些。 再者,通过一些相对完整的项目去实战训练,才能够较好的学习并把握web自动化的技能,通过反复的项目训练才能逐步的达到理想的效果。

  • 移动自动化测试

移动自动化测试主要也是通过工具和代码的方式实现。比如常见的有Python/Java+appium。

移动自动化除了哟啊掌握一门编程语言外,还需要学习移动测试的流程步骤,移动基本功能的和web端的基本类型。但是更多的需要测试一些非功能层面的应用,需要学习并使用一些手机模拟器(如:mumu)、第三方工具(如:GT工具)、adb命令、monkey等的使用,学习使用的工具较多,并且需要结合代码一起使用,这就要求学习的知识范围更加广泛,先从工具使用入手。另外:移动端的应用还需要进行异常测试,对于使用过程中出现网络、信息中断等异常场景的设计,对于手机本身使用过程中的场景结合实际项目训练学习。

关于这些测试知识点的掌握肯定是需要自己多花时间和精力的,关于这些学习视频和学习资料你可以去咱们交流群的群文件直接获取,还很多录制的视频教程,大佬的讲解非常详细,能够帮助你快速理解与掌握。

四、自动化测试学习总结

总的来说自动化测试是测试思想的一个延伸,为测试工程师提供了一个“触须”,其行为可以看成一个工具,但是本质上自动化测试还是一种思想。

顺便提一句,狭义上的自动化测试指的就是基于GUI的自动化测试,而单元测试跟API测试,你有想过怎么用手工不借助任何工具去做吗?所以它们天生就属于测试自动化的范畴。

自动化最实在的优势在于——工作好找:有一个测试工程师(并不是本人)发现一个有趣的现象,她申请过的几乎所有测试职位,在招聘时都需要自动化测试经验。但当她开始工作后,就发现这些公司都试图做自动化测试,但是结果大多不怎么地。不过,尽管她参与的都是一些杯具的项目,不过她总能把这些杯具包装成洗具以应对下一次面试。

机会只垂青有准备的人,这是一个靠本事的社会。有时候,你之所以发展得不好,不是因为没有机遇,而是因为你没有准备好,导致机遇与你擦肩而过。如果你想要学习,什么时候开始都不晚,而不是瞻前顾后,你只要用尽全力,剩下的交给时间!

最后感谢每一个认真阅读我文章的人,感谢大家的支持,才让我想要一直分享下去,如果你用得到的话可以直接拿走。

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

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

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

相关文章

Java --- 云尚办公之微信公众号整合

目录 一、整合微信公众号 1.1、公众号菜单管理 1.2、微信授权登录 1.3、消息推送 一、整合微信公众号 1.1、公众号菜单管理 数据库表: CREATE TABLE wechat_menu (id BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT 编号,parent_id BIGINT(20) DEFAULT NULL CO…

day42|动态规划4-背包问题分割等和子集

0-1背包和完全背包搞清楚即可。 0-1背包问题-一维 背包有最大重量的限制,物品有重量有价值,那么在最大背包的限制下,能够得到的最大价值是多少? 暴力解法 每个物品都有放和不放两种状态,那么遍历所有的组合就可以…

谷歌浏览器 | Chrome DevTools系统学习篇- Elements面板(上)

大家好,文接上上回谷歌浏览器 | Chrome DevTools系统学习篇-概述,和上文谷歌浏览器 | Chrome DevTools系统学习篇-Device Mode。所谓“工欲善其事,必先利其器”,我们进一步来熟悉谷歌开发者工具。今天分享的是Elements元素&#x…

我在亚马逊云平台的学习成长之路

前言 今年是亚马逊云科技成立的第16个年头,也是云计算行业诞生的16周年。作为云计算时代的“领头羊”,亚马逊2006年推出了名为Amazon Web Services(AWS)的新产品。AWS背后的想法是提供一个平台,同亚马逊内部使用的平台一样,将其作…

Three.js--》实现3d地月模型展示

目录 项目搭建 初始化three.js基础代码 创建月球模型 添加地球模型 添加模型标签 今天简单实现一个three.js的小Demo,加强自己对three知识的掌握与学习,只有在项目中才能灵活将所学知识运用起来,话不多说直接开始。 项目搭建 本案例还…

230530-论文整理-课题组2

对这些研究有点兴趣颇微。 文章目录 Rethinking Dense Retrieval’s Few-Shot AbilityDecoder-Only or Encoder-Decoder? Interpreting Language Model as a Regularized Encoder-DecoderPLOME: Pre-training with Misspelled Knowledge for Chinese Spelling CorrectionRead…

北邮22信通:复习补充:双向链表的实现

北邮22信通一枚~ 跟随课程进度每周更新数据结构与算法的代码和文章 持续关注作者 解锁更多邮苑信通专属代码~ 获取更多文章 请访问专栏: 北邮22信通_青山如墨雨如画的博客-CSDN博客 **说明** 最近复习看到书后有双向链表的题目,编出来供大家…

Mybatis-Plus 进阶开发-自定义乐观锁插件

文章目录 前言0. OptimisticLockerInnerInterceptor 介绍1. Mybatis-plus 实现乐观锁的原理2. 自定义乐观锁插件1. 创建自定义乐观锁插件2. 配置自定义乐观锁插件 3. 总结 👏作者简介:大家好,我是冰点,从业11年,目前在…

jmeter 性能测试工具的使用(Web性能测试)

1、下载 2023Jmeter性能测试项目实战教程,十年测试大佬手把手教你做性能!_哔哩哔哩_bilibili2023Jmeter性能测试项目实战教程,十年测试大佬手把手教你做性能!共计11条视频,包括:1.什么是性能测试以及性能测…

爬虫进阶-反爬破解1(反爬技术简介、HTTP网络基础知识、搭建代理服务)

目录 一、反爬技术简介 二、HTTP网络基础知识 三、搭建代理服务 一、反爬技术简介 (一)破解Web端反爬技术 1.常见的反爬策略方向:同一时间的请求数量、请求的身份信息、浏览器和爬虫的区别 2.浏览器和爬虫的不同:异步数据加…

Maui初体验

创建Maui应用程序 使用vs创建项目,选择maui模板。 生成即可。 体验Font. 下载字体,放在Font文件夹下,或者子文件夹。 将 文件的生成操作改成MauiFont. 注册字体 如果在Font的子文件夹下,则需要编辑项目,修改ItemGrou…

SeaFormer实战:使用SeaFormer实现图像分类任务(二)

文章目录 训练部分导入项目使用的库设置随机因子设置全局参数图像预处理与增强读取数据设置Loss设置模型设置优化器和学习率调整算法设置混合精度,DP多卡,EMA定义训练和验证函数训练函数验证函数调用训练和验证方法 运行以及结果查看测试热力图可视化展示…

Ansible任务控制与Ansible-Playbook

YAML特点 YAML 文件以 # 为注释符 YAML 文件以 .yml或者.yaml 结尾 YAML 文件以 --- 开始 , 以 ... 结束,但开始和结束标志都是可选的 基本语法 大小写敏感 使用缩进表示层级关系 缩进时是使用Tab键还是使用空格- -定要达到统- ,建议使用空格…

SpringMVC第七阶段:SpringMVC的增删改查(02)

1、图书列表功能的实现 需要导入JSTL标签库的jar包: druid-1.1.9.jar junit_4.12.jar mysql-connector-java-5.1.37-bin.jar org.hamcrest.core_1.3.0.jar spring-aop-5.2.5.RELEASE.jar spring-beans-5.2.5.RELEASE.jar spring-context-5.2.5.RELEASE.jar spring-core-5.2.5…

操作系统期末复习——课时八——进程同步(二)

1、信号量 信号量机制是一种功能较强的机制,可用来解决互斥和同步问题,它只能被两个标准的原语wait(S)(P操作)和signal(S)(V操作 )访问。 注意:原语是一种特殊的程序段,其执行只能一…

HNU-电子测试平台与工具2-I2C

FPGA I2C接口实现 计科210X wolf 202108010XXX 报告内容将包括: (1)如何描述组合电路、时序电路、状态机?如何编写TestBench? (2)ModelSim工具的使用; (3)EEPROM读写代码分析; (4)实验总结; 注意:其中(1)将在自定FSM中以实例的方式呈现,(2)将在(3)中提…

Java学习笔记22——异常

异常 异常异常的概述JVM处理异常的默认方案异常处理Throwable的成员方法编译时异常和运行时异常的区别异常处理throws自定义异常 异常 异常的概述 Throwable是所有异常和错误的超类 error表示严重的问题,合理的程序不应该试图捕获 Exception表示合理的应用想要捕…

chatgpt赋能python:Python中的{:5d}是什么?

Python中的{:5d}是什么? 在Python中,{:5d}是一种格式化字符串的方法,用于将整数格式化为一定宽度的字符串,其中{}代表占位符,5代表宽度,d代表将数据格式化为十进制整数。 简而言之,{:5d}的作用…

【pytest】tep环境变量、fixtures、用例三者之间的关系

tep是一款测试工具,在pytest测试框架基础上集成了第三方包,提供项目脚手架,帮助以写Python代码方式,快速实现自动化项目落地。 在tep项目中,自动化测试用例都是放到tests目录下的,每个.py文件相互独立&…

做接口测试需要哪些技能?一篇文章教你如何学会Python接口自动化测试

目录 1、什么是接口测试? 2、接口测试需要会什么? 3、如何学这些技能? 4、如何获取接口相关信息? 5、如何进行进行接口测试? 6、自动化接口测试 7、其他 1、什么是接口测试? 定义:测试系…