Python自动化测试 史上最全的进阶教程

news/2024/10/29 1:30:07/

Python自动化测试就是把以前人为测试转化为机器测试的一种过程。自动化测试是一种比手工测试更快获得故障反馈的方法。

随着时代的变革,也许在未来测试这个职位的需求会越来越少甚至消失,但是每一个组织,每一个客户对软件质量的要求是永远不会消失的。我们需要做的就是打造属于自己的核心竞争力,与时代同行。

自动化测试是一种质量保障的方式,最重要的还是以做好一款高质量产品为前提。测试工作很多时候就是在不断平衡质量、效率、驱动业务这三者之间的比例和深度。根据不同的业务阶段、不同的目标、当前的关键事件驱动,在质量、效率、驱动业务上不断地调整策略和战术。

警告!
在学习自动化测试之前,首先要了解自动化测试最常见的11大误区:

一、自动化测试的认知误区

  1. 任何手工测试能够做的,都可以用自动化来实现。
  2. 自动化测试工程师,只会写写脚本就可以通过面试。
  3. 自动化可以极大程度上提高工作效率。
  4. 自动化测试可以发现很多Bug。
  5. 测试工程师的天花板就是自动化测试。
  6. 不熟悉业务也可以做自动化测试。
  7. 自动化测试很简单,谁都可以做。
  8. 自动化测试需要学习很多种测试工具。
  9. 没有断言和测试结果的自动化测试,都是耍流氓。
  10. 自动化是KPI或面子工程,老板让我做,我就做。
  11. 自动化就是把所有的场景、用例和数据,全都跑一遍。

首先,以上的观点全部都是错误的。(看看你们有没有中招?)

有两张图很经典:

1.自动化测试金字塔


最顶层的是 UI自动化,第二层是接口自动化,第三层是单元测试。越往上 ROI(投入产出比)越高,解决的场景也不相同。

 初学者一般会从 UI自动化开始学习,因为 UI自动化 很容易练习,也是能实际看到效果的一种自动化测试手段,能够给初学者带来信心。但是 UI自动化 会面临难维护,使用场景局限的问题。

其实,自动化测试金字塔,每一层能够解决的问题和能够发现Bug的能力也不尽相同,我们需要根据实际情况,去选择我们需要的测试手段。

2.不要为了自动化而自动化

测试最重要的是测试思维!

代码、测试工具、测试平台等等,都是为测试这个事儿服务的手段,不要本末倒置。

「质量是QA的脸面,写了100条自动化测试用例,别人可能不会觉得你很牛B,但是只要是出现一个线上低级Bug,你的绩效可能就会打C(双押 skr)」

做自动化测试,就像大冬天里的秋裤,你穿不穿没人在意,但冷暖自知。

二、自动化测试方向该如何走(学习路径)

再讲自动化测试学习路径之前,先看常见自动化测试有哪些常见分类?

软件测试领域的自动化测试的概念往往很宽泛,在实际的应用中,自动化可以根据项目的进度及项目类型要求往往可以划分的更加细致一些,并且每种类型的自动化测试侧重点也不一致

接口测试做什么?

接口自动化测试,是当前自动化测试中的首选,任何一个被测软件系统一般都是前后端分离的,前后端通讯都需要接口,测试接口主要目的就是测试后台提供服务是否正常,故而接口的测试自动化测试中最基本的;如果要学习自动化测试,建议从接口测试开始学习。

web测试做什么?

web自动化测试,也是自动化测试领域的重点。对于有页面类的项目,几乎都可以进行web自动化的测试。主要通过模拟人操作对应系统,验证功能等方面是否正常,能大大提升测试效率,主要应用在一些重复操作的测试中。

移动自动化测试做什么?

移动自动化主要是针对于移动的系统的测试。该测试需要验证功能、性能、兼容性、易用性等方面,主要通过工具或者代码命令的方式模拟人工操作,验证整个软件系统的过程。目前对于移动端的测试主要在功能方面的测试外,还需要覆盖到非功能方面的测试。

看完自动化测试分类后,若想得到一个完整的自动化测试完整路径。我们还需要了解学习自动化测试的前置(支撑)知识和技能。

自动化测试,简而言之,就是把以人为驱动的测试行为转化为机器执行的一种过程。所以自动化需要具备一定的代码能力,故而至少学习一门编程语言,主流的有Java和Python,对于初学者来说,Python容易上手学习。我也是选择了python

