Android和iOS 测试五个最好的开源自动化工具_Android

       自动化测试在产品测试上有着非常重要的作用。实现测试自动化有多种积极的方式,包括最大限度地减少测试执行时间;在关键的发布阶段,用更少的时间确保更大的覆盖范围;在产品开发阶段,可靠又重复性地运行以确保没有引进回归问题。最大限度地减少重复性回归测试循环时的人为错误和疏忽的风险。

  在市场上有很多可用的工具,开源的或要付费的。虽然付费和开源工具各有利弊,但是后者在自动化测试社区得到了广泛的应用。根据项目需求来选择合适的自动化工具是非常棘手的。

  下面介绍5个最佳的iOS和Android开源自动化工具。

  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设备中都适用)。

  缺点:

  ◆测试步骤失败后,将跳过所有的后续步骤。这可能会导致错过更严重的产品问题。

  ◆需要时间来进行测试,因为它首先总是默认安装app。但是,这种设置可以通过在代码中配置一个钩子(hook)覆盖掉。

  ◆需要Calabash框架安装在ios的ipa文件中。

  ◆我们必须要有iOS的app代码。

  ◆除了Ruby,对其他语言不友好。

  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.Robotium(Android)

  Robotium是一个开源的测试框架,用于开发功能性,系统,和验收测试场景。它与Selenium非常相似,除了Robotium只适用于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 和 Robotium Recorder 这样收费工具。

  4.Frank(iOS)

  Frank是一个iOS app的自动化框架,允许使用Cucumber编写结构化英语句子的测试场景。

  Frank要求测试时在应用程序内部编译,这意味着对源代码的改变是强制性的。这是一个使用Cucumber和JSON组合命令的工具,命令发送到在本地应用程序内部运行的服务器上,并利用UISpec运行命令。

  优点:

  ◆测试场景是在Cucumber的帮助下,用可理解的英语句子写的。

  ◆Symbiote——包含实时检查工具。

  ◆如果团队有关于web selenium和cucumber自动化框架的经验,也有效。

  ◆活跃的社区支持。

  ◆不断扩大中的库。

  缺点:

  ◆对手势的支持有限。

  ◆在设备上运行测试有点难。

  ◆修改配置文件需要在实际设备上运行。

  ◆记录功能不可用。

  5.UIAutomator(Android)

  UIAutomator是由谷歌提供的测试框架,它提供了原生Android app和游戏的高级UI测试。这是一个包含API的Java库,用来创建功能性UI测试,还有运行测试的执行引擎。该库自带Android SDK。有很多教程可供初学者上手。优点是它在运行访问不同的进程时,会给JUnit测试案例特权。虽然这对本地自动化app既好又更简单,但是它对 web自动化视图非常有限或几乎没有任何支持。它仅支持使用API level 16及以上的设备,不过这也不算什么很大的因素,因为现在大多数的app支持API level 19及以上。

  优点:

  ◆简单易学的教程。

  ◆库由谷歌社区支持和维护。

  ◆第三方支付集成了基于云计算的测试管理。

  缺点:

  ◆仅支持android 4.1及以上。

  ◆不支持脚本记录。

  ◆支持的重点是Java。

  ◆你不能获得当前活动或仪表化。

  ◆目前不支持web视图,因此是混合app。

  ◆库支持使用Java,因此如果有人想和使用Ruby的cucumber混合,会很困难。不过Java有它自己的BDD框架,虽然在实践中用到的也不多。

         以上就是对Android 和IOS 自动化测试的资料整理,后续继续补充相关资料,谢谢大家对本站的支持!

时间: 2024-11-02 19:28:52

Android和iOS 测试五个最好的开源自动化工具_Android的相关文章

Android实战教程第五篇之一键锁屏应用_Android

Device Administration 对于这个应用,市场上很多,但是看一下评论就知道效果有多差了,因为99%一键锁屏应用没办法卸载.今天就开发一个小应用,实现轻松点击一键锁屏,同时支持卸载... 通查看谷歌原文档,有设备管理器的API,从这里可以抽取一些代码,开发出一个小应用,即即将介绍的<一键锁屏>. 根据文档翻译,获取设备管理器的大致步骤如下: 1.创建类DeviceAdminReceiver的子类 如:com.itydl.lockscreen.DeviceAdminSample 2

Android开发与测试教程

Android简明开发教程一:概述 Android简明开发教程二:安装开发环境 Android简明开发教程三:第一个应用Hello World Android简明开发教程四:Android应用基本概念 Android简明开发教程五:Activities Android简明开发教程六:用户界面设计 Android简明开发教程七:Intents和Intent Filters Android简明开发教程八:引路蜂二维图形绘制实例功能定义 Android简明开发教程九:创建应用程序框架 Android简

