Android自动化测试初探

移动开发 Android 自动化
手机自动化测试的原理为PC上一个控制端(测试工具)与手机上的一个agent端,通过串口、USB或者无线方式将PC与手机终端相连,然后应用测试工具向手机发送请求或者命令,手机收到命令或者请求后,交给agent端解析,然后agent将这些解析的命令下发给手机的各个功能模块所能识别的命令,调用那些功能模块模拟操作。完成这些操作后,手机会返回一些信息,agent可以抓取这些信息,然后传回给PC端,这样就完成了一个完整的手机自动化测试。

现在已经有大量的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。

责任编辑:闫佳明 来源: oschina
相关推荐

2013-05-16 11:07:37

Android开发Android应用自动化测试

2022-02-17 10:37:16

自动化开发团队预测

2012-02-27 17:34:12

Facebook自动化

2021-09-03 09:56:18

鸿蒙HarmonyOS应用

2014-04-16 14:15:01

QCon2014

2011-12-23 17:09:57

自动化测试

2021-06-30 19:48:21

前端自动化测试Vue 应用

2012-12-24 22:54:31

2014-11-20 13:49:15

2011-06-03 17:24:48

自动化测试

2023-03-27 15:37:43

自动化测试开发

2011-01-20 10:17:25

ibmdwWeb

2011-05-30 17:31:26

自动化测试

2012-03-29 10:57:12

Web自动化测试

2022-05-10 11:18:42

自动化测试软件测试

2022-06-08 14:22:55

自动化测试测试

2009-08-19 09:00:48

单元测试框架自动化测试

2021-06-25 10:57:30

前端自动化测试开发

2021-06-26 07:40:21

前端自动化测试Jest

2023-05-18 14:01:00

前端自动化测试
点赞
收藏

51CTO技术栈公众号