这个过程实现除了语言外,还需要学习Linux和数据库相关知识,因为项目环境的搭建和数据的管理维护都需要具备这方面的技能。

任何一种自动化的应用不外乎两种方式,要么借助于工具实现,要么通过代码实现,不管通过哪种方式实现,都需要学习并会使用一些基本工具的技能。

所以自动化前置(支撑)知识和技能如下所示:

所以,我们的到的学习自动化测试的路径是:

linux -> mysql -> python | java -> 基本工具(JIRA/禅道) ->接口自动化测试-> web自动化测试-->移动自动化测试

三、自动化配套学习资源

接口自动化测试
接口测试一般有两种方式实现测试,一种通过工具实现;另一种通过代码实现,工具更多的做调试,大多数互联网企业做接口测试都是通过代码实现。

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

web自动化测试
web自动化测试主要通过代码实现。比如常见的应用有:Python/Java+selenium。

首先,还是需要熟练使用一门语言,非常熟练的运用至少一门编程语言。

其次,需要学习web测试的流程步骤,因为是基于页面默认人工操作,故而需要对于页面构成需要有一定的基础,比如:HTML+JavaScript+CSS,懂得页面元素的定位,以及常见的定位方式的使用等。如果有接口自动化的基础,那么学习web自动化相对会容易一些。

再者,通过一些相对完整的项目去实战训练,才能够较好的学习并把握web自动化的技能,通过反复的项目训练才能逐步的达到理想的效果。

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

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

最后: 我给大家整理了一份完整的软件测试全套学习教程,朋友们如果需要可以自行免费领取 【保证100%免费】

资料获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片进群领取。


http://www.ppmy.cn/news/383108.html

相关文章

动态规划-最长的回文序列

这里写自定义目录标题 1 描述2 样例2.1 样例12.2 样例2 3 解题思路以及实现方法3.1 解题思路3.1.1 确定状态3.1.2 转移方程3.1.3 初始条件和边界情况3.1.4 计算顺序 3.2 题解3.2.1 C实现3.2.2 java实现 该题是lintcode上 667 最长的回文序列,该题的解题思路亦是参…

退休大厂软件测试面试官给大家的一些建议

最近因为又要增加用人,就又开始忙于招聘,一段时间下来遇到不少有趣的事情,结合之前的面试经验,就简单记录一下。 火眼金睛:识别真假 为什么一开始要说这个,因为最近确实遇到很多编造的简历,给…

android mtp 单反 api,android读取单反的数据

上一节说过怎么去获取usb的数据,而项目中需要的逝去获取单反保存的照片,当然你可以用读卡器,用读卡器的话和usb的原理是一样的,也可以直接使用otg连接android手机 下面,来说下单反-->otg-->手机读取照片的实现 同…

DSLR Video Tips: Software 数码单反相机视频提示:软件 Lynda课程中文字幕

DSLR Video Tips: Software 中文字幕 数码单反相机视频提示:软件 中文字幕DSLR Video Tips: Software 视频制作不会停留在您的数码单反相机中 下一步创建一个有凝聚力的故事,并寻找您的项目发生在后期制作:像Premiere Pro和Final Cut Pro软…

Java实现的五子棋游戏 ~java.awtjava.swing

文章目录 Java实现的五子棋游戏1.实现效果2.实现源码2.1运行主函数main.java2.2 棋盘布局Chessboard.java3.Algorithm算法 点击下载链接:Java实现的五子棋游戏源码下载 Java实现的五子棋游戏 作业要求: (1)课题代号: …

Rust 基础语法

Rust 基础语法 变量,基本类型,函数,注释和控制流,这些几乎是每种编程语言都具有的编程概念。 这些基础概念将存在于每个 Rust 程序中,及早学习它们将使你以最快的速度学习 Rust 的使用。 变量 首先必须说明&#x…

YUV420笔记

YUV420 有YU12、YV12、NV12、NV21 YU12存储格式是 YU12存储格式是YU13中的UV顺序反过来 NV12存储格式是 NV21是NV12数据取反 YUV420_888 是YCbCr的泛化格式,不会具体指明是YU12,YV12,NV12,或是是NV21。它能够表示任何4:2:0的平…

(五) ElasticSearch 数据类型和文档CRUD操作

1.ES数据类型 官方文档地址:https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-types.html#_complex_datatypes 核心数据类型(Core Data Types): 核心数据类型是 Elasticsearch 最基本和常用的数据类型…