3年自动化测试(心路历程),从月薪10k到30k我经历了什么?

news2024/11/23 23:25:46

在这里插入图片描述

前言

2018年的时候,由于项目的原因,开始使用Robot Framework测试框架,正因为有Python的基础所以很快就理解了Robot Framework框架的工作原理,并可以根据项目的需要开发系统关键字。2019年随着移动App越来越流行,乘着换工作的间隙,我开始学习了一个月的appium自动化工具,但工作中用不到后来就没在继续了。后来,我开始针对另一个社区项目编写Web UI自动化测试,前后做了几个月,积累了一些经验,开始尝试设计Web自动化框架,当时主要还是针对Selenium API的封装。2020年从进入测试管理岗位,负责App团队的测试工作,并帮助团队搭建App自动化项目和测试平台。实现了10k~30k的转变

新人入行的尴尬

如果你恰好刚刚进入一家新公司,领导一上来就让你开展自动化测试,作为一名初出茅庐的测试新人,除了手足无措,你只能默默慨叹自己能力尚欠,眼前只会出现一个又一个无从下手的问题:

  •     作为手工测试,如何营造机会和环境解决我们自身提升的瓶颈?(好慌!以为自己手工测试已经登峰造极,不料我慌了……)
  •     如何在最短的时间内能够跨入自动化测试人才的队伍?(我就想想,万一实现了呢……)
  •     如何落地自动化测试呢?(领导一说话,哭泣哭泣怕了怕了……)
  •     又如何在后续继续提升发展呢?(老大不小了,不能一事无成了……

面对以上种种问题,我们究竟该如何面对?又该如何解决?

你可能会这样做:

1.买了好几本编程语言的书,好厚啊!即使好不容易看明白一些,内容太多,怎么记住?

2.好不容易记住了一些,会写了两三个程序,怎么做自动化测试呢?

3.终于可以写一些自动化测试脚本了,企业对自动化测试工程师的要求是什么?怎么才能满足面试的要求呢?

4.自动化测试这个岗位后续的发展如何呢?能长久保鲜吗?......

下面我来分享下我的自动化测试经验及发展方向,或许能帮助你解决很多工作中的迷惑。

一、自动化测试学习路线

关于自动化测试,按语言目前主要可以分为两种:一种是基于Python的自动化,一种是基于Java的自动化,具体用哪种语言,可以根据自己的实际情况而定,归根结底都是为了解决问题而存在的。

1、自动化测试的薪资

先来说一下,大家最关心的问题,也是测试的薪资

第一阶段:手工测试工程师

年薪8-10W

主要技能:测试分析+用例设计+测试执行

第二阶段:自动化测试工程师

年薪15-25W

主要技能:测试脚本研发能力

第三阶段:全栈自动化测试工程师

年薪30-50W

主要技能:所有类型所需自动化测试技术

第四阶段:测试开发工程师

 ↓

年薪50-80W

主要技能:测试框架及测试工具的需求、设计及研发能力

2、自动化测试的学习步骤

1、做好手工测试(熟悉测试基础)

2、学习编程语言(Python/Java)

3、学习Web基础

4、学习自动化测试工具

5、学习自动化测试框架

6、实现自动化测试用例

7、开发自动化测试工具

8、开发自动化测试框架

二、自动化测试如何开始?

1、测试方向:推荐Web自动化

关于"从哪个领域开始自动化测试"这个问题,我推荐从Web UI自动化开始学起,原因主要是:web UI自动化便于入门、便于理解。

2、测试工具:推荐selenium

选择好了自动化测试方向,紧接着就是选择测试工具。这里推荐Selenium,最主要原因在于:开源,用的人非常多。

Selenium通过web driver模拟人为控制浏览器进行自动化操作,目的主要是为了测试自动化web应用程序。

其实自动化就是电脑模拟人的操作,人如何做就让电脑如何做,其重点在于如何定位页面元素?如何对元素进行操作?

3、脚本语言:推荐Python

选好了测试工具,接下来是选择一门合适的脚本语言。

这里建议选择Python,原因:学习难度小,开发周期短。对目前国内大多数测试人员来说,编码经验不足,python是个很好的入门语言。胶水语言,能与C++, Java, COM, and .NET,Object-C 整合。

测试部门要做单元测试,接口测试,因为人员比例的关系,不可能让测试人员同时掌握多门语言,python可以对C/C++, Java, Object-C进行接口封装后,实现单元测试。语法简约,清晰,减少后期维护的难度。

当然,如果你有Java基础,也可以选择Java。

4、自动化核心技术点

确定了Python+Selenium方向后,接下来就是实战。

自动化一般需要四步操作:获取元素,操作元素,获取返回结果,断言(返回结果与期望结果是否一致),最后自动出测试报告。

Selenium提供8种元素定位的方法:id,name,class name,link text,xpath,css selector,tag name ,partial link tex

三、总结Python自动化系统学习方法

1、Python基础

深入学习自动化测试开发的基础。这部分主要包含python基础的语法,数据类型,数据结构,面向对象的python程序设计;

这部分对于学习能力好的人士来说,问题不大,因为都是单一的技术点,跟着一些网上现成的资源,加上自己的每日代码演练,学会应该问题不大;

当然如果要深入理解核心技术点的原理,机制等,需要查阅python官方文档及技术站点,甚至查看python源码,这就需要深入学习的能力了;

但很多初学者看到算法就头疼,其实对于测试开发岗位而言,一般的自动化测试工具对性能要求不高,跟着做几个大项目历练历练,熟练掌握编程技巧,实现业务逻辑才是重点。

2、熟悉Python常见内库

Python的优点之一就是它有非常丰富的自有库和第三方库,这也是Python开发速度快的原因之一。所以要实现业务逻辑,就需要掌握内嵌模块或者第三方模块。

3、掌握自动化测试框架和常见库

举例:

接口测试——Requests、Postman

性能测试——Locust

APP自动化测试——Appium、UIAutomator

Web自动化测试——Selenium

数据库的连接和操作——pymysql库

4、掌握自动化测试工具的设计思路

学习UnitTest、pytest、Page Object的设计模式,学习Jenkins,实现持续集成,快速测试、迭代。

5、实践是检验真理的唯一标准

找一个懂Python自动化测试的老师或朋友,从他们的规划和实践中找到自己的学习路线,多多请教他们,必定会事半功倍。我的学习交流群欢迎大家一起讨论交流,里面也有各种软件测试资料和技术交流

四、跟测试大佬一起学习交流

如果大家想要获得更好的加薪和升职的机会,首先要脚踏实地的认真高效做事,无论老板有没有盯着你,记着这是为“自己工作!”绝不是为老板工作,只有自己的能力提高了,为公司创造了真正的价值,才会有更多更好的机会迎接你!

END绵薄之力

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

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

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础

获取方式 :


 

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

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

相关文章

HTML5超链接和图片基础用法

一、HTML5 超链接(链接) 超链接可以是一个文本,也可以是一幅图像,您可以点击这些内容来跳转到新的页面或新的文档或者当前文档中的某个部分。 当您把鼠标指针移动到网页中的某个链接上时,箭头会变为一只小手。 1.我…

MATLAB | MATLAB配色不够用,近2000款配色来啦

MATLAB绘图配色不够多?很多python\R语言绘图包都会带着好几套配色方案,比如很常见的ggsci绘图包就自带45套离散配色,于是本工具收集了常见55个绘图包中的离散配色,制作出了这个包含了1967套配色的离散配色包slanCL。 基本使用 以…

机器学习(二):线性回归之梯度下降法

文章目录 专栏导读1、梯度下降法原理2、梯度下降法原理代码实现3、sklearn内置模块实现专栏导读 ✍ 作者简介:i阿极,CSDN Python领域新星创作者,专注于分享python领域知识。 ✍ 本文录入于《机器学习案例》,本专栏精选了经典的机器学习算法进行讲解,针对大学生、初级数据分…

CleanMyMac4.13最新免费mac电脑系统优化软件

CleanMyMac免费mac下载版是一款简单实用的PC清洁管理工具,电脑刚装完系统的时候运行速度超级快,随着时间的推移,你会发现越来越慢,经常会反应卡顿,越来越多的垃圾文件占用了你的磁盘空间,各种过时的日志&am…

数组题目总结 -- 前缀和数组

目录 一. 区域和检索 - 数组不可变1. 思路和代码I. 博主的做法:II. 东哥的做法: 2. 总结 二. 二维区域和检索 - 矩阵不可变1. 思路和代码I. 博主的做法:II. 东哥的做法: 2. 总结 一. 区域和检索 - 数组不可变 题目链接&#xff1…

【方法一:二分+字符串哈希 优化】【dp——取不取问题-背包】最长公共子串【上海交通大学考研机试题】

最长公共子串 二分方法字符串哈希的复习字符串哈希 如何理解 二分代码 dp方法字符串str1中以第i个字符为结尾的子串 与字符串str2中以第i个字符为结尾的子串的连续公共子串 二维一维优化 二分方法 由于这个题是要求求子串,而子串是连续的一段,所以用二分…

在微信小程序中怎么使用vant框架?

目录标题 首先介绍什么是vant一、第一步,打开我们小程序项目目录,找到所在的位置,打开终端二、对项目进行初始化三、进行安装依赖1、通过npm安装vant/weapp2、安装miniprogram 四、修改app.json五、修改project.config.json六、然后构建npm 需…

使用Word的一些技巧记录

本文主要用于记录书写毕业论文时,遇到的Word的使用技巧。 设置样式及多级列表 每个学校必然会对论文中的字体、字号、行间距提出要求,设置Word中样式解决此问题。 例如,本校的格式要求为: 正文中的一级标题(章目&a…

【C#】GridControl动态更换DataSource,查询数据异常处理

系列文章 【C#】单号生成器(编号规则、固定字符、流水号、产生业务单号) 本文链接:https://blog.csdn.net/youcheng_ge/article/details/129129787 【C#】日期范围生成器(开始日期、结束日期) 本文链接:h…

适应大、中、小型医院的手术麻醉临床信息管理系统源码

手术麻醉管理系统是一款专门用于医院手术麻醉管理的软件系统,它可以帮助医院和医生更好地管理手术麻醉过程,提高手术麻醉的质量和安全性。本文将介绍手术麻醉管理系统的实现、功能概述、主要功能、系统设置、麻醉管理、术中记录、苏醒室记录、PCA实施及管…

【微服务笔记20】微服务组件之Nacos配置中心基础环境搭建、配置持久化、动态刷新配置

这篇文章,主要介绍微服务组件之Nacos配置中心基础环境搭建、配置持久化、动态刷新配置。 目录 一、搭建Nacos配置中心环境 1.1、Nacos配置中心介绍 1.2、搭建Nacos配置中心客户端 (1)引入依赖 (2)添加配置信息 &…

图书管理系统的开发与设计(论文+源码)_kaic

摘 要 随着科学技术的快速发展,尤其是计算机技术的突飞猛进,计算机技术普及到日常生活、学习生活的方方面面。由此想到学校的相对于传统的图书管理系统,帮助到学校的读者和学校的图书管理员的系统。提升图书管工作人员的效率,满足…

【C++类和对象】类和对象(中):构造函数 {六个默认成员函数;构造函数的概念及特性;编译器自动生成的构造函数;默认构造函数}

一、类的六个默认成员函数 如果一个类中什么成员都没有,简称为空类。 空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动生成以下6个默认成员函数。 默认成员函数:用户没有显式实现,编译器…

Pytorch深度学习笔记(六)用pytorch实现线性回归

目录 1.数据准备 2.设计模型 3.构造损失函数和优化器 4.训练周期(前馈—>反馈—>更新) 课程推荐:05.用PyTorch实现线性回归_哔哩哔哩_bilibili 线性通常是指变量之间保持等比例的关系,从图形上来看,变量之间…

为什么要学习微服务?

文章目录 1.认识微服务1.1微服务由来1.2为什么需要微服务? 2.两种架构2.1.单体架构2.2.分布式架构 3.微服务的特点4.SpringCloud5.总结最后说一句 1.认识微服务 随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为…

类和对象(上篇)

类和对象----上篇 🔆面向过程和面向对象的初步认识🔆类的引入🔆类的定义🔆类的访问限定符及封装访问限定符封装 🔆类的作用域🔆类的实例化🔆类的对象大小的计算如何计算一个类的大小结构体内存对…

15天学习MySQL计划(多表联查)第四天

15天学习MySQL计划(多表联查)第四天 1.多表查询 1.1概述 ​ 指从多张表中查询数据 ​ 在项目开发中,在进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,由于业务之间相互…

【HCIP】Huawei设备下IPV4IPV6共存实验

目录 方法一、普通的GRE将V6基于V4通讯 方法二、6to4的tunnel 方法三、双栈 方法一、普通的GRE将V6基于V4通讯 //方法一和方法二的前提,搭个简单的V4网络就行 [r1]int g0/0/0 [r1-GigabitEthernet0/0/0]ip address 12.1.1.1 24 [r1]router id 1.1.1.1 [r1-Gigabi…

Spring Security 05 密码加密

目录 DelegatingPasswordEncoder 使用 PasswordEncoder 密码加密实战 密码自动升级 实际密码比较是由PasswordEncoder完成的,因此只需要使用PasswordEncoder 不同实现就可以实现不同方式加密。 public interface PasswordEncoder {// 进行明文加密String encod…

如何搭建自己的博客网站(手把手教你搭建免费个人博客网站)

没有前言直接开始正文,搭建一个博客需要服务器,域名,博客程序。 博客程序常用的有wordpress,z-blog,typecho等等,其中wordpress和z-blog最为简单,typecho需要一定的技术含量,这里暂…