澳门新葡萄京娱乐场 1

5 个 iOS 和 Android 最佳的开源自动化工具

本文由码农网 –
小峰原创翻译,转载请看清文末的转发要求,接待参预大家的付费投稿安排!

介绍

导语

前面写了两篇随笔介绍了个体基于Macaca在UI自动化上的举办体验,那大家为什么会接受了Macaca呢,那篇小说将简介一下我们选用Macaca的来由。

自动化测量检验时下在产品测量检验上具有足够关键的功力。完结测量检验自动化有多样细水长流的主意,富含最大限度地减弱测验施行时间;在重大的昭示品级,用更加少的年华有限援助越来越大的覆盖面积;在成品开拓阶段,可信赖又重复性地运营以确定保障未有引入回归难题。最大限度地减小重复性回归测验循环时的人为错误和忽略的风险。

挪动领域已经日渐增高。
移动应用正被用来包蕴银行,小车,电商等在内的依次行业。测量检验活动使用已经变得一定复杂,在运动接收的象征中设有比比较多操作系统和平台,测量检验场景的种类以致各类网络连接。
iOS和Android是最受款待的移位操作系统,在此七个阳台上有数以百万计的应用程序供给测验。

有何样可用的UI自动化框架?

行业内部相对流行的三款UI自动化框架

在市道上有超多可用的工具,开源的或要买下账单的。即使付费和开源工具有利有弊,不过后面一个在自动化测量试验社区赢得了大范围的利用。遵照项目需要来采摘相符的自动化工具是特别费事的。

移步接受测量试验

她们的区别在哪里?

compare

澳门新葡萄京娱乐场 1

挪动测验是测试应用程序的一致性,可用性,何况主假诺测试其效劳的长河。

咱俩是怎么抉择的?

澳门新葡萄京娱乐场,下边介绍5个一级的iOS和Android开源自动化学工业具。

在运动应用上开展的测量试验包涵:

规范1:扶助移动端app自动化

从上述比较实际早就得以相比鲜明的帮手我们做出本身的选料,从本身所在的集团来讲,大家最首要做的是运动端的UI自动化,相信将来超越六分之三校友所做的也都以这一类的自动化,因而,只限于PC端webApplication的多少个框架就不可防止的要湮灭掉了,那当中含有Selenium,PhantomJS,以及KARMA牧马人。

1)Calabash(适用于Android和iOS)

Calabash是二个开源的检验收下测验框架,帮忙Android和iOS自动化。Calabash为Android和iOS自动化测验提供了一个单独的库。那是一个跨平台的框架,援救Cucumber,Cucumber能让你用自然的日文语言表述app的表现,达成BDD(Behavior
Driven Development,行为使得开辟)。

Calabash提供了三个大桥,允许Cucumber测量试验对iOS和Android运行和表明。Cucumber测量试验使用一列语句写入,这个语句会造成不菲测量检验场景。Cucumber中的全体语句使用Ruby定义。

在Calabash,Cucumber语句只好被定义一次,但能够在Cucumber脚本的不如场景中重复使用。

其实地衡量试是用Gherkin写的,依靠Ruby代码的支撑,并在Cucumber框架的上下文中运作。

优点

  • 特大型社区协助。
  • 简轻便单,形似乌克兰语表达的测量试验语句
  • 支撑在显示屏上的富有动作,如滑动,缩放,旋转,敲击等。
  • 大型且热心的社区。
  • 跨平台开拓扶持(雷同的代码在Android和iOS设备中都适用)

缺点

  1. 测量检验步骤失利后,将跳过全数的接轨手续。这或然会引致失去更要紧的出品难题。
  2. 必要时间来进行测量试验,因为它首先总是私下认可安装app。可是,这种装置能够由此在代码中配置贰个钩子(hook)覆盖掉。
  3. 必要Calabash框架安装在ios的ipa文件中。
  4. 我们务要求有iOS的app代码。
  5. 除此之外Ruby,对其它语言不友好。

性情测验: 试行测验顾客端的应用程序品质,网络品质和服务器质量。效率测验:
那是基于要求检查应用程序成效的基本测量检验。内部存款和储蓄器测验:
与计算机比较,移动道具具备极小的内部存款和储蓄器,施行该测量试验以测验任何利用可优化的存款和储蓄器使用。安装测验:
进行设置测量试验以检讨包含卸载和立异的平整与轻便的设置进程。中断测量检验:
它用于检查由于短信或来电,低电量警示,低内部存储器警示等引起的间歇。可用性测量检验:
它用于检查应用程序的得力,效用和满意度。

