【书】《Python全栈测试开发》——浅谈我所理解的『自动化』测试


《Python全栈测试开发》》
《Python全栈测试开发》,依稀记得是去年的时候,身为『大数据测试工程师』的我想探索测试的其他领域。遂买了这本书,与此同时,也报了相应的培训班进行有关『自动化』测试的系统性学习。

从书的篇幅上来讲,足足接近500页,绝对是『量大管饱』。而实际上量大且精,这才是最难得的!

本文主要从四方面来介绍自动化测试,大致如下:

①自动化测试的What and Why?
②自动化的前戏需要准备哪些必备技能?
③自动化测试类型
④自动化调优

在介绍如上四方面的自动化测试时,会辅以培训时跟着讲师整理的『博文链接』,以帮助大家更好地理解。

1. 自动化测试的What and Why?

1.1 What

顾名思义,『自动化测试』即让测试『自动化』起来,而这『自动化』背后的本质则是通过一些:

工具、脚本、代码等去模拟人工的操作。

1.2 Why

我们为什么要选择使用『自动化』测试?或者换一个问法——为什么『自动化』测试是测试领域当下的一种趋势?

就我的理解,其实无外乎四个字——『降本增效』。也即自动化测试可以显著提升你个人的效率,进而为企业节省成本,而效率本身又是生产力的代名词,所以就『二八原则』而言,贩卖『焦虑』与『鸡汤』,也理当遵循才对。

2. 自动化的前戏需要准备哪些必备技能?

就笔者有限的经历,Python应该是一个不错的入坑选择,当然面向JD的学习,Java似乎也是一种备受青睐的语言。
Python

万丈高楼平地起,一些基本的测试理论和测试方法也是必不可少的。
Web方面,浏览器的F12,HTML&CSS等前端方面的知识如果可以了解一下,也属锦上添花。
App方面,介于笔者只接触过Android终端,所以adb命令算是必备的基础技能的一种吧。
接口方面,一些开源的工具Postman、Python的Requests库也是较为主流的。

3. 自动化测试类型

自动化测试大致在本书中主要介绍了三种类型——Web自动化、App自动化、接口自动化。
其实Web与App,可以抽象成不同的终端,而接口自动化如果从分类上来讲,UI自动化应该是和它一个层面。大致可以理解为针对同一种终端的不同方面?

所谓的UI自然就是界面了,

U & I 自然地面向世界~

3.1 Web自动化测试

Web自动化,就我所知目前主流的应该是——Selenium,而要实现自动化,除了『器』层面的Selenium,还需要『法』层面的三板斧——

1.自动化测试设计模式
2.自动化测试驱动方式
3.自动化测试框架

3.1.1 自动化测试设计模式

细化来说,之于Web,1最常见的是POM(页面对象模式),这种模式主要用来应对Web UI界面的页面元素频繁变动的情形,导致可能会出现如下情况:

三天前写的自动化测试脚本还能正常跑,更新了个版本,不行了?
经检查发现,原来是代码定位元素的页面有所变动。。。

写到这,就不得不说在Web自动化中比较重要的一项工作——元素定位,就我的讲师——虚竹老师所言,天龙有八部,这定位元素的方式常用的似乎也是八种,如果可以融会贯通,那自动化前途估计真的就是八八八了…

Selenium八大元素定位及相对定位器

3.1.2 自动化测试驱动方式

自动化测试驱动方式大致有如下两种:

  1. 数据驱动之Excel读写
  2. 关键字驱动

有个简单的问题,什么时候用POM,什么时候用关键字驱动?

就我所学到的,通过公司的产品(系统)数划分
POM——少
关键字驱动——多

毕竟关键字驱动的核心理念则是关键字的核心理念,不妨再试想一下,如果系统多的话,POM可以发挥几成功力,但是我们要明确一点——“事在人为,问题的不成问题。”

3.1.3 自动化测试框架

自动化测试驱动框架,目前来讲大概有两种我接触地较为多些——

1.Pytest框架(Pytest官网
2.Unittest框架

实际工作中,更偏向于前者。

3.2 App自动化测试

App自动化测试,其实就是终端是『移动端』,较为典型的比如说——『手机』。

而之于前者的Web自动化,『法』层面基本可以复用,『器』层面的Selenium主要适用于Web端,如果在移动端的语境下,可以平替为如下两种——

1.UIAutomator
2.Appium

3.3 接口自动化测试

接口自动化测试接触的不多,主要停留在『学』的层面,主要用到的技术栈大致如下——

Python + Requests

4. 自动化调优

自动化调优主要分为三方面:
1.自动化测试代码的编写效率
2.自动化测试用例的执行效率
3.自动化测试报告的可观性

针对1的解决方案是——Mock,Mock存在的意义就是无需开发那边将被测对象开发好(主要指接口?),通过Mock服务可以实现模拟未开发好接口的功能。

2的执行效率提升,主要有两种解决方案——
1.多线程(并发)
2.Selenium Grid分布式集群

3的报告生成的观感,可视性上来讲,开源的或许Allure是种不错的选择。

最后的最后,本文主要谈到了自动化测试的『器』与『法』层面,如果想让自动化测试更好地赋能于企业,其实是绕不开『道』的,而此中之道,根据不同的企业(产品)类型或许会有不同,但就敏捷而言——

DDD、TDD、BDD......
只要真的想提升生产力,那么总有一款适合你~


更新一些最近阅读的和自动化测试相关的书籍:
Jenkins 2.X 实践指南
推荐指数:★★★★★
幽评:从Devops运动浪潮,到如今的AIops,CI/CD的绝对主角——Jenkins似乎依然不失其昔日的光芒,足可以见到它之于CI/CD在各种技术浪潮下的鲁棒性。

Selenium自动化测试完全指南 基于Python
推荐指数:★★★★☆
幽评:详尽介绍了自动化测试的点点滴滴,从Web端与移动端两个平台介绍了业内较为主流的开源工具:Selenium与Appium,覆盖了工作中绝大多数的应用场景。
测试架构师修炼之道
推荐指数:★★★★☆
幽评:本书由浅入深的讲述了,测试策略与各种行之有效的测试方法,同时对质量保证环节中的权限分析这一环做了充足的讲解,但是美中不足的是涉及到技术的细节(代码)却不够深入,但想来本书的定位也不再于此。

Pytest框架与自动化测试应用
推荐指数:★★★★☆
幽评:Pytest作为业内主流的测试开发框架,本书结合Allure详尽解释了Pytest的运行机制,如工作用到,可以作为字典书。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

司小幽

真诚赞赏,手留余香。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值