目录:android
Android SDK自带的测试工具,在测试过程当中会向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试,也有日志输出。实际上该工具只能为程序作一些压力测试,因为测试事件和数据都是随机的,不能自定义,因此有很大的局限性。shell
$~: android shell monkey -p [project package name] -v [500]
也是Android SDK提供的测试工具。严格意义上来讲MonkeyRunner实际上是一个Api工具包,比Monkey强大,能够编写测试脚原本自定义数据、事件。缺点是脚本用Python来写,对测试人员来讲要求较高,有比较大的学习成本。浏览器
是早期Google提供的Android自动化测试工具类,虽然在那时候JUnit也能够对Android进行测试,可是Instrumentation容许你对应用程序作更为复杂的测试,甚至是框架层面的。经过Instrumentation你能够模拟按键按下、抬起、屏幕点击、滚动等事件。Instrumentation是经过将主程序和测试程序运行在同一个进程来实现这些功能,你能够把Instrumentation当作一个相似Activity或者Service而且不带界面的组件,在程序运行期间监控你的主程序。缺点是对测试人员来讲编写代码能力要求较高,须要对Android相关知识有必定了解,还须要配置AndroidManifest.xml文件,不能跨多个App。服务器
也是Android提供的自动化测试框架,基本上支持全部的Android事件操做,对比Instrumentation它不须要测试人员了解代码实现细节(能够用UiAutomatorviewer抓取App页面上的控件属性而不看源码)。基于Java,测试代码结构简单、编写容易、学习成本较低,一次编译,全部设备或模拟器都能运行测试,能跨App(好比:不少App有选择相册、打开相机拍照,这就是跨App测试)。缺点是只支持SDK 16(Android 4.1)及以上,不支持Hybird App、WebApp。网络
是Google的开源自动化测试框架。相对于Robotium和UIAutomator,它的特色是规模更小、更简洁,API更加精确,编写测试代码简单,容易快速上手。由于是基于Instrumentation的,因此不能跨App。配合Android Studio来编写测试的简单例子。架构
也是基于Instrumentation的测试框架,能够测试Native App、Hybird App、Web App,可是网上资料较少,社区活跃度也不大。app
也是基于Instrumentation的测试框架,目前国内外用的比较多,资料比较多,社区也比较活跃。缺点是对测试人员来讲要有必定的Java基础,了解Android基本组件,不能跨App。框架
是淘宝出的一个移动测试框架/平台,同时支持iOS和Android。Android部分也是基于Instrumentation,在Android原有的ActivityInstrumentationTestCase2类基础上进行了扩展,提供一整套面向对象的API。这里有详细介绍。工具
是最近比较热门的框架,社区也很活跃。这个框架应该是是功能最强大的学习
它的优势:
它的哲理是:
它的设计理念:
相关限制:
总结: