Android自动化测试解决方案

如今已经有大量的Android自动化测试架构或工具可供咱们使用,
其中包括:Activity Instrumentation, MonkeyRunner, Robotium, 以及Robolectric。
另外LessPainful也提供服务来进行真实设备上的自动化测试。
Android自身提供了对instrumentation测试的基本支持,其中之一就是位于android.test包内的 ActivityInstrumentationTestCase2类,它扩展了JUnit的TestCase类来提供Android activities的功能测试。在应用测试中,每个activity首先会被Instrumentation初始化,而后再加载到Android模拟器或设备的Dalvik虚拟机中来执行。
Android SDK自带一个测试工具MonkeyRunner,它提供的API和执行环境能够运行Python语言编写的测试代码。它提供API来链接设备,安装/卸载应用,运行应用,截屏,比对图片来判断特定命令执行后的屏幕是否包含预期信息,以及运行对应用的测试。MonkeyRunner使用 ActivityInstrumentationTestCase2, ProviderTestCase,ServiceTestCasek, SingleLaunchActivityTestCase及其余类来定义测试用例,并使用InstrumentationTestRunner类来运行测试。
Robotium是另外一种经过InstrumentationTestRunner来完成Android交互式测试的架构,它横跨多个 activities,支持功能测试,系统测试和接收测试。Robotium支持Activities、Dialogs、Toasts、Menus、 Context Menus甚至Honeycomb,而且它能够同Maven和Ant集成来完成持续集成测试。Robotium被称之为针对Android应用的又一个 Selenium。
Robolectric另辟蹊径,它并不依赖于Android提供的测试功能,它使用了shadow objects而且运行测试于普通的工做站/服务器JVM,不像模拟器或设备须要dexing(Android dex编译器将类文件编译成Android设备上的Dalvik VM使用的格式),打包,部署和运行的过程,大大减小了测试执行的时间。Pivotal实验室声称使用Robolectric能够在28秒内运行1047 个测试。
LessPainful将Android测试又推动了一步,它提供了一个多设备平台自动化测试的服务。用户上传应用(*.apk)和用Cucumber(一种业务相关的DSL)编写的测试文件,选择测试运行须要的设备配置,最后测试将自动执行并生成测试报告。它支持的设备包括 Garmin Asus,几款HTC,LG,Samsung Galaxy,Sony Xperia和Motorola Motodefy。
相关文章
相关标签/搜索