原文:Android and iOS UI Testing with Calabash 作者: ALEXANDER GEDEVANISHVILI 正文 测试是任何移动应用程序开发过程中必不可少的一部分...在这篇文章中,你将学习如何使用Calabash通过简单的英语指令来自动化你的Android和iOS应用程序的UI测试,并尽可能验收测试。 什么是UI测试?...官方Android文档涵盖了有关Espresso的一些主题,即Android UI测试框架。同样,Apple建议使用XCTest框架。...What Makes Calabash Tick? Calabash框架由可以与Android和iOS应用程序交互的库组成。它可以在真实设备上运行。所以它可以做测试人员手工做的事情。...GitHub上有两个不同的项目,让Calabash成为可能: calabash-android - 适用于Android calabash-ios - 适用于iOS Calabash可以使用任何基于Ruby
1.Calabash(适用于Android和iOS) Calabash 是一个开源的验收测试框架,支持Android和iOS自动化。...Calabash为Android和iOS自动化测试提供了一个单独的库。...Calabash提供了一个桥梁,允许Cucumber测试对iOS和Android运行和验证。Cucumber测试使用一列语句写入,这些语句会形成很多测试场景。...在Calabash,Cucumber语句只能被定义一次,但可以在Cucumber脚本的不同场景中重复使用。...◆需要Calabash框架安装在ios的ipa文件中。 ◆我们必须要有iOS的app代码。 ◆除了Ruby,对其他语言不友好。
其次,在Android团队想要把方案推广到iOS平台的时候,我们发现了一个很大的问题:iOS接入Calabash的成本太高。...在Android团队用写好的用例进行了几个版本的冒烟测试之后,团队内部Android、iOS、QA的同学坐下来一起进行了方案后续的探究,最终决定放弃Calabash,继续寻找可以替代的方案。...: IDEVICENAME='ios' android: IDEVICENAME='android' 其中Android/config和iOS/config是Android和iOS两个平台的特定配置,这部分配置代码在...完全移除Calabash之后,所有Calabash内置的Steps就没有了,需要重新封装。其中Feature、Scenario、Step的概念没有发生变化,和Calabash完全一致。...Android依旧是提供apk,iOS提供重签名的ipa包即可,无需源码集成,这就解决了Calabash方案iOS集成成本大的问题。
关注平板电脑的发展 尽量规避BYOD(自带设备办公)模式的风险 10款移动应用测试框架 Appium (iOS/Android) Calabash (iOS/Android) KIF (iOS) Robolectric...(Android) Flip Test (iOS) Gitorious (iOS) Frank (iOS) Kiwi (iOS) App Grader (Android) Cedar (iOS) 从同时支持...Android / iOS这个条件来看, 只有Appium和Calabash能胜任, 但Appium作为后起之秀比Calabash要更为优秀一些 Appium支持更多编程语言; Appium不要求重新编译应用...(App)或者以任何方法修改它, 而Calabash测试iOS应用时需要注入第三方包 Appium的社区更活跃 所有最适合的移动应用测试工具无疑就是Appium了 Appium支持Mac / Windows.../ Linux 三个系统平台, 但只要在Mac上能同时支持Android / iOS测试, windows和linux上只能支持Android测试 所以我们使用Mac来搭建测试环境
5、Calabash https://github.com/calabash Calabash是一个适用于iOS和Android开发者的跨平台app测试框架,可用来测试屏幕截图、手势和实际功能代码。...支持BDD的自动化框架比较少,可以在calabash和RoboSpock及Jbehave之间选择。...若想同时支持Android和IOS,可选框架有Appium和Calabash,或AthRun。 若为单元测试选择框架,可选Instrumentation或Robolectric。...5、Calabash-ios 详见Calabash-android 描述。...IOS测试框架中支持BDD的有calabash和Kiwi。
Calabash https://github.com/calabash Calabash是一个适用于iOS和Android开发者的跨平台app测试框架,可用来测试屏幕截图、手势和实际功能代码。...需要Calabash框架安装在ios的ipa文件中, 因此测试人员必须要有iOS的app源码。 除了Ruby,对其他语言不友好。 6....支持BDD的自动化框架比较少,可以在calabash 和 RoboSpock及Jbehave之间选择。 若想同时支持Android和IOS,可选框架有Appium和Calabash,或AthRun。...Calabash-ios 详见Calabash-android 描述。 6....IOS测试框架中支持BDD的有calabash 和Kiwi。 可选用的单元测试框架有Kiwi,Specta,Quick等,而KIF,Subliminal和calabash更适用于UI级验收测试。
calabash = new Calabash(); public CalabashBrother(String name,String color){ System.out.println...= (Calabash) calabash.clone(); } catch (CloneNotSupportedException e) { e.printStackTrace...(); } return brother; } Android 源码中的原型模式 Android 源码中的原型模式多不胜数,这里摘抄一段。...package android.animation; public abstract class Keyframe implements Cloneable { boolean mHasValue...动画中的关键帧,我们都知道动画是连续的一帧帧图片指定时间播放形成的视觉效果,Android 中的 SDK 有很方便的动画定义 API,一段动画中有许多关键帧,关键帧之间通过数学插值的方法自动生成其它帧
目前Android平台下已经出现多种Functiong Testing测试工具,如Native Driver, Robotium, Calabash等。...在尝试对比后,最终选择了Calabash Android作为解决方案。...Calabash Android是Cucumber在Android平台的实现,使用Ruby书写Function Test,并提供了一组操作Anadroid App元素的API。...使得iOS和Android平台中的Feature可以重用 Jenkins集成Calabash Android 运行Calabash Android需要Ruby环境,同时也建议安装RVM。...在Jenkins中执行运行Calabash Android的shell命令前需要注意指定运行时的gemset ? Calabash Android在Jenkins中的执行命令如下: ?
| | |--聚合各个节点的功能测试结果输入报告 | |--adhoc分发通知测试人员 | |--enterprise分发通知测试人员 | |--appstore提审核 | Android...calabash:iOS端用来进行自动化功能测试的工具,基于cucumber。 Android: Appium:类似于calabash的自动化测试框架。...之所以没有在安卓上用calabash,是因为项目中用了蚂蚁金融的一个SDK,其对测试不太友好,不支持像calabash这样使用Instrumentation的框架。...calabash。...在安卓遇到的坑相对来说多一点,首先calabash在安卓上底层是用的Instrumentation,调研过calabash的源码发现如果要让它支持UIAutomator的话,基本上等于重新造一个轮子了,
下面简单的列了一些iOS开发中能够用来UI Testing的框架: 框架 语言 支持平台 Calabash Gherkin \ Ruby iOS \ Android EarlGrey OC \ Swift...,但是Calabash有着更丰富的特性,比如更丰富的内建步骤、更多的手势支持等,支持的平台也更加丰富,使用范围更广。...具体使用哪种工具大家可以根据自己项目的实际情况来考虑,我目前的项目中使用的是Calabash。...使用Calabash-iOS写Functional Testing 要想在你的iOS工程中使用Calabash你需要一定的步骤安装依赖包以及配置工程,可以移步到Calabash查看具体的步骤。...为了方便调试,Calabash还提供一个的命令行工具,通过命令calabash-ios console来使用。
Android 系统因为自己的开源性,测试工具和测试方法比较广为流传,但是 iOS 系统的私密性,导致很多测试的执行都有点麻烦。...优点: 测试场景是在 Cucumber 的帮助下,用可理解的英语句子写的,还有活跃的社区支持,以及不断扩大中的库 缺点:对手势的支持有限,所以在设备上运行测试有点难 5、Calabash-iOS Calabash...是一个适用于 iOS 和 Android 开发者的跨平台 app 测试框架,可用来测试屏幕截图、手势和实际功能代码。...而 Calabash-iOS 就是一个基于 Calabash 的 iOS 的功能、自动化测试框架。...8、Appium Appium 是一个开源的、跨平台的自动化测试工具,支持 iOS、Android 和 FirefoxOS 平台。
盘点App测试会用到哪些工具 目录 1、常见应用模式 2、常用平台工具 2.1、Android平台 2.2、iOS平台 3、常见的UI自动化框架 3.1、Android平台 3.2、iOS...平台 4、常见的单元测试框架 4.1、Android平台 4.2、iOS平台 5、常用的抓包工具 6、弱网模拟 7、常用的专项测试工具 7.1、Android平台 7.2、iOS平台...8、静态代码分析 8.1、Android平台 8.2、iOS平台 9、代码覆盖率 10、常用的云测平台 10.1、免费开源 10.2、商业(限时免费) 11、持续集成 12、监控SDK...软件测试 Instrumentation Appium Robotium Instrumentation Athrun Monkey MonkeyRunner UIautomator Selendroid Calabash-Android...Espresso cafe Macaca 3.2、iOS平台 # 公众号:AllTests软件测试 UIautomation Frank Appium Monkeytalk Calabash-iOS
它的技术栈主要是JavaSpring,Android,iOS,MySQL等。...Calabash是一个手机功能测试系统,它使用Cucumber将Android的测试框架Robotium9和iOS的测试框架Frank10封装了起来,使得Cucumber的Step可以调用Robotium...这样就可以实现一个测试场景里面既包含手机端测试,又包含服务器端测试,比如: I"submit"updateto"Facebook"with"Iamhappytoday"on"Android" I"get"updateon"Facebook...如果重新选择测试工具,我还是会选择Cucumber和Calabash,主要原因是它们可以方便的统一做手机和服务器的功能测试。...虽然RobotFramework配合Selenium也能实现类似的功能,但是需要使用RobotFramework对Selenium重新进行封装,没有Calabash方便易用。
您可以对 Android和IOS真实设备 执行手动和自动化测试。它提供了5000多种设备浏览器组合,允许同时在多个设备上测试移动应用程序。...pCloudy可以借助多种工具和框架集成(例如Appium,Espresso,Calabash,Jira等)执行自动化测试。它还支持Jenkins集成,为持续集成和连续测试奠定了坚实的基础。...在pCloudy中,我们使用各种自动化测试工具和框架,例如Appium, Bamboo, Calabash, Cucumber, Espresso etc....Appium支持Android以及IOS设备的自动化测试。它是一个开放源代码框架,支持对本机,混合和移动Web应用程序的测试。...IOS支持XCUIT,Android支持UIAutomator2。这样,Appium可以在Android和IOS移动设备上执行自动化。 在pCloudy中进行手动测试 ?
在最新的 Selenium 中加入了对 Android 和 iOS 的支持,不过现在还不是很稳定,所以 Viff 还支持 Android 和 iOS 上的浏览器测试。...比如 Calabash[1]就是一个十分好用的基于 Cucumber[2]的 BDD 移动测试工具,它同时支持 Android 和 iOS。...使用 Calabash,测试人员可以使用自然语言来编写的 cucumber 测试脚本,然后通过在 PC 上运行 cucumber 脚本来测试 iOS 和 Android 设备上的应用程序。...如果你的公司拥有大量的手动测试人员,并且希望进行移动自动化测试,ThoughtWorks 针对这样的公司开发了一套全新的移动自动化测试工具:Lever,他和 Calabash 一样,同时支持 Android...对于最新版的 Android 4.2+系统,由于 Google 使用了新的测试基础控件 Google’s UiAutomator,导致 Calabash 并不适用了。
底层使用了Google开源的 Earl Grey(iOS)和 Espresso(Android)。...;setup 起来相对比较麻烦, 经常需要好几个小时来搭建测试环境; Robotium 和 Calabash 的开发维护团队几乎已经停止支持这些框架了。...其他的一些优点: Detox支持Android和iOS。我们的 React Native 在iOS和Android的代码几乎相同, 因此也可以复用一套E2E的测试 case 。...Calabash (之前我们选用的测试框架,语言是ruby): 比如我们要点击ButtonA, 进入第二个页面后点击ButtonB. 2个页面之间有一些animation和network request...具体实现方式Detox的底层依赖于 Earl Grey 和 Espresso, 这两个灰盒测试框架分别在 iOS 和 Android 的 native 进程了保证了测试框架和 App 同步。
C#(.Net) 无 Android支持所有版本 UIAutomation(iOS)/UIAutomator+Selendroid(Android) Airtest Android&iOS&Windows...但是仅限于Android,而且需要有android开发经验,对技术水平要求较高。...KIF、Frank、Calabash都是通过使用代码的形式来模拟事件触发,使得被测代码就像是由用户行为所触发的一样。但这样的代价是插入一个额外层的复杂度。...IOS测试框架中支持BDD的有calabash 和Kiwi以及Cucumber。...可选用的单元测试框架有Kiwi,Specta,Quick等,而KIF,Subliminal和Calabash更适用于UI级验收测试。
移动端的自动化测试,最常见的是 Android 自动化测试,我个人觉得 Android 的测试优先级会更高,也更开放,更容易测试;而 iOS 相较于 Android 要安全稳定的多,但也是一个必须测试的方向...Xcode 下载地址:Sign In - Apple 下载安装好的图标如下 : 先来看目前主流的 iOS 移动测试框架 Appium:目前最常用的 App 自动化测试框架,具备跨平台性 Calabash-IOS...推出的一款 iOS 移动测试框架,也是 Appium 跨平台的底层驱动;WDA 本身也是一个完整的基于 webdriver 协议的框架 Uiautomation :在 Xcode8 后废弃 之前的 Android...框架作为底层的驱动框架,当时就介绍说 Appium 的优点之一就是跨平台性,其实也就是因为其底层封装了 WebDriverAgent,而我们期望的是: 做一套可以跨平台支持的 App 测试方案,可以在公司的 Android
图片移动端的自动化测试,最常见的是 Android 自动化测试,我个人觉得 Android 的测试优先级会更高,也更开放,更容易测试;而 iOS 相较于 Android 要安全稳定的多,但也是一个必须测试的方向...https://developer.apple.com/download/下载安装好的图标如下 :图片先来看目前主流的 iOS 移动测试框架Appium:目前最常用的 App 自动化测试框架,具备跨平台性Calabash-IOS...Facebook 推出的一款 iOS 移动测试框架,也是 Appium 跨平台的底层驱动;WDA 本身也是一个完整的基于 webdriver 协议的框架Uiautomation :在 Xcode8 后废弃之前的 Android...框架作为底层的驱动框架,当时就介绍说 Appium 的优点之一就是跨平台性,其实也就是因为其底层封装了 WebDriverAgent,而我们期望的是:做一套可以跨平台支持的 App 测试方案,可以在公司的 Android
领取专属 10元无门槛券
手把手带您无忧上云