如何从手工测试进阶自动化测试?阿里10年测开经验分享...

news2024/10/2 0:08:27

随着行业的竞争加剧,互联网产品迭代速度越来越快,QA 与测试工程师都需要在越来越短的测试周期内充分保证质量。可是,App 测试面临着很多挑战,比如多端发布、多版本发布、多机型发布等等,导致了手工测试很难完全胜任。因此,自动化测试、持续测试就成为了每个开发团队的必要需求。

而现实是,很多团队在实施自动化测试的过程中,并未取得良好的质量效果,这主要是因为学习自动化测试有两大难点:

  1. 自动化测试本身拥有一定的技术门槛;

  1. 最大的难点是需要大量的实战经验。

据我了解,不少初中级测试工程师在跨过基础门槛,比如掌握了基本的编程与自动化测试框架 API 后,往往会认为自己已经掌握了自动化测试,便开始投入到实际开发中,却又掉进各种各样的技术债和经验债里,痛苦不堪。比如,遇到框架稳定性与适用范围、用例稳定性、用例可复用性等问题。

工作十余年,我先后任职于阿里巴巴、百度、雪球等公司,担任过测试工程师、测试开发工程师和测试架构师等。后来,我成立了 TesterHome 测试社区,与大家分享 Appium 相关的技术。后又不满足 Appium 的功能,在它的基础之上,开发了新的智能遍历测试工具 AppCrawler。结合过往工作与面试经验,我敢肯定的是,自动化测试必然是每个测试工程师进阶必备技能。今天,静静姐就给大家分享一下,自动化测试的学习路线,希望可以帮助到初学的朋友。


一、做自动化测试,必须会一门语言:

· 第一步:先学python ------- python不过关,别谈自动化。

如果只学习Robot Framwork,通过这个来做自动化,别以为不要学习Selenium跟python了, 因为Robot Framework中的关键字可能不够用,不能满足你们的需求,那么我们需要自定义关键字,这个时候就必须自己得通过python+selenium来编写了。

二、掌握一些前端的知识:

作为一个自动化测试攻城狮,总是需要做很多的元素定位,那么元素定位,我们急需要学习前端的一些基础知识。

三、数据库的学习:

数据库是这个行业每一个从业者都应该学习的,不管是前端、后台、还是测试、项目经理、产品经理、运维人员都需要很明确的熟悉数据库相关操作,作为一名测试,更应该熟悉数据库的增删改查等命令。

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

如果你也有类似的困惑,那么我整理的视频资源和文档(文末已打包好)会是你的良师益友,或许可以给你带来一些实际性的帮助与突破。

四、接下来就是具体学习自动化测试的内容了

自动化构成: 自动化测试在当前市场上应用非常广泛,主流有接口自动化测试UI自动化测试。在此基础上,加上持续集成就能实现全自动化测试。

接下来我将按照自动化的这三个主要构成来给大家详细介绍自动化:

一、接口自动化测试
二、UI自动化测试
三、持续集成

1、接口自动化测试

目前市场上大部分项目,都是前后端分离的项目,由此产生了大量的接口。而接口自动化测试,主要是对接口进行测试。 那么,咱们应该怎么进行接口自动化测试呢?这里这几个知识点和工具,必须掌握。

1.1、HTTP和HTTPS协议 在主流程的接口测试中,又有大量接口是基于HTTP协议实现,数据安全用HTTPS协议进行保障,所以HTTP和HTTPS协议必须掌握。 1.2、接口文档 在实际工作中,接口的信息的载体除了代码,那就是接口文档了(开发人员提供),了解接口文档的结构、内容和规范可以帮助我们深度参与接口测试以及接口自动化测试。

1.3、接口测试工具Jmeter和Postman meter是近几年兴起的接口测试工具,它最大的特点就是免费开源,容易学习。 Jmeter官网:https://jmeter.apache.org/index.html

Postman工具也很强大,在实际的项目应用中,几乎每个开发都会使用Postman来调试接口请求。 Postman主界面

官网文档

1.4、Mock测试 在自动化测试中,不是所有的功能都适合自动化测试,对于一些难以处理的测试点,我们不得不使用Mock技术来模拟。

  • 登录和注册接口中,密码的Mock

  • Mock支付环境

  • Mock支付密码

  • Mock验证码(图片验证码、滑块验证码、人脸识别等、短信验证码等等)

