http://www.cnblogs.com/CharlesGrant/p/4727926.html
Android自动化测试框架
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的安全机制,应用是需要签名的。
本文对比分析了Android自动化测试框架Monkeyrunner、Rubotium、UiAutomator和Monkey的特点及应用场景,探讨了各自的优缺点,并结合权限需求、是否需要签名、响应速度等关键指标进行了综合评价。
2823

被折叠的 条评论
为什么被折叠?