标准2:协助多平台自动化

除此以外,对于活动端的UI自动化,大家希望能够何况覆盖安卓以至iOS平台,最佳是一套脚本能並且在几个端上跑,鉴于此,只提供单纯平台的Selendroid,罗布otium能够临时不要考虑了。

2)Appium(Android和iOS)

Appium是Sauce
Labs出品的多少个开源的自动化测量试验框架,用于原生、混合和平运动动的web
app。框架内的Appium库函数调用Appium服务器是在操作连接装置的后台运维的。它在中间使用JSONWireProtocol,来与利用Selenium的WebDriver的iOS和Android
app举行交互作用。

不像Calabash只援救Ruby开垦,在框架中采纳Appium时,你能够从Java、Python和Ruby,以至有着别的Selenium WebDriver帮忙的语言中选用。

Appium服务器被托管在Node服务器上。你能够透过接触一组Node命令来运转Appium服务器。使用Appium
Standalone
Application作为服务器(从Appium网址下载),Inspector工具可对app的享有定位器提供寻找/识别/操作的力量。

优点

  • 匡助二种语言。
  • 不供给拜访源代码。
  • 跨平台脚本开采。
  • 重型社区扶植。
  • 扶助Mac上的剧本记录。
  • 利用Appium Server应用程序的Inspector工具提取标记符。
  • 经过Appium Server的桌面应用程序对Selendroid内置扶助。
  • 它还利用中间商提供的框架:适用于iOS的UIAutomation
    ,分别适用于Android 4.2+和 2.3+的UIAutomator和Selendroid。
  • 支撑物理设备与仿真器。
  • 支撑原生,混合和活动的web自动化应用程序。

缺点

  • Appium Server桌面应用程序的公布日常不安宁。
  • 本子记录不适用于Application服务器对于Windows OS的桌面应用程序。

上边让大家谈谈一些最棒的移位测量检验工具,能够使测量检验者的生活更轻易。

条件3:学习花销低

通过地方若干回筛选,大家的挑肥拣瘦剩下了Macaca && Appium &&
Calabash,那中间,Macaca甚至Appium都是永葆多语言的,Appium支持的最多,满含了Ruby
Python Java Js OC PHP C#(.NetState of Qatar这一个差不离全部主流的语言,Macaca这段时间扶持Js
Java以至Python,也能基本满意急需,相比较之下,Calabash只扶助Ruby,那一个对组织是有早晚的挑战的,因为我们的团伙大家基本上以Java技巧栈为主,如若利用Ruby,意味着全数的同室都要先读书一下那门语言,这一个资本对于大家这么的协会来讲开支是超高的,由此,Calabash也从大家的待选list中删去。

3)Robotium(Android )

Robotium是四个开源的测试框架,用于支付作用性,系统,和检验收下测验场景。它与Selenium极度肖似,除了罗布otium只适用于Android。它注册在Apache
License 2.0下。

因为它不止轻巧,况且又具有成立强大又可相信的自动化场景的本领,因此它在自动化测验社区普及流行。

它利用运转时绑定到GUI组件。它安装了四个测验用例套件作为在Android设备或仿真器上的应用程序,并提供用于施行测量试验的实际情状。

优点

  • 轻巧在最短的日子内编写制定测验脚本。
  • 预装自动化app是唯恐的。
  • 自行跟随当前activity。
  • 鉴于运转时绑定到GUI组件,所以比较Appium,它的测验实行更快,更苍劲。
  • 不访谈代码或不知道app完结,也能够干活。
  • 支持Activities、Dialogs、Toasts、Menus、Context Menus和其他Android
    SDK控件。

缺点

  • 无法管理flash和web组件。
  • 支持Java开发。
  • 在旧设备上会变得不快。
  • 出于不帮衬iOS设备,当自动化测验同有时间覆盖
    android与iOS的景况时,测验会被中断。
  • 还未松开的笔录和回看功用. 使用记录效用需求 TestDroid 和 罗布otium
    Recorder 那样收取费用工具。

