0


〖Python APP 自动化测试实战篇②〗 - 大话闲扯 APP 自动化工具的演进史


万叶集🎉 隐约雷鸣,阴霾天空。 🎉🎉 但盼风雨来,能留你在此。 🎉


前言
✌ 作者简介:渴望力量的哈士奇 ✌,大家可以叫我 🐶哈士奇🐶 ,一位致力于 TFS 赋能的博主 ✌
🏆 CSDN博客专家认证、新星计划第三季全栈赛道 top_1 、华为云享专家、阿里云专家博主 🏆
📫 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
💬 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。💬
🔥 如果感觉博主的文章还不错的话,还请👍关注、点赞、收藏三连支持👍一下博主哦


专栏系列(点击解锁)学习路线指引知识定位 🔥Python全栈白皮书🔥 零基础入门篇 以浅显易懂的方式轻松入门,让你彻底爱上Python的魅力。 语法进阶篇 主要围绕多线程编程、正则表达式学习、含贴近实战的项目练习 。 自动化办公篇 实现日常办公软件的自动化操作,节省时间、提高办公效率。 自动化测试实战篇 从实战的角度出发,先人一步,快速转型测试开发工程师。 数据库开发实战篇 更新中 爬虫入门与实战 更新中 数据分析篇 更新中 前端入门+flask 全栈篇 更新中 django+vue全栈篇 更新中 拓展-人工智能入门 更新中 网络安全之路 踩坑篇 记录学习及演练过程中遇到的坑,便于后来居上者 网安知识扫盲篇 三天打鱼,不深入了解原理,只会让你成为脚本小子。 vulhub靶场漏洞复现 让漏洞复现变得简单,让安全研究者更加专注于漏洞原理本身。 shell编程篇 不涉及linux基础,最终案例会偏向于安全加固方向。 [待完结] WEB漏洞攻防篇 2021年9月3日停止更新,转战先知社区等安全社区及小密圈 渗透工具使用集锦 2021年9月3日停止更新,转战先知社区等安全社区及小密圈 点点点工程师 测试神器 - Charles 软件测试数据包抓包分析神器 测试神器 - Fiddler 一文学会 fiddle ,学不会倒立吃翔,稀得! 测试神器 - Jmeter 不仅是性能测试神器,更可用于搭建轻量级接口自动化测试框架。 RobotFrameWork Python实现的自动化测试利器,该篇章仅介绍UI自动化部分。 Java实现UI自动化 文档写于2016年,Java实现的UI自动化,仍有借鉴意义。该工具目前的应用场景已不多,文档已删,为了排版好看才留着。



文章目录

紧接着上一章节,在今天的这一章节我们来具体聊一聊 APP 自动化测试工具的演进史。所以在该章节具体跟大家介绍的其实就是常用的、或者是以前见过的 APP 自动化测试工具都有哪些?以及我们为什么要使用 APPIUM ,它的优势又在哪里。

🐳 APP 自动化工具

大概在 2010年 前后,APP自动化测试还只是一个萌芽状态。最早的自动化测试工具其实就是安卓本身自带的测试框架

  1. Instrumentation

,这样的一个测试框架其实是现在也是未来很多测试框架的基础。

  1. Instrumentation

这个框架其实非常的简陋,底层的支持也不是太好,使用起来不是太方便,

  1. 同时最大的缺点是不支持跨应用

。而且封装也非常的简单,基本上就是直接去调用 安卓的源码包 ;(这种方式让大家写起自动化来非常的难,而且那个时候 selenium 已经普及开来了,大家非常适用这种简单的高封装性的写法),所以

  1. Instrumentation

并没有流行开来,只是在小范围内,没有办法的情况下才会选择使用。


由于

  1. Instrumentation

封装的不够好,后来就出现了基于

  1. Instrumentation

框架开发的

  1. Robotium

,“Robotium” 对于一些常用的操作进行了一些封装,封装成了我们习惯性使用的自动化指令。

在后来的使用过程中发现,这个

  1. Robotium

高度封装了关于安卓底层的一部分,而且在当时也有一些像 flash 的类似组件、和IOS系统的设备都没有办法支持。

所以虽然它火了一段时间,但是仍然逐步的被 APP 自动化领域抛弃掉了。


接下来,谷歌方面就开源了各种各样的开源组件。第一个给出的就是

  1. UIAutomator

,“UIAutomator” 是现在我们做自动化的一个核心的基础。它提供的这样一套开源框架呢包含了 API 的 JAVA 库,用来创建功能性的UI测试。并且有了一套自己的 APP 测试引擎,能够结合着 Junit 、TestNG来进行一些测试案例的写法。

但是谷歌维护起来这样一套

  1. UIAutomator