1.5、总结 掌握这几个知识点后,对于HTTP协议的接口自动化测试,完全可以掌握和应用;甚至还可以进行小规模的接口性能测试。

2、UI自动化测试

UI自动化测试的成本比接口测试要高,主要原因不是技术实现难度高,而是因为UI是对接用户的终端界面,它是调整最频繁,改动最剧烈的部分,所以维护成本高。 那么我们不需要进行UI自动化测试了吗?恰恰相反,对一些大型项目,其功能是处于不断地迭代地,虽然界面在调整,但是由于项目周期长,在开发和测试过程中,需要频繁使用自动化测试的脚本进行回归测试,可以提高自动化测试的利用率,提高工作效率,降低工作成本。 而且,UI自动化测试中,有一种很关键的思想,叫做“关键字驱动”测试,专门用来解决UI自动化测试脚本开发和维护的问题。 那么怎么学习UI自动化测试呢? 在这里,我们可以先学习Web自动化测试,再学习App自动化测试。

2.1、Web自动化测试

这里推荐Selenium工具和Robot framework 推荐理由:Selenium和Robot framework是世界上排名前十的自动化测试工具(不区分UI自动化和接口自动化) 如下图所示2019年最受欢迎自动化测试工具:(Selenium高居榜首)

2.2、 Selenium Selenium主要是进行Web自动化测试,同时在手机APP自动化测试中,有一些测试框架也是基于Selenium来实现。如果要进行Web自动化测试,学习selenium是不二之选。 优点

  • 跨平台、跨语言

  • 支持多种浏览器

  • 支持移动端测试

  • 插件多,扩展性强

缺点

  • 不能直接生成测试报告

  • 不能识别动态图片

掌握Selenium后,那么就掌握了主流的Web自动化测试。 学习Selenium的方法

  • 先掌握手工功能测试,理解测试的功能业务

  • 再学习HTML、CSS、JS这三大知识

  • 第三学习Selenium测试框架

  • 最后学习PO分层管理的思想

2.3、 Robot framework Robot Framework是python语言编写的功能自动化测试工具。具有良好的扩展性,支持关键字驱动,支持同时测试多种类型的客户端或者接口,还可以进行分布式测试。 优点

  • 关键字驱动测试

  • 可以重复利用

  • 易扩展

  • 支持HTML测试报告

  • 有庞大的测试库提供支撑(支持web、手机、windows客户端、数据库、HTTP测试等)

缺点

  • 界面操作共性问题:用例庞大时会很卡

  • 有一些BUG,例如导入测试库时会卡死

学会了Robot Framework的使用,那么就掌握了关键字驱动技术。 关键字驱动学习Robotframework的方法 2.4 总结 Selenium和Robot framekwork 两者如果都能够掌握,那么无论是主流的Web自动化测试,还是其他UI的自动化测试,都能够有自己的心得,并且在市场中占有一席地位。

3、App自动化测试

3.1 、应该选择哪款工具? 我们先看一组数据(主流):

支持的功能数据(TesterHome得到)

由上面两个图,可以发现,Appium无论是在市场利用率,还是在功能上,都比其他工具要强。 而且,Appium不仅支持安卓还支持iOS,所以在这里,我们应该选择学习Appium最能满足市场的需要。 3.2 、Appium学习方法 官网:http://appium.io/

中文学习手册::https://www.kancloud.cn/testerhome/appium_docs_cn/2001595

4、持续集成

4.1、什么叫持续集成?

我们假想一个场景,现在一个测试工程师把自动化脚本都编写好了,但是这位大佬还是需要每天上班点击“开始“运行脚本,而且当开发提交新的版本时,也需要重新运行自动化脚本。

那么可以不可以让这个自动化脚本,自动的运行,并且在开发每次发布版本之后,自动的执行呢?当然可以,这就是持续集成。 要学习持续集成,我们首先推荐jenkins。 4.2、什么是持续集成工具Jenkins? Jenkins工具是JAVA编写的开源工具,无论是扩展性,还是实用性,都非常好,很多中小型公司都是用jenkins进行持续集成,一些大型公司也是在jenkins的基础上进行的二次开发。