Appium (Android and iOS卡塔尔国:
它是三个开源工具,用于Android和iOS平台上的鱼龙混杂应用程序自动化测量检验。
它帮忙iOS上的Safari和Android上的别的内置浏览器App。Calabash (Android and
iOSState of Qatar: 它是由Calabash和Xamarin维护的自发性检验收下测量试验框架,能够与Selenium
Web驱动程序举办比较。
它不行适用于Java,Ruby,Net,Flex和广大别的编程语言。MonkeyTalk (iOS and
AndroidState of Qatar: 它是一个开源工具,由多少个零器件组成包蕴剧本、代理和IDE。
它自动化iOS和Android应用程序的效果与利益互相测量试验。UI Automator (Android卡塔尔国:
它是一个开源框架,允许行使自动化成效测验用例测量试验客商分界面。
此框架使用JavaScript编写测验脚本。Frank (iOS卡塔尔:
它是二个仅用于iOS的开源测量检验框架,它象征JSON和Cucumber的结缘功用。
它有扶持编写构造化检验收下测量试验,还富含Symbiote应用程序检查器。罗布otium
(Android卡塔尔: 它是一个专为Android
UI测验设计的开源库。那几个Android测验自动化框架使用TestDroid记录器来对Android应用程序进行自动化黑盒测量试验。
它选用JavaScript来打算测量检验脚本,并同意编写系统,函数和客户检验收下测量试验场景。Keynote
Mobile Testing Tools (iOS and Android卡塔尔:
它是三个移动测验工具,有协助确认保障活动使用在实际设备上的材料。
它是二个买卖工具,提供移动应用程序的基于云总计的自动化,回归和成效测量试验。TestObject
(iOS and Android卡塔尔国:
它是三个运动测验工具,可实践活动和手动成效测验。它有协助测量检验iOS和Android的原生,混合移动Web应用程序。Selendroid:
那是三个非常针对Android的开源框架,能够同期与五个设施和模拟器实行相互作用。

最后的抉择

透过三轮车筛选,前段时间摆在我们日前的有四个接受,Appium &&
Macaca,经过一段时间的对待应用切磋,大家最终挑选了Macaca,首要思虑要素如下:

  1. 普及工具接济

    周旋Appium,Macaca提供了更为完备的大范围工具援助,这些中含有可不只有集成平台Reliable,成分查找工具app-inspector,脚本录像工具UI-Recorder等。

    Reliable持续集成平台能够帮助我们开展用例的管住以至任务的调治,对于UI自动化,唯有当她改成一种规范化的程式定时的接触与实行,那样技能发表他的职能,由此,一个不辍集成系统对于自动化的深入发展是必要的,而Appium并未提供那套系统,那象征我们要求从无到部分搭建自个儿的一套不住集成情形,这些投入威名昭著也是伟大的人的。

    app-inspector 成分查找工具,相当大的惠及了控件的搜寻以致定位。

    UI-Recorder脚本录像工具得以连忙的通过摄像得到脚本,方便新手入门。

    现实的运用可以参照官方网站,都有详尽的介绍。

  2. 轻量

    从效果上来说,Appium较Macaca是有优势的,Appium已经前行了连年,储存了成千上万经验,可是也变成了一些尾大难掉的病魔。以对安卓API版本的支撑为例,Appium支持全部的安卓API版本,而Macaca只援助API>17(约等于Android4.2体系卡塔尔的版本,这一个跟两个的最底层原理有关,Macaca对于安卓的支撑是依照安卓sdk的UIAutomator框架,而那几个框架是从API
    17发端协理的,Appium从最初的安卓先河,对于API
    17上述的版本,Appium与Macaca相似是基于UIAutomator的,对于API
    17之下的本子,Appium则基于老的instrument,对于那部分的帮助,还引进了Selendroid。但是从利用的角度讲,Android7已经发行,4.2系统以下的装置占比非常的小,我们不指望为了援救这一部分微量的机型而扩张和睦在自动化上的职业量。同理可得,大而全的并不一定是最棒的,关键是找到切合自身的。

  3. 社区活泼,汉语文书档案足够

    Macaca是由Ali公司开源的框架,官网提供了中文版以致越南语版双语文档,纵然对于开拓者而言,阅读Република Србија语文书档案的力量是必需的,不过中文文书档案的提供翔实能扶助广大底工绝对软弱的同室火速入门。此外,Macaca共青团和少先队还提供了用于技能交换的Wechat群以至钉钉群,当境遇难点的时候能够方便的牵连到主要创作共青团和少先队的相关同学,这活脱脱也能给我们带给相当大的方便。

  4. 阳台更增进

    就算Macaca和Appium相同的时候都扶助PC与移动端,可是Macaca新添了对于Electron应用的援助,那几个是别的框架都不享有的,固然作为二个Node.js小白小编从未接触过相关的施用,可是相信对Electron的开垦者以至测量检验同学来讲,这是贰个不易的选用。

  5. API的统一性

    商量过Appium的官方API,以java-client为例,针对iOS和安卓,控件以至Driver等类别都遵照平台不相同而不相仿,对于控件,有AndroidElement,IOSElement,对于Driver,有AndroidDriver,IOSDriver,就算大家的用例要支持多平台,就需求管理各种阳台差别性,但Macaca从底层上就平昔不分别iOS与安卓,基本上除了各自系统特有的多少个API以外都能够透过三个联合的API扶持,那就便于了不菲。

4)Frank(iOS)

弗兰k是二个iOS
app的自动化框架,允许利用Cucumber编写构造化乌Crane语句子的测量检验场景。

Frank必要测量试验时在应用程序内部编写翻译,那意味对源代码的变动是免强性的。那是三个运用Cucumber和JSON组合命令的工具,命令发送到在本地应用程序内部运维的服务器上,并动用UISpec运维命令。

优点

  • 测量试验场景是在Cucumber的救助下,用可以预知道的法语句子写的。
  • Symbiote——满含实时检查工具。
  • 借使组织有关于web selenium和cucumber自动化框架的涉世,也平价。
  • 活跃的社区扶植。
  • 不断扩展中的库。

缺点

  • 对手势的支撑有限。
  • 在配备上运转测量检验有一点难。
  • 改进配置文件须求在实际上设备上运营。
  • 笔录功用不可用。

Ranorex (iOS and Android卡塔尔(قطر‎:
Ranorex是二个开源的UI自动化框架,用于测验基于Web和平运动动应用程序。
它扶植自动化测量检验,接纳测量试验,Web测验,移动测量检验,GUI测验,跨设备测量检验,数据驱动测验等。

非常表明

纵然大家从起始就免去了Selenium,但是一定要特别表明的少数无论是Macaca依然Appium,他们在听之任之程度上都借鉴了Selenium的超级多内容,包罗对webdriver合同的支撑,selenium
grid的主意协理多机并行等,由此,对UI自动化感兴趣的同校,有必不可缺先去探听一下Selenium的底蕴原理,那对于领会Macaca与Appium的最底层原理都有相当重大的支援。

5)UIAutomator(Android)

UIAutomator是由谷歌(Google卡塔尔国提供的测量试验框架,它提供了原生Android
app和游乐的高端UI测量试验。那是叁个包括API的Java库,用来成立效用性UI测量试验,还应该有运营测量检验的执行引擎。该库自带Android
SDK。有不菲学科可供初读书人上手。优点是它在运维访谈分化的经过时,会给JUnit测试案例特权。就算那对该地自动化app既好又更简便,不过它对web自动化视图非常常有限或差不离从不其余扶植。它仅帮忙选用API 
level
16及以上的装置,但是那也不算什么不小的要素,因为今日天津大学学部分的app扶持API level 19及以上。

优点

  • 粗略易学的科目。
  • 库由Google社区帮助和保证。
  • 其三方支付集成了依据云总括的测量检验管理。

缺点

  • 仅支持android 4.1及以上。
  • 不帮助脚本记录。
  • 扶持的重要性是Java。
  • 你不可能博取当前移动或仪表化。
  • 现阶段不帮忙web视图,由此是混合app。
  • 库扶植接受Java,由此假如有人想和动用Ruby的cucumber混合,会很难堪。不过Java有它本人的BDD框架,固然在奉行中用到的也相当少。

CTOLib原创编译:俄文原来的书文:

参谋资料:

  1. Macaca官网
  2. Appium
    testerHome普通话文书档案
  3. Selenium官网
  4. Sendroid官网
  5. Robotium官网
  6. PhantomJs官网
  7. Calabash官网
  8. KARMA官网

写在末端

地点总括了弹指间和煦在调研并选择UI自动化框架中的一些思谋,希望能给远在UI自动化调研早期的同班们有的扶植,个中多数筛选是由于本身业务的内需,仅供参照他事他说加以考查,希望大家能整合本人工作的须求,找到切合本人的UI自动化框架。个人水平有限,以上意见有不法则的地点还请大家多多指正与包容。

附录

“Macaca开源社区”群的钉钉群号: 11775486(接待入群探究卡塔尔

发表评论

电子邮件地址不会被公开。 必填项已用*标注