📜  移动测试-Robotium框架

📅  最后修改于: 2020-12-06 11:53:37             🧑  作者: Mango


Robotium是一个开源测试框架,用于为Android应用程序编写自动灰盒测试用例。在Robotium的支持下,测试用例开发人员可以编写函数,系统和验收测试方案,涵盖多个Android活动。

Robotium既可以用于测试可使用源代码的应用程序,也可以用于仅可使用APK文件的应用程序。

机械人的好处

  • 易于编写,代码短。编写可靠的测试用例所需的时间最少。

  • 您可以用最少的被测应用程序知识来开发功能强大的测试用例。

  • 该框架会自动处理多个Android活动。与标准仪器测试相比,测试用例的可读性大大提高。

  • 自动定时和延迟。

  • 自动跟随当前活动。

  • 自动查找视图。

  • 自动做出自己的决定(例如:何时滚动等)

  • 无需修改Android平台。

  • 测试执行速度很快。

  • 由于与GUI组件的运行时绑定,因此测试用例更加健壮。

  • 与Maven或Ant顺利集成。

Robotium的缺点

  • Robotium无法处理Flash或Web组件。

  • 一次只处理一个应用程序。

  • 它无法使用Robotium模拟在软键盘上的单击(需要使用’enterText()’在EditText字段中输入文本)

  • Robotium无法与状态栏通知交互-即,下拉通知区域并单击指定的通知。

  • 可能会有点慢,尤其是在较旧的设备上运行时。

如何使用Robotium

步骤1-使用Robotium的前提条件是Java SDK(最低1.6)。如果您的系统上未安装Java,请按照以下步骤操作。

  • Oracle技术网下载JDK和JRE

  • 接受许可协议。

  • 安装JDK和JRE。

  • 设置环境变量,如下面的屏幕快照所示。

环境变量

步骤2-Android Studio下载Android Studio

  • 双击exe并运行安装程序。
  • 继续所有默认选项。
  • 设置ANDROID_HOME。

步骤3-安装Android映像和工具。

  • 点击SDK Manager-

SDK管理器

  • 选择必要的包。例如,如果我们要为Android 4.4.2构建应用程序,则请确保在“工具”部分下选中了以下软件包-

    • Android SDK工具修订版22.6.3
    • Android平台工具版本19.0.1
    • Android SDK Build-tools rev 19.1

步骤4-创建Android虚拟设备。

  • 打开Android Studio,然后在工具栏中单击“ AVD管理器”。 AVD允许我们测试和运行我们的Android应用程序。

AVD经理

  • 对Nexus5 AVD使用以下设置-

    • 装置-Nexus 5(4.95,1080 x 1920; xxhdpi)
    • 目标-Google API x86(Google Inc.)-API级别19
    • (确保选择名称中带有Google API的目标。)
    • CPU-英特尔凌动(x86)
    • 选中使用主机GPU复选框
    • 点击确定
  • 现在,您应该在AVD Manager中看到您创建的AVD,可以在其中启动,删除或创建另一个AVD!

步骤5 -Robotium Jar文件从RobotiumTech下载Robotium Jar文件

使用Robotium测试应用

要使用Robotium测试应用,请执行以下步骤-

步骤1-在名为“ RobotiumTest”的Android Studio中创建一个测试项目。

机器人测试

选择所有默认选项,直到到达主页。

步骤2-将Robotium jar文件复制到项目的Lib文件夹中。

机器人Jar文件

步骤3-src文件夹下的build.gradle文件中添加依赖项。

androidTestCompile’com.jayway.android.robotium:robotium-solo-5.5.3′

步骤4-同步Gradle。

同步摇篮

第5步-创建Test类,如下所示-

package com.example;

import com.robotium.solo.Solo;
import android.test.ActivityInstrumentationTestCase2;
import android.widget.EditText;
import android.widget.TextView;

public class MyTestClass extends ActivityInstrumentationTestCase2{

   private Solo solo;

   public MyTestClass() {
      super(TestActivity.class);
   }

   public void setUp() throws Exception {
      solo = new Solo(getInstrumentation(), getActivity());
   }

   public void testCase() throws Exception {
      String vResult="TestExample";
      EditText vEditText = (EditText) solo.getView(R.id.edit1);
      solo.clearEditText(vEditText);
      solo.enterText(vEditText,"TestExample");
      solo.clickOnButton("Submit");
      assertTrue(solo.searchText(vResult));
      TextView textField = (TextView) solo.getView(R.id.txt1);
      //Assert to verify result with visible value
      assertEquals(vResult, textField.getText().toString());
   }

   @Override
   public void tearDown() throws Exception {
      solo.finishOpenedActivities();
   }
}

步骤6-保存所有更改。确保没有错误。

步骤7-现在,运行测试用例。如果测试用例成功,则应该看到以下输出!

显示结果