Android几种经常使用自动化测试框架对比(图源博客园)java
Monkey是Android SDK自带的测试工具,在测试过程当中会向系统发送伪随机的用户事件流,如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试,也有日志输出。实际上该工具只能作程序作一些压力测试,因为测试事件和数据都是随机的,不能自定义,因此有很大的局限性。(用于Monkey稳定性测试及内存泄漏测试)python
是Android SDK提供的测试工具。严格意义上来讲MonkeyRunner实际上是一个Api工具包,比Monkey强大,能够编写测试脚原本自定义数据、事件。缺点是脚本用Python来写,对测试人员来讲要求较高,有比较大的学习成本;使用By id/name/text方法操控(hierarchyviewer),执行速度太慢。典型应用:安装,卸载,启动Activity,点击X,Y坐标,发送按键事件,drag,截屏等。linux
是Android提供的自动化测试框架,基本上支持全部的Android事件操做。是用来作UI测试的,也就是普通的手工测试,点击每一个控件元素看看输出的结果是否符合预期。对比Instrumentation它不须要测试人员了解代码实现细节(能够用UiAutomatorviewer抓去App页面上的控件属性而不看源码)。android
是基于Instrumentation的测试框架,主要针对android平台的应用进行黑盒自动化测试,它提供了模拟各类手势操做(点击,长按,滑动等)、查找和断言机制的API,可以对各类控件进行操做。Robotium结合android官方提供的测试框架达到对应用程序进行自动化测试。windows
录制工具Radar(不稳定)、Testin(不提供源码)、官网工具(收费)
开发环境:脚本语言java;Eclipse中引入:robotium-solo-**.jarruby
是开源的移动端自动化测试框架;支持Native App、Hybird App、Web App;支持Android、iOS、Firefox OS;是跨平台的能够在mac,windows以及linux系统上。用Appium自动化测试不须要从新编译App;脚本语言:Java、python、ruby、C#、Objective C、PHP等主流语言。框架
Appium扩展自Selenium,扩展了WebDriver以便更适用于移动设备。具备Web自动化测试经验的同窗可直接上手,不须要为了自动化测试来重造轮子。工具
总结:Android 4.2以上是用UiAutomator,Android 2.3 ~ 4.1用的是Instrumentation,Appium在IOS上是Uiautomation。因此Appium拥有了以上几大框架的全部优势:跨App,支持Native App、Hybird App、Web App,还支持N种语言来编写你的测试脚本。学习
是早期Google提供的Android自动化测试工具类,虽然在那时候JUnit也能够对Android进行测试,可是Instrumentation容许你对应用程序作更为复杂的测试,甚至是框架层面的。经过Instrumentation你能够模拟按键按下、抬起、屏幕点击、滚动等事件。Instrumentation是经过将主程序和测试程序运行在同一个进程来实现这些功能,你能够把Instrumentation当作一个相似Activity或者Service而且不带界面的组件,在程序运行期间监控你的主程序。缺点是对测试人员来讲编写代码能力要求较高,须要对Android相关知识有必定了解,还须要配置AndroidManifest.xml文件,不能跨多个App。测试
是Google的开源自动化测试框架。相对于Robotium和UIAutomator,它的特色是规模更小、更简洁,API更加精确,编写测试代码简单,容易快速上手。由于是基于Instrumentation的,因此不能跨App。
是基于Instrumentation的测试框架,能够测试Native App、Hybird App、Web App,可是网上资料较少,社区活跃度也不大。
------ 做者:maetelibom 来源:CSDN 原文:https://blog.csdn.net/maetelibom/article/details/51557941