`
blogfeifei
  • 浏览: 1196423 次
文章分类
社区版块
存档分类
最新评论

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。

  为了了解更多LessPainful提供的服务细节,我们采访了LessPainful公司的CEO Jonas Maturana Larsen。下面就是这次简短的访问:

  InfoQ:在不同版本的Android上运行用程序,存在什么问题了保程序能正常运行,开者需要在Android的每一个版本上测试他的

  JML举个例子,SAXParser在Android 2.2之前有一个bug存在于对ContentHandler.startElement的回调中,它导致应用产生错误的行为。

  到目前为止,我们已经在很多方面发现了不同操作系统版本间的差异性。其中一些可能在2.1-update1上导致崩溃,但可以正常运行于2.1-update3和2.2.

  InfoQ:不同的设备对Android,有没有真正的区?你能否们举个例子,比如Android2.2用可以运行在HTC但不能运行于Samsung?(或其他各种Android版本和设备制造商的合)

  JML在LG手机,HorizontalScrollViews有时会导致子视图上的背景图片消失。这个问题存在于我们测试的所有的LG手机,不管Android版本是多少。

  如果你不自己处理这类问题,它将导致你的应用在不同设备上不尽相同。例如,Motorola将会用红色边框来高亮一个输入域。在我曾经参与的一个项目中,我们用同样的红色边框来表示输入有误。

  还有一些问题,与其说和制造商相关,不如说是和硬件相关:比如,一些手机使用了较小的RAM和高分辨率的摄像头,当你处理手机上的图像时就会将导致崩溃。

  InfoQ测试是如何行的?

  JML测试就如同运行一个ActivityInstrumentationTestCase2,主要使用Robotium来运行。我们对应用所做的唯一修改就是去掉已有的签名,再为它重新生成我们的签名文件。

  在测试运行完成后,应用会被卸载,而手机也会被恢复到初始设置。

  InfoQ:与MonkeyRunner,Robotium和Robolectric相比,你所提供的服有什么优势呢?

  JMLLessPainful是一种服务,而并不仅仅是一种架构。我们希望创建一种服务,不但使测试能够进行,并且比起其他任何一种架构,它能够节省我们大量测试时间,还能够帮助我们发现更多的bug。

  另外,我们相信使用Cucumber,可以清晰地定义高层次测试描述,同时可以更好地被开发团队以外的人员共享。

  以Git领域为例,我们更希望成为像是GitHub那样,而不只是通常的git库。

  InfoQ:你划未来要支持更多的设备吗

  JML是的。我们计划继续增加对更多设备的支持。如果有这样的要求提出,我们就会努力完成它。

  目前,我们也在着手于对iOS设备的支持,希望beta版能在今年秋季发布。

  InfoQ:什么是LessPainful企版?

  JML我们将提供一个工具集,它就类似于一个Mac Mini,但我们会非常灵活的满足顾客的需求。LessPainful企业版目前还没有正式推出,所以敬请期待。

0
0
分享到:
评论

相关推荐

    Android自动化测试解决方案.docx

    Android自动化测试解决方案.docx

    android自动化测试资料

    3.Create_Android_Sample_App 4.Test_Android_Sample_App Android手机测试方法交流 Android自动测试之...GSM手机自动化测试解决方案 手机自动化测试系统设计浅析 在Android_Robotium自动化测试中导出Test_result

    Android自动化测试工具解决方案iTestin

    Android自动化测试工具iTestin重点功能: 基于Windows平台,为Android和iOS设备提供黑盒测试的自动化工具,为开发者提供功能测试、脚本录制回放以及测试记录的功能。主要内容包括: 1)连接和管理连接在PC上的终端...

    Android系统的自动化测试解决方案

    现在,已经有大量的Android自动化测试架构或工具可供我们使用,其中包括:ActivityInstrumentation,MonkeyRunner,Robotium,以及Robolectric。另外LessPainful也提供服务来进行真实设备上的自动化测试。  Android...

    monkey 自动化测试

    monkey自动化测试资料,内含自动化测试流程以及解决方案。

    手机自动化测试

    Android手机测试方法交流、GSM手机自动化测试解决方案

    Android应用测试与调试实战

    , 全书一共16章,分为两大部分:第一部分为自动化测试篇(第1~11章),详细讲解了进行Android自动化测试需要掌握的各种技术、工具和方法,包括Android自动化测试基础、Android应用的白盒自动化测试和黑盒自动化测试...

    Android开发自动化测试工具QT4A.zip

    QT4A (Quick Test for Android),基于QTA提供面向Android应用的UI测试自动化测试解决方案。支持多设备同时测试支持跨进程、跨应用测试支持进行过控件混淆的安装包(需要mapping文件)支持自定义控件(如果有代码混淆...

    《Android应用测试与调试实战》施懿民高清PDF完整版

    《Android应用测试与调试实战》高清完整版是Android应用测试与调试领域最为...三种Android应用开发方式所需要的测试和调试技术、方法进行了细致而深入的讲解,为Android应用的自动化测试和调试提供原理性的解决方案。

    基于selenium 2的自动化测试从入门到精通

    展示了在嵌入式系统中使用Selenium进行自动化测试的方法,涵盖Android、 iOS和Raspberry Pi等;此外,本书还描述了Selenium Grid的架构和部署方法;最后介绍了Selenium周边的测试工具和套件。无论从深度还是广度上,...

    一种用于云中AndroidUI的快速自动化测试框架

    一种用于云中AndroidUI的快速自动化测试框架Google开源了Espresso,这是一种Android自动化测试框架,使测试人员可以在云中x86机器的多线程环境里运行测试,并解决了关于UI测试的并发问题。  Google开源了Espresso,...

    最甜蜜的:小而美的自动化测试解决方案,支持Web UI测试,Http界面测试,DB操作测试,App测试,小程序测试,Windows GUI测试,文件操作

    Sweetest是一种小而美的自动化测试解决方案,同时支持Web UI,Http接口,DB操作测试,Android / iOS App测试,小程序测试,Windows GUI测试,文件操作;由于开始只支持Web UI测试,名字取自Selenium,W​​eb UI,...

    magneto:Android测试自动化

    Magneto是由自动化工程师为自动化工程师构建的,它是出于易于设置,运行和利用的以移动设备为中心的测试自动化框架的需要。 在,我们经历了许多开放源代码解决方案,但没有一个感觉快速,轻松和无忧。 Magneto是用...

    5个最佳的Android测试框架(带示例)

    不过幸运的是,Android(还有iOS)开发人员可以无限制地访问一些先进的基于云的解决方案,如TestdroidCloud,就可以在大规模的真实设备上执行自动化测试以确保质量,赞吧。此外,不同的Android测试框架的出现也大大...

    T-Plan Robot - GUI Test Automation:基于图像的测试自动化工具(Java)-可以在任何地方进行任何测试-开源

    T-Plan机器人(以前的VNCRobot)是市场上最灵活,通用性最强的黑匣子自动化测试工具。 该项目是以前的开源版本,现已被T-Plan Robot Enterprise取代。 机械手是独立于平台(Java)的,因此在其他工具可能会失效的...

    QT4A:适用于Android应用的QTA驱动程序

    QT4A(适用于Android的快速测试),基于QTA提供面向Android应用程序的UI测试自动化测试解决方案。 特性介绍 支持Android 2.3-8.1版本 支持多设备协同测试 支持跨进程,跨应用测试 支持进行过控件重

    Wind River新的软件测试工具加速Android开发进程

    这一全新的软件测试解决方案实现了测试进程标准化与自动化,极大的缩减Android设备的开发时间及成本,提升了软件质量和稳定性,而且可帮助客户进行面向Android Compatibility Test Suite的一致性验

    第4届中国移动互联网测试开发大会.zip

    03-AirtestProject次世代UI自动化解决方案-李翔 04-Google_Testing_Practices_and_How_You_Too_Can_Benefit-Justin&Denis; 05-Appium,The_Next_5_Years-Jonathan 06-Creating_OpenSTF-Simo 07-AliExpress_APP质量...

    嵌入式系统/ARM技术中的Wind River新的软件测试工具加速Android开发进程

    Intel全资子公司风河...这一全新的软件测试解决方案实现了测试进程标准化与自动化,极大的缩减Android设备的开发时间及成本,提升了软件质量和稳定性,而且可帮助客户进行面向Android Compatibility Test Suite的一致

Global site tag (gtag.js) - Google Analytics