1.monkey
Monkey是谷歌自家东西,它可以生成一些伪随机用户事件流例如模拟用户的点击等手势,以及一些系统级的事件。它应该是目前流行移动端自动化框架或者工具的一个鼻祖。Monkey 更应该算是一个客户端性能测试工具,测试客户端应用的稳定性,健壮性还是相当不错的。Monkey 也无需而外安装,在android SDK的platform-tools目录下。 在进行SDK环境配置时可以把该路径配置到系统变量的path中,便可以直接通过命令进行使用。
2.Monkeyrunner
Monkeyrunner 同样是android SDK 自带的测试工具,看名字还跟Monkey很像,但是他们的作用完全是在不同领域。Monkey 更多用于客户端性能,发送的随机事件是基本没法控制的,而Monkeyrunner则强大很多,可以用于做功能测试,回归测试并且可以自己定义测试扩展,灵活性较大。
Monkeyrunner 工具提供了一些API,可以通过该API来控制Android设备或者模拟器。 可以通过编写python脚本去安装Android 应用,运行应用,发送模拟按键,手势,截图等等,可以说你能在设备中干的事情,Monkeyrunner 都能干。
网上已经很多人分享了Monkeyrunner录制脚本和回放的脚本,可以下载下来,直接放到android SDK的platform-tools目录下,通过命令 monkeyrunner 脚本名 便可以启动录制器,录制你需要的自动化测试脚本或者回放。
Monkeyrunner 足够强大了,但是录制的脚本是以坐标轴来作为定位方式,而安卓设备类型众多,各种分辨率,所以移植性不好。
3.Uiautomator
Uiautomator 是通过以控件的方式来定位,当然也是支持坐标轴的方式来定位。Uiautomator是Android 4.1后加入的,所以仅支持Android 4.1 和以上的版本,但是不支持webview。
4.Robotium
Robotium支持所有的Android 版本,是居于原生的Instruments 二次封装的一个框架。最新版本好像已经更新到了5.0.1, 稳定性等都不错。而且官方还出了一个录制插件 Robotium Recorder(http://robotium.com/products/robotium-recorder)不过这个插件是需要收费的。Robotium 只支持Java语言开发并只支持Android,并不支持跨进程。
5.Appium
Appium 官方宣称支持同时支持Android, IOS, FirefoxOS。并且appium 你可以用任何你熟悉的开发语言来进行编写测试用例。例如Java, Python, Ruby, PHP, JavsScript, Object-C, C#.....Appium 在Android 上如果是大于4.1 则用的是uiautomator, 以下版本则使用Selendroid(selenium for android). IOS上采用uiautomation库做支持。Appium 的稳定性相对较差点,但是同样采用的控件的定位方式对不懂java而熟悉其它语言的来说还是相当不错的选择。