4.3、如何学习Jenkins

  • 理解CI和CD的概念 CI:持续集成(把多个开发编写的代码,集成在代码仓库,自动进行单元测试,并返回结果) CD:持续交付(把集成的代码,自动的构建、部署、测试、发布,并返回各个阶段的结果)

  • 要实现这些过程,我们需要拆分学习

  • 集成代码

  • 单元测试

  • 构建代码

  • 部署代码

  • 测试代码

  • 发布代码

  • 发送测试结果

  • 使用Jenkins整合这些过程

要想把持续集成学好,光靠Jenkins这个工具其实还远远不够,我们甚至需要深入到架构设计、开发、测试、运维才能很好的进行。

五、总结

其实自动化测试是一个非常广泛的技术,要想深入精通到更行各业,需要至少5年的钻研才能精通,熟练到一定级别,甚至做上技术总监也不是没有可能。 对于测试来讲,测试的工作其实相对是轻松,技术难度也不是特别高,所以大家在做测试期间,一定要持续学习,持续集成,才能进步,实现自我的价值。

如果文章对你有帮助,记得点赞,收藏,加关注。会不定期分享一些干货哦......

绵薄之力【资源分享】

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

下方这份完整的软件测试视频学习教程已经上传CSDN官方认证的二维码,朋友们如果需要可以自行免费领取 【保证100%免费】

这些资料,对于想进阶【自动化测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等配套学习资源免费分享~

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

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

相关文章

使用yolov5和强化学习训练一个AI智能欢乐斗地主(一)

这里写自定义目录标题项目介绍项目过程介绍训练yolov5目标检测斗地主收集数据集yolov5调参项目介绍 你好! 欢迎阅读我的文章,本章将介绍,如何使用yolov5和强化学习训练一个AI斗地主,本项目将分为三个部分,其中包含&am…

一篇搞懂Mock测试

1. 什么是Mock测试 mock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象/数据/场景,用一个虚拟的对象来创建以便测试的测试方法。 2. Mock测试常见场景 无法控制第三方系统接口的返回,返回的数据不满足要求依赖的接口还未开…

DEM数据下载——以地理空间数据云为例

数字高程模型(Digital Elevation Model)是进行地形分析的重要基础,诸如坡度、坡向及水文分析等都在此基础上进行。今天,我们一起来聊一聊一种DEM数据常见下载方式。按照惯例,先将网址列出:https://www.gscloud.cn/home…

2023年美赛 MCM B题 重新构想马赛马拉岛

背景肯尼亚的野生动物保护区最初主要是为了保护野生动物和其他自然资源。肯尼亚议会于2013 年通过了《野生动物保护和管理法》,以提供更公平的资源共享,并允许进行替代的、以社 区为基础的管理工作[1].此后,肯尼亚增加了修正案,以…

有特别有创意的网站设计案例

有人说 UI 设计师集艺术性与科学性于一身,不仅需要对工具的使用熟练,更需要对美术艺术有一定的基础了解。如果想要成为优秀的 UI 设计师是一个需要磨砺的过程,需要不断的学习和积累,多看多练多感受,其中对于优质的设计…

力扣53.最大子数组和

文章目录力扣53.最大子数组和题目描述贪心动态规划力扣53.最大子数组和 题目描述 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组 是数组中的一个连续部分。 示例…

4、HAL库SPI数据收发

1、通过SPI轮询的方式实现数据收发 1.1、通过CubeMx配置SPI轮询的方式实现数据收发 SPI模式 CPOL CPHA 空闲时 SCK 时钟 采样时刻 0 0 0 低电平 奇数边沿(W25Qxx支持) 1 0 1 低电平 偶数边沿 2 1 0 高电平 奇数边沿 3 1 1 高电平 偶数边沿(W25Qxx支持)当前使用 生成代码工程 …

[计算机操作系统(慕课版)]第一章 操作系统引论(学习笔记)

操作系统(Operating System,OS)是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充。操作系统的主要作用: 管理硬件设备,提高他们的利用率和系统吞吐量 利用率:使硬件充分忙碌系统吞吐量…

