移动测试 – Robotium 框架

移动测试 – Robotium 框架


Robotium 是一个开源测试框架,用于为 Android 应用程序编写自动灰盒测试用例。在 Robotium 的支持下,测试用例开发人员可以编写功能、系统和验收测试场景,跨越多个 Android 活动。

Robotium 可用于测试源代码可用的应用程序和仅 APK 文件可用的应用程序。

Robotium的好处

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

  • 您可以开发强大的测试用例,而无需了解被测应用程序。

  • 该框架会自动处理多个 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 管理器 –

SDK管理器

  • 选择必要的包。例如,如果我们正在为 Android 4.4.2 构建应用程序,请确保在“工具”部分下检查以下包 –

    • Android SDK 工具修订版 22.6.3
    • Android 平台工具修订版 19.0.1
    • Android SDK 构建工具修订版 19.1

第 4 步– 创建 Android 虚拟设备。

  • 打开 Android Studio 并单击工具栏中的 AVD Manager。AVD 允许我们测试和运行我们的 Android 应用程序。

AVD经理

  • 对 Nexus5 AVD 使用以下设置 –

    • 设备 – Nexus 5 (4.95, 1080 x 1920; xxhdpi)
    • 目标 – Google APIs x86 (Google Inc.) – API 级别 19
    • (确保选择名称中包含 Google API 的目标。)
    • CPU – 英特尔凌动 (x86)
    • 选中使用主机 GPU 框
    • 单击确定
  • 您现在应该会在 AVD 管理器中看到您创建的 AVD,您可以在其中启动、删除它或创建另一个!

第 5 步– Robotium Jar 文件从RobotiumTech下载 Robotium Jar 文件

使用 Robotium 测试应用程序

要使用 Robotium 测试应用程序,请按照以下步骤操作 –

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

机器人测试

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

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

机器人 Jar 文件

第 3 步– 在src文件夹下的 build.gradle 文件中添加依赖项

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

第 4 步– 同步 Gradle。

同步 Gradle

第 5 步– 创建测试类如下 –

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<TestActivity>{

   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 – 现在,运行测试用例。如果测试用例成功,您应该看到以下输出!

显示结果

觉得文章有用?

点个广告表达一下你的爱意吧 !😁