万叶集🎉 隐约雷鸣,阴霾天空。 🎉🎉 但盼风雨来,能留你在此。 🎉
前言:
✌ 作者简介:渴望力量的哈士奇 ✌,大家可以叫我 🐶哈士奇🐶 ,一位致力于 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自动化测试还只是一个萌芽状态。最早的自动化测试工具其实就是安卓本身自带的测试框架
Instrumentation
,这样的一个测试框架其实是现在也是未来很多测试框架的基础。
Instrumentation
这个框架其实非常的简陋,底层的支持也不是太好,使用起来不是太方便,
同时最大的缺点是不支持跨应用
。而且封装也非常的简单,基本上就是直接去调用 安卓的源码包 ;(这种方式让大家写起自动化来非常的难,而且那个时候 selenium 已经普及开来了,大家非常适用这种简单的高封装性的写法),所以
Instrumentation
并没有流行开来,只是在小范围内,没有办法的情况下才会选择使用。
由于
Instrumentation
封装的不够好,后来就出现了基于
Instrumentation
框架开发的
Robotium
,“Robotium” 对于一些常用的操作进行了一些封装,封装成了我们习惯性使用的自动化指令。
在后来的使用过程中发现,这个
Robotium
高度封装了关于安卓底层的一部分,而且在当时也有一些像 flash 的类似组件、和IOS系统的设备都没有办法支持。
所以虽然它火了一段时间,但是仍然逐步的被 APP 自动化领域抛弃掉了。
接下来,谷歌方面就开源了各种各样的开源组件。第一个给出的就是
UIAutomator
,“UIAutomator” 是现在我们做自动化的一个核心的基础。它提供的这样一套开源框架呢包含了 API 的 JAVA 库,用来创建功能性的UI测试。并且有了一套自己的 APP 测试引擎,能够结合着 Junit 、TestNG来进行一些测试案例的写法。
但是谷歌维护起来这样一套
UIAutomator
是非常困难的,所以它的社区资源完全已谷歌自己的为主,并不太完善。而且大家使用的程度也不是特别的高,同时受限于当时的安卓版本限制,只对 Java 支持的特别好,对其他语言的支持非常差,所以
UIAutomator
没有火起来。但是它奠定了
自动化测试的核心的一个底层,包括现在使用的 "APPIUM" 的底层其实就是借鉴了 "UIAutomator" 的大部分内容
。
随着
UIAutomator
的不太成功,谷歌又推出了一个精简、快速的自动化测试框架
Espressp
。这样一个框架也是开源出来的,非常的小、也非常的轻量级。编写代码起来非常的简单,开始它仅仅是基于
Instrumentation
的高度封装,没有突破
Instrumentation
里面的问题,比如说跨应用等问题都没有解决。
随着谷歌的这两款工具的使用的减少,行业里开始有一些人开始自己动手做工具。谷歌都没有做好的事情,可能很多人都觉得自己做起来可能也很困难,但实际上呢有一批这样的人算是测试开发领域的领路人,他们做了一套属于自己的一套自动化测试工具。该工具的底层非常高度的借鉴了安卓的
UIAutomator
;对于 IOS 的支持,其实是使用了 IOS 自己内部的框架
UIAutomation
;使用了这两套框架的组合,实现了双平台支持的
APPIUM
这样一款工具。这款工具的出现,真的是让大家觉得终于能有一个方式能用一套代码同时支持我们的IOS和安卓。
同时该工具的写法上抛弃了原有的
UIAutomator
、
UIAutomation
的写作习惯,开始绑定了
selenium2.0
之后出现的 webdriver 的语法,将这样的语法利用在了我们的安卓移动端上的测试,开发人员就可以使用 webdriver 来兼容任何一个语言。(比如 Java、Python、Ruby…)这些都可以编写自动化脚本,这就是
APPIUM
的优势。
那么
APPIUM
有没有缺点呢? 其实也是有的,比如说它的封装性非常的强,但是当我们想要对底层进行一些二次开发的时候,它的二次开发没有那么的友好。所以虽然
APPIUM
是开源的,但是很多人基于它做了二次开发但是并不太成功,所以大家在使用上依然没有跳出
APPIUM
给大家设定好的规则。但是这并不能代表这个工具就有很大的缺点,只能说
APPIUM
本身的支持就非常的全面。
直到现在,虽然
APPIUM
诞生了很多年了,大家仍然依赖、习惯于是用它。
当然了,并不说
APPIUM
的出现就导致不在有其他的工具诞生了。在这之后出现了一款叫做
Calabash
的工具,它也是一个跨平台的 APP 测试框架。它所测试的东西并不像
APPIUM
这样面面俱到,主要是用来测试屏幕截图、手势等一些晓得功能。
最主要的是该款工具绑定了另外一种设计模式,支持的是一种叫做
Cucumber
的
行为驱动模式
。“行为驱动模式” 其实就是另外一种模式的关键字驱动,只不过呢我们将它的行为取代了关键字而已。本质来说,在自动化测试领域体系里面,它的提升并不是太高。
同时
Calabash
也有很多自己的缺点,比如说它运行起来非常的慢,就像早期的
APP自动化测试工具一样
,默认都要先安装 APP 。哪怕是已经安装好了,也会重新安装一遍;在语言上,除了 ruby 之外,对其他的语言支持也不是很友好。这就是
Calsbash
目前最大的问题 。
目前,在行业里。提到APP自动化测试,大家默认的一个方式就是使用
APPIUM
。所以后续的章节,也是完全基于
APPIUM
来为大家进行的讲解。
🐳 APPIUM 原理
见下图:
实际上大家在后面使用
APPIUM
的时候就会发现调用的速度会很慢,造成这个原因的其实就是上图中的示意。
我们编写的脚本通过 HTTP 底层的 TCP 链接到 APPIUM 的 Server ,再通过 Server 来确认链接的设备是安卓还是IOS等等等等,同时在回去加载对应的 adb 等非常多的设备管理工具,综合的完成了一套这样的框架来实现脚本的预期结果。
OK,对于 APP 自动化测试、对于 APPIUM 的一些简单的介绍就见到这里,从下一章节开始,一起来真的使用 APPIUM 这款工具,看看它是不是真的那么的好用。
拜了个拜…
版权归原作者 全栈哈士奇 所有, 如有侵权,请联系我们删除。