Python|每日一练|树|深度优先搜索|数组|二分查找|链表|双指针|单选记录:填充每个节点的下一个右侧节点指针|搜索插入位置|旋转链表

1、填充每个节点的下一个右侧节点指针(树,深度优先搜索) 给定一个 完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下: struct Node { int val; Node *left; Node *rig…

同一个整型常量怎样在不同进制间之间转换?

整型常量可以分别用二进制、八进制、十进制和十六进制表示,不同的进制并不影响数据本身的大小,同一个整型常量可以在不同进制之间转换,具体转换方式如下。1.十进制和二进制之间的转换(1)十进制转二进制。十进制转换成二进制就是一个除以2取余…

INDEMIND:2023,服务机器人能否“狂飙”?

过去一年,服务机器人的发展并不顺利。头部厂商的变动,市场增长率的持续下降不由得让人质疑,2023年,服务机器人还能“狂飙”吗?短期的市场波动,并不能代表行业的未来走向,而行业的两面矛盾现象&a…

珞珈1号-数据预处理流程

珞珈1号-数据预处理流程 1、重投影Albers 2、重采样 3、辐射校正–将INT32转化为浮点型真实数据 4、统一量纲(eg:和NPP同一量纲) 5、去噪 1、重投影Albers 参考这篇文章 2、重采样 输入想要重采样的数据,其中X和Y是你想要的大小,125即是重采样至125m …

kaggle竞赛-宠物受欢迎程度(赛题讲解与数据分析)

比赛官网地址 赛题介绍 petfinder是马来西亚领先的动物福利平台宠物网站地址 该网站使用可爱指数来排名宠物照片。它分析了图片组成和其他因素,并与数千个宠物档案的表现进行了比较。 在这场比赛中,你将分析原始图像和元数据来预测宠物照片的“Pawp…

Word控件Spire.Doc 【Table】教程(16):C#/VB.NET:在 Word 表格中插入或提取图像

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具,专注于创建、编辑、转…

JMM(Java内存模型)及volatile关键字

JMM(Java内存模型 Java Memory Model,简称JMM)JMM(Java内存模型 Java Memory Model,简称JMM)本身是一种抽象的概念并不真实存在,它描述的是一组规则或者规范,通过这组规范定义了程序中各个变量(包括实例字段&#xff0…

干货分享|数据可视化报表制作技巧

脑中想得再好,也要看最终的效果呈现。但偏偏有些用户分析思维不差,就是数据分析报表的制作拖了后腿,导致始终无法完美呈现数据可视化分析效果。本文将总结奥威BI软件上的常用的数据可视化报表制作技巧,供大家随时查阅。 BI数据可…

搭建Hexo博客-第1章-Git和GitHub以及Coding的简单用法

搭建Hexo博客-第1章-Git和GitHub以及Coding的简单用法 搭建Hexo博客-第1章-Git和GitHub以及Coding的简单用法 Coding GitHub Hexo Markdown 搭建博客 大家好,这是我第一次写博客。使用 GitHub Hexo 创建最基本的博客很容易,网上有很多现成的教程。…

SCI论文写作神器集合 —— 超级实用

特此声明: 本文拷贝多处别人的内容,并给出具体的链接 本文所提到的软件都为博主在文章撰写过程中发掘的比较实用的工具,旨在帮助小伙伴们更快更有效率的完成文章发表,如果其他好用的工具,欢迎各位交流~~ 一、文献搜索神…

XCP实战系列介绍14-基于Vector_Davinci工具的XCP配置介绍(三)

本文框架 1.概述2. 其他模块配置2.1 XCP初始化3. 手工代码部分3.1 周期函数添加3.2 DAQ Event调用3.3 XCP模块本身代码3.4 标定量的添加1.概述 在对XCP的配置部分介绍中我们计划分别对通讯部分配置、XCP模块本身配置及其他相关模块配置三篇进行介绍,在前两篇我们介绍了XCP配置…

SAP PP工单确认完成(CNF)状态取消方法

这SAP PP工单确认完成(CNF)状态取消方法SAP PP工单确认完成(CNF)状态取消方法SAP PP工单确认完成(CNF)状态取消方法 工单完工后取消了其中的一个报工,然后无法再报工 此时再报工,系…