发现一篇关于android 测试的培训,英文的,很全面。html
Android Testing Training: http://www.vogella.com/training/android/androidtesting.htmlandroid
Appium 是一个开源、跨平台的自动化测试工具,用于测试原生和轻量移动应用,支持 iOS, Android 和 FirefoxOS 平台。Appium 驱动苹果的 UIAutomation 库和 Android 的 UiAutomator 框架,使用 Selenium 的 WebDriver JSON 协议。Appinm 的 iOS 支持是基于 Dan Cuellar's 的 iOS Auto. Appium 同时绑定了 Selendroid 用于老的 Android 平台测试。web
优势:比较热门,社区活跃。能够跨APP。支持不少语言编写脚本,如Java,JS,PHP,Python,C#,Ruby等。不须要从新编译App。bash
缺点:测试IOS必须使用Mac。框架
uiautomator 测试框架提升用户界面(UI)的测试效率,经过自动建立功能 UI 测试示例,能够在一个或者多个设备上运行你的应用。
也是Android提供的自动化测试框架,基本上支持全部的Android事件操做,对比Instrumentation它不须要测试人员了解代码实现细节(能够用UiAutomatorviewer抓去App页面上的控件属性而不看源码)。dom
优势:基于Java,测试代码结构简单、编写容易、学习成本,一次编译,全部设备或模拟器都能运行测试,能跨App(好比:不少App有选择相册、打开相机拍照,这就是跨App测试)。工具
缺点:只支持SDK 16(Android 4.1)及以上,不支持Hybird App、WebApp。性能
早期Google提供的Android自动化测试工具类,虽然在那时候JUnit也能够对Android进行测试,可是Instrumentation容许你对应用程序作更为复杂的测试,甚至是框架层面的。经过Instrumentation你能够模拟按键按下、抬起、屏幕点击、滚动等事件。Instrumentation是经过将主程序和测试程序运行在同一个进程来实现这些功能,你能够把Instrumentation当作一个相似Activity或者Service而且不带界面的组件,在程序运行期间监控你的主程序。单元测试
缺点:对测试人员来讲编写代码能力要求较高,须要对Android相关知识有必定了解,还须要配置AndroidManifest.xml文件,不能跨多个App。学习
Selendroid 是一个 Android 原生应用的 UI 自动化测试框架。测试使用 Selenium 2 客户端 API 编写。Selendroid 能够在模拟器和实际设备上使用,也能够集成网格节点做为缩放和并行测试。
优势:也是基于Instrumentation的测试框架,能够测试Native App、Hybird App、Web App。
缺点:网上资料较少,社区活跃度也不大。
Monkey 是 Google 开发的 UI/应用测试工具,也是命令行工具,主要针对压力测试。你能够在任意的模拟器示例或者设备上运行。Monkey 发送一个用户事件的 pseudo-random 流给系统,做为你开发应用的压力测试。
优势:使用简单。
缺点:只能产生随机事件,没法按照既定的步骤操做。
也是Android SDK 提供的测试工具。 严格意义上来讲MonkeyRunner实际上是一个Api工具包,比Monkey强大,能够编写测试脚原本自定义数据、事件。
缺点:脚本用Python来写,对测试人员来讲要求较高,有比较大的学习成本。
MonkeyTalk 是世界上最强大的移动应用测试工具。MonkeyTalk 自动为 iOS 和 Android 应用进行真实的,功能性交互测试。MonkeyTalk 提供简单的 "smoke tests",复杂数据驱动的测试套件。MonkeyTalk 支持原生,移动和混合应用,真实设备或者模拟器。MonkeyTalk 使得场景捕获很是容易,能够记录高级别,可读的测试脚本。一样的命令能够用在 iOS 和 Android 应用上。你能够记录一个平台的一个测试,而且能够在另一个平台回放。MonkeyTalk 支持移动触摸和基于手势交互为主的移动体验。点击,拖拽,移动,甚至是手指绘制也能够被记录和回放。
优势:功能强大。
缺点:主要测试安卓应用,不适合咱们的。
Robotium 是一款国外的Android自动化测试框架,主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各类手势操做(点击、长 按、滑动等)、查找和断言机制的API,可以对各类控件进行操做。Robotium结合Android官方提供的测试框架达到对应用程序进行自动化的测 试。另外,Robotium 4.0版本已经支持对WebView的操做。Robotium 对Activity,Dialog,Toast,Menu 都是支持的。
优势:基于Instrumentation的测试框架,目前国内外用的比较多,资料比较多,社区也比较活跃。
缺点:对测试人员来讲要有必定的Java基础,了解Android基本组件。不能跨App。
Robolectric 是一款Android单元测试框架,使用 Android SDK jar,因此你可使用测试驱动开发 Android 应用。测试只需几秒就能够在工做站的 JVM 运行。Robolectric 处理视图缩放,资源加载和大量 Android 设备原生的 C 代码实现。Robolectric 容许你作大部分真实设备上能够作的事情,能够在工做站中运行,也能够在常规的 JVM 持续集成环境运行,不须要经过模拟器。
缺点:语言太接近安卓。
Android Test Kit 是一组 Google 开源测试工具,用于 Android 平台,包含 Espresso API 可用于编写简洁可靠的 Android UI 测试。
AndroidJUnit4 是一个让 JUnit 4 能够直接运行在 Android 设备上的开源命令行工具。
calabash-android 是一个基于 Cucumber 的 Android 的功能自动化测试框架。Calabash 容许你写和执行,是开源的自动化移动应用测试工具,支持 Android 和 iOS 原生应用。Calabash 的库容许原生和混合应用的交互测试,交互包括大量的终端用户活动。Calabash 能够媲美 Selenium WebDriver。可是, 须要注意的是 web 应用和桌面环境的交互跟触摸屏应用的交互是不一样的。Calabash 专为触摸屏设备的原生应用提供 APIs。
NativeDriver 是 WebDriver API 的实现,是原生应用 UI 驱动,而不是 web 应用。
RoboSpock 是一个开源的 Android 测试框架。提供简单的编写 BDD 行为驱动开发规范的方法,使用 Groovy 语音,支持 Google Guice 库。RoboSpock 合并了 Robolectric 和 Spock 的功能。
一些几乎没有继续维护的开源 Android 测试工具项目(至少是最近几个月都没有更新的项目)。
Emmagee 是监控指定被测应用在使用过程当中占用机器的CPU、内存、流量资源的性能测试小工具。Emmagee 同时还提供很是酷的一些特性,好比定制间隔来收集数据,使用浮动窗口呈现实时进程状态等。
Scirocco(scirocco-webdriver) 是开源的应用自动化测试工具,能够从 Eclipse 访问必要的测试设备。Scirocco 提供自动化的 Android 应用测试功能,代替手工测试。Scirocco 支持谷歌的 NativeDriver,把 AndroidDriver 做为主要的测试库。Scirocco 包括三个部分:NativeDriver,AndroidDriver,scirocco 插件(一个 Eclipse 插件;能够自动执行 scenario 测试和制做测试报告截图)。