Robotium

Robotium is an open-source test framework for writing automatic black-box test cases for Android applications.[1][2] With the support of Robotium, test case developers can write function, system and acceptance test scenarios, spanning multiple Android activities. Robotium can be used both for testing applications where the source code is available and applications where only the APK file is available and the implementation details are not known. Robotium can be used with all the different build automation tools.[3]
The framework is released under Apache License 2.0. Its founder and main developer is Renas Reda. Version 3.5.1 was released on October 11, 2012.

Robotium is similar to Selenium, but for Android. It has support for Android features such as activities, toasts, menus and context menus.


用户界面自动测试有助于保持你的软件的质量高,并帮助你发现如果你的代码变化影响实际使用的情况下实施。当您创建Android应用程序,你想成为许多人的测试人员的帮助下,他们没有能够测试。人类同一应用程序的多个设备上的UI测试是浪费时间,所以你要通过自动化来消除它,就像你会做与硒用于Web应用程序。对于Android应用程序中,也有类似的所谓Robotium测试工具。这是一个UI测试工具模拟触摸,点击,打字,和其他用户的Android应用程序相关的行动。编写测试使用Robotium是很容易,因为你可以看到从下面。

Bitbar,我工作的公司,创造了一个持续集成环境的自动化UI测试Android应用程序。下面是一些使用它的好处:

  • 每个UI测试(Robotium中创建)自动执行提交。
  • 对许多配置,真正的设备和目标,模拟真实设备测试
  • 视觉试验结果呈现在人类友好形式
  • 画面拍摄的UI测试过程中,所以你可以看到你的应用程序看起来如何在真实设备

    使用Robotium作为一个例子,我会告诉你如何创建一个测试我的Andr​​oid应用程序用于监测哈德森的工作的。

    创建Android的测试项目:

    如果你是Eclipse用户(和您的Eclipse ADT插件),你应该打开项目,你想测试,然后选择菜单文件→新建→(→安卓)→Android的测试项目。创建现有的Android项目的测试项目。要运行它选择Run As - >运行,由于Android的JUnit测试。
    其他非Eclipse)的开发人员应该使用的android从Android SDK工具。(在这个例子中,我用它在测试项目目录):

    android的创建测试项目-P。米/ HudsonMonitor 
    -N HudsonMonitorTest

    -后-P把路径测试项目目录
    -米后提出的路径,你将测试项目
    -后-N把测试项目的名称
    要建立它,你应该使用像蚂蚁调试蚂蚁蚂蚁释放(释放),但记得要加robotium.jar文件,这个项目的libs目录(如果你不这样做,你将不得不NoClassDefFoundError的为com.jayway.android.robotium.solo.Solo类。 要安装应用程序和测试模拟器或设备的使用方法:

    ADB-5554模拟器安装-R BIN \ HudsonMonitor debug.apk 
    ADB-5554模拟器安装-R BIN \ hudson_monitor_test debug.apk

    运行测试:

    亚行外壳仪器
    -W com.android.hudson.tests的/ android.test.InstrumentationTestRunner

    但要记住解开模拟器,然后再运行测试。

    创建测试用例:

    好了,现在我们应该创建类将执行一个测试用例。唯一的测试项目,我们应该知道的是包的名称和主类的名称。在我们的测试项目的测试用例类看起来像这样:

    进口com.android.hudson.HudsonMonitor,
    进口com.jayway.android.robotium.solo.Solo; 
    进口android.test.ActivityInstrumentationTestCase2; 
    进口android.test.suitebuilder.annotation.Smoke;

    公共类HudsonMonitorTest延伸ActivityInstrumentationTestCase2{

    私人独奏独唱; / /这是Robotium用于支持跨越多个活动的测试用例类。

    公共HudsonMonitorTest(){ 
    超(“com.android.hudson”,HudsonMonitor.class); 
    }

    公共无效设置()抛出异常{ 
    super.setUp()
    独奏,独奏(getInstrumentation(),getActivity())/ /需要在仪器仪表及开始活动。
    }

    @覆盖
    公共无效拆解()抛出的异常{ 
    尝试{ 
    solo.finalize(); 
    }的catch(Throwable的E){ 
    e.printStackTrace(); 

    getActivity()完成(); 
    super.tearDown(); 
    }

    }

    我们的应用程序有四个选项卡:“统计”,“详细信息”,“网页”和“配置”。选择其中之一的方法之一是单击某个元素,例如文本,选择“配置”:

    solo.clickOnText(“配置”);

    第一项测试检查“增加新的哈德逊”的使用情况。在配置屏幕上,我们有2的一个ListView EditTexts监测哈德森工作。测试应在第一的EditText打字饲料网址为Hudson(哈德森例如:8080),并在第二个它的名字(如哈德森)将显示在我们的应用程序,以确定此哈德森实例。屏幕上的在Robotium部件中被数位从上到下,从左至右,并开始形成0,所以我们的代码,这个动作是:

    / / 0,因为它是第一个 ,因为在屏幕
    solo.enterText(0,“赫德森:8080”)
    / / 1 的EditText 它是第二
    solo.enterText的(1,“赫德森”);

    要添加此的哈德森HudsonMonitor应用,我们应该点击加号的ImageButton。是第一的ImageButton从顶部离开,因此它具有数0:

    / /的ImageButton只使用clickOnImageButton的方法,
    / /但是简单的按钮使用clickOnButton 
    solo.clickOnImageButton(0);

    然后,我们必须检查的项目是否与这个哈德森饲料网址已添加到列表:

    布尔预计=真,
    布尔实际solo.searchText(“(http://hudson:8080)”); 
    的assertEquals(“不能添加新的哈德森实例”,预期实际);

    本次测试的整个源代码如下:

    @烟雾
    公共的无效testAddNewHudson()抛出异常{ 
    solo.clickOnText(“配置”); 
    solo.enterText(0,“哈德森:8080”); 
    solo.enterText(1,“哈德森”); 
    solo.clickOnImageButton(0); 
    布尔预计= TRUE; 
    布尔实际=(solo.searchText“(http://hudson:8080)”); 
    的assertEquals(“不能添加新的哈德森实例”,预期实际); 
    }

    第二次测试应检查活动,其中有一个微调框和一个版本的详细信息表。要选择一个项目从微调,我们可以用下面的方法:

    solo.pressSpinnerItem(0,1);

    此方法将只能选择一个项目从微调,当我们需要检查一些微调项目的名单,我们应当使用下面的代码:

    solo.clickOnView(solo.getCurrentActivity().
    findViewById(R.id.SpinnerDetailList));
    solo.clickInList(2);

    要使用此代码,我们必须导入R从测试项目(HudsonMonitor)。使用方法... OnView 我们可以测试在屏幕上的每一个部件,但我们必须有项目,我们正在测试的更多信息。

    总结

    Robotium是非常容易使用,可以帮助保持您的软件的质量非常高,在整个项目生命周期的。Bitbar已经创建了一个自动构建和测试环境为Android应用程序开发人员可以构建和测试其应用程序的许多配置,真正的设备和模拟现实世界中的设备的目标,
    在我们的持续集成服务为Android应用程序开发人员可以为他的测试过程自动化真正的Android设备的多个模拟器,
    你可以指定你的Android模拟器测试您的应用程序将被用于目标和所有参数。

    对于每个开发者的代码提交(提交或推)我们的系统构建和自动测试应用程序。您还可以看到人类友好表格中的测试结果,包括从测试过程中为每个模拟器截图。

    如果你有问题或问题Robotium请把它的博文评论中,我会尽力帮助你,
    如果你有兴趣在我们的自动构建和测试系统的Android应用程序,请联系我们信息()bitbar.com的


你可能感兴趣的:(Robotium)