
1、Monkey是Android SDK附带的测试工具。在测试过程中,它会向系统发送一个伪随机的用户事件流,比如按键输入、触摸屏输入、手势输入等。实现正在开发的应用的压力测试,也有日志输出。实际上,该工具只能进行一些压力测试。由于测试事件和数据是随机的,不可定制,因此具有很大的局限性。
2、MonkeyRunner也是Android SDK提供的测试工具。严格来说,MonkeyRunner其实是一个Api工具包,比Monkey更强大,可以编写测试脚本定义数据和事件。缺点是脚本用Python写,对测试人员要求较高,学习成本较高。
3、Instrumentation是Google早期提供的Android自动化测试工具类。虽然JUnit当时也可以测试Android,但是插装允许您对应用程序进行更复杂的测试,甚至是在框架级别。通过仪器,您可以模拟按键、抬起、屏幕点击和滚动等事件。仪器通过在同一进程中运行主程序和测试程序来实现这些功能。你可以把插装看作一个类似于活动或服务的没有接口的组件,在程序运行过程中监控你的主程序。缺点是测试人员需要有很高的编写代码的能力,对Android相关知识有一定的了解,还需要配置AndroidManifest.xml文件,不能跨多个app。
4、UiAutomator也是Android提供的自动化测试框架,基本支持所有Android事件操作。与插装相比,它不需要测试人员知道代码实现的细节(UiAutomatorviewer可以用来抓取App页面上的控件属性,无需查看源代码)。基于Java,测试代码结构简单,易于编写,学习成本高。所有设备或模拟器一旦编译好就可以运行测试,而且可以跨app(比如很多App选择相册,打开相机拍照,这就是跨App测试)。缺点是只支持SDK 16(Android 4.1)及以上版本,不支持Hybird App和WebApp。
5、Espresso是Google的开源自动化测试框架。与Robotium和UIAutomator相比,它的特点是规模更小、更简洁、API更准确、编写测试代码简单、易于快速上手。因为是基于仪器仪表的,所以不能跨App。写一个简单的用Android Studio测试的例子。
6、Selendroid:也是基于插装的测试框架,可以测试Native App、Hybird App、Web App,但是线上资料少,社区活动少。
7、Robotium也是一个基于仪器的测试框架。目前国内外应用广泛,素材较多,社区活跃。缺点是测试人员要有一定的Java基础,了解Android的基本组件,不能跨app。
8、Athrun是淘宝开发的移动测试框架/平台,同时支持iOS和Android。Android部分也是基于Instrumentation,扩展了Android原有的activity Instrumentation test case 2类,提供了一组面向对象的API。下面详细介绍一下。
9、Appium是最近比较流行的一个框架,社区也很活跃。这个框架应该是最强大的。








