1、Monkeyrunner:优点:操作最为简单,可以录制测试脚本,可视化操作;缺点:主要生成坐标的自动化操作,移植性不强,功能最为局限;
2、Rubotium:主要针对某一个APK进行自动化测试,APK可以有源码,也可以没有源码,功能强大;缺点是针对APK操作,而且需要对APK重新签名(有工具),因此操作相对复杂;
3、UiAutomator:优点:可以对所有操作进行自动化,操作简单;缺点:Android版本需要高于4.0,无法根据控件ID操作,相对来说功能较为局限,但也够用了;
4、Monkey:准确来说,这不算是自动化测试,因为其只能产生随机的事件,无法按照既定的步骤操作;
由上面介绍可以有这样的结论:测试某个APK,可以选择Rubotium;测试过程可能涉及多个APK,选择UiAutomator;一些简单的测试,选择Monkeyrunner;
Hierachyview+Monkey |
UiAutomator + Monkey |
Robotium |
|
权限 |
root |
普通 |
普通 |
是否需要签名 |
是 |
否 |
否 |
响应速度 |
10s(网友测试数据) |
4s(网友测试数据) |
1-2s |
是否支持WebView |
否 |
否 |
是 |
是否支持跨应用测试 |
是 |
是 |
否 |
支持该特性的Android API |
? |
API 16 |
API 7 |
是否支持控件ID |
是 |
否 |
是 |
从上述数据来看,Android提供的测试工具各有优缺点,有的支持WebView测试,有的不支持。有的支持跨应用,有的不支持。因此,一个好的Android测试工具,更多地是兼容了上述几种测试方法。例如,Appium。
UiAutomator Testcase类继承自JUnit的TestCase类。而Robotium、Espresso则继承自activityInstrumentationTestCase2。从这个继承关系,我们也能理解为什么采用Robotium的方式,应用需要签名。而采用UiAutomator则不需要。其原因是:采用Robotium的方式,其测试代码本质上是一个APK。根据Android的安全机制,应用是需要签名的。
时间: 2024-10-12 08:07:20