企业Android vs iOS到底谁更安全?这才是答案

本文讲的是企业Android vs iOS到底谁更安全?这才是答案, 在WP(Windows Phone,是微软于2010年10月21日正式发布的一款手机操作系统,于2015年1月结束)销声匿迹之后,如今的智能手机已经完全形成了iOS和Android两大阵营,关于这两个系统的对比评价的说法非常多. iOS和Android系统各有优劣,喜欢哪个全凭自己,但是在安全性方面有一个普遍的共识是:iOS比Android要更加的安全可靠.真的是这样吗? 想像一下:如今的手机比20年前的超级电脑都要强大10倍

Flex AIR应用GPS定位功能(Android和IOS)

说明:使用AIR进行GPS定位功能实现时,会经常判断GPS是否打开.一般的官方或者书上的介绍的方法,测试后,只能对Android系统进行判断,而对ios系统则无法进行判断. 经过研究测试,终于解决实现了能够同时适应于Android和ios系统的GPS定位功能.   实现:  1) 实例化Geolocation类,并添加监听,用于获取经纬度信息   注:geolocation = new Geolocation(); 该实例对象是全局声明,但必须是局部实例化,而不能把它声明为全局的变量实例化(即不

探索 Firebase 在 Android 和 iOS 的使用: 远程配置

本文讲的是探索 Firebase 在 Android 和 iOS 的使用: 远程配置, 远程配置是 Firebase 套件的一个特性,它允许我们在没有发布任何更新到 Google Play 或 Apple Store 的情况下,改变我们应用的外观及用户体验. 它的工作原理是通过允许我们预先定义一些存于应用内部的参数,然后通过 firebase 的控制台修改这些参数.随后这些参数可以对所有用户激活,或是仅面向某些特定的用户激活. 这个强大的特性使得我们有能力进行立即更新.临时更改或是在用户中尝试某

android和ios,音频互通方案

好久不更新博客上,从年前从公司辞职,这半年以来,一直靠做一些外包app养活自己!也算是达成了自己年前制定的目标!可是也想着总不能一直做外包吧,所以决定做一些自己觉得有意思的app,挂到应用商店上和app store上,只要有1-2k或者1-2w的活跃用户,自己也就满足了! 最近寻思做一个语音feed系统,难点呢,其实也就是在android和ios音频互通上!忙了一个星期解决了这个问题,所以就和大家分享下! 先说下整体的设计方案: 服务器:php 数据库:redis 协议:http + json

android和ios流媒体库推荐

1基本信息编辑 Vitamio是一款 Android 与 iOS 平台上的全能多媒体开发框架,全面支持硬件解码与 GPU 渲染.从2011年8月上线到2014年1月,Vitamio 凭借其简洁易用的 API 接口赢得了全球众多开发者的青睐,全球已经有超过3000 种应用在使用Vitamio,覆盖用户超过5亿. 2功能特性编辑 Vitamio能够流畅播放720P甚至1080P高清MKV,FLV,MP4,MOV,TS,RMVB等常见格式的视频,还可以在Android 与 iOS 上跨平台支持 MMS

Broadcom Wi-Fi芯片被爆漏洞,数百万台的Android、iOS设备遭殃

本文讲的是Broadcom Wi-Fi芯片被爆漏洞,数百万台的Android.iOS设备遭殃, 前言 Exodus Intelligence研究员Nitay Artenstein在博通(Broadcom)Wi-Fi芯片当中发现了一个漏洞,这个漏洞可怕到什么程度呢?只要在无线网络范围内,而且不管你是否已经连接特定的WiFi网络,黑客通过远程控制执行任意程序且无需用户交互的情况下发起攻击.目前这个漏洞主要是BCM43系列,包括 BCM4354.BCM 4358以及BCM4359 Wi-Fi芯片,除了

《腾讯iOS测试实践》一一2.3 iOS平台的特殊性

2.3 iOS平台的特殊性 iOS平台作为一种独立的操作系统平台,有很多其他平台所没有的特性.2.3.1 证书 我们在找工作时,需要向用人单位出示学校颁发的毕业证书,同理,要想我们开发的应用能够在iOS设备上安装启动,就需要向iOS设备提供由苹果公司颁发的证书,证明我们的应用是经过苹果公司官方认证的.iOS设备在启动App前,会先验证证书是否合法,这个过程被固化在了iOS系统中,除非手机越狱,否则都要经历这个过程. 要想开发iOS应用,首先要成为苹果公司认证的开发者(虽然Xcode 7之后可以用