是非常困难的,所以它的社区资源完全已谷歌自己的为主,并不太完善。而且大家使用的程度也不是特别的高,同时受限于当时的安卓版本限制,只对 Java 支持的特别好,对其他语言的支持非常差,所以

  1. UIAutomator

没有火起来。但是它奠定了

  1. 自动化测试的核心的一个底层,包括现在使用的 "APPIUM" 的底层其实就是借鉴了 "UIAutomator" 的大部分内容


随着

  1. UIAutomator

的不太成功,谷歌又推出了一个精简、快速的自动化测试框架

  1. Espressp

。这样一个框架也是开源出来的,非常的小、也非常的轻量级。编写代码起来非常的简单,开始它仅仅是基于

  1. Instrumentation

的高度封装,没有突破

  1. Instrumentation

里面的问题,比如说跨应用等问题都没有解决。


随着谷歌的这两款工具的使用的减少,行业里开始有一些人开始自己动手做工具。谷歌都没有做好的事情,可能很多人都觉得自己做起来可能也很困难,但实际上呢有一批这样的人算是测试开发领域的领路人,他们做了一套属于自己的一套自动化测试工具。该工具的底层非常高度的借鉴了安卓的

  1. UIAutomator

;对于 IOS 的支持,其实是使用了 IOS 自己内部的框架

  1. UIAutomation

;使用了这两套框架的组合,实现了双平台支持的

  1. APPIUM

这样一款工具。这款工具的出现,真的是让大家觉得终于能有一个方式能用一套代码同时支持我们的IOS和安卓。

同时该工具的写法上抛弃了原有的

  1. UIAutomator

  1. UIAutomation

的写作习惯,开始绑定了

  1. selenium2.0

之后出现的 webdriver 的语法,将这样的语法利用在了我们的安卓移动端上的测试,开发人员就可以使用 webdriver 来兼容任何一个语言。(比如 Java、Python、Ruby…)这些都可以编写自动化脚本,这就是

  1. APPIUM

的优势。

那么

  1. APPIUM

有没有缺点呢? 其实也是有的,比如说它的封装性非常的强,但是当我们想要对底层进行一些二次开发的时候,它的二次开发没有那么的友好。所以虽然

  1. APPIUM

是开源的,但是很多人基于它做了二次开发但是并不太成功,所以大家在使用上依然没有跳出

  1. APPIUM

给大家设定好的规则。但是这并不能代表这个工具就有很大的缺点,只能说

  1. APPIUM

本身的支持就非常的全面。

直到现在,虽然

  1. APPIUM

诞生了很多年了,大家仍然依赖、习惯于是用它。


当然了,并不说

  1. APPIUM

的出现就导致不在有其他的工具诞生了。在这之后出现了一款叫做

  1. Calabash

的工具,它也是一个跨平台的 APP 测试框架。它所测试的东西并不像

  1. APPIUM

这样面面俱到,主要是用来测试屏幕截图、手势等一些晓得功能。

最主要的是该款工具绑定了另外一种设计模式,支持的是一种叫做

  1. Cucumber

  1. 行为驱动模式

。“行为驱动模式” 其实就是另外一种模式的关键字驱动,只不过呢我们将它的行为取代了关键字而已。本质来说,在自动化测试领域体系里面,它的提升并不是太高。

同时

  1. Calabash

也有很多自己的缺点,比如说它运行起来非常的慢,就像早期的

  1. APP自动化测试工具一样

,默认都要先安装 APP 。哪怕是已经安装好了,也会重新安装一遍;在语言上,除了 ruby 之外,对其他的语言支持也不是很友好。这就是

  1. Calsbash

目前最大的问题 。


目前,在行业里。提到APP自动化测试,大家默认的一个方式就是使用

  1. APPIUM

。所以后续的章节,也是完全基于

  1. APPIUM

来为大家进行的讲解。

🐳 APPIUM 原理

见下图:



实际上大家在后面使用

  1. APPIUM

的时候就会发现调用的速度会很慢,造成这个原因的其实就是上图中的示意。

我们编写的脚本通过 HTTP 底层的 TCP 链接到 APPIUM 的 Server ,再通过 Server 来确认链接的设备是安卓还是IOS等等等等,同时在回去加载对应的 adb 等非常多的设备管理工具,综合的完成了一套这样的框架来实现脚本的预期结果。


OK,对于 APP 自动化测试、对于 APPIUM 的一些简单的介绍就见到这里,从下一章节开始,一起来真的使用 APPIUM 这款工具,看看它是不是真的那么的好用。

拜了个拜…




本文转载自: https://blog.csdn.net/weixin_42250835/article/details/125418479
版权归原作者 全栈哈士奇 所有, 如有侵权,请联系我们删除。

“〖Python APP 自动化测试实战篇②〗 - 大话闲扯 APP 自动化工具的演进史”的评论:

还没有评论