Mobile Testing 简明教程

Mobile Testing - Robotium Framework

Robotium 是一个开源测试框架,用于为 Android 应用编写自动灰盒测试用例。借助 Robotium,测试用例开发者可以编写功能、系统和验收测试场景,涵盖多个 Android 活动。

Robotium 可以用于测试源代码可用的应用和仅提供 APK 文件的应用。

Benefits of Robotium

  1. 书写简单、代码更短。撰写可靠测试案例所需时间最少。

  2. 在对正在测试的应用了解最少的情况下,您都可以高效地编制出测试案例。

  3. 该框架会自动处理多个 Android 活动。与标准工具化测试相比,测试案例的可读性得到了大幅提高。

  4. Automatic timing and delays.

  5. Automatically follows current Activity.

  6. Automatically finds Views.

  7. 会自动进行决策(例如何时滚动等)。

  8. 无需修改 Android 平台。

  9. Test execution is fast.

  10. 由于在运行时绑定 GUI 组件,测试案例更加健壮。

  11. 能够与 Maven 或 Ant 平滑集成。

Drawbacks of Robotium

  1. Robotium 无法处理 Flash 或 Web 组件。

  2. 它一次只能处理一个应用程序。

  3. 它无法使用 Robotium 模拟在软键盘上单击(需要使用“enterText()”在 EditText 字段中输入文本)。

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

  5. 速度可能会有点慢,尤其是在较早的设备上运行时。

How to Use Robotium

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

  1. Oracle Technology Network 下载 JDK 和 JRE

  2. Accept license agreement.

  3. Install JDK and JRE.

  4. 设置环境变量,如下面的屏幕截图所示。

environment variable

Step 2 - 从 Android Studio 下载 Android Studio

  1. 双击 exe 并运行安装程序。

  2. 使用所有默认选项继续。

  3. Set the ANDROID_HOME.

Step 3 − 安装 Android 镜像和工具。

  1. 单击 SDK Manager −

sdk manager
  1. 选择必要的软件包。例如,如果我们正在构建一款适用于 Android 4.4.2 的应用程序,那么请确保在 Tools 小节中已选中下列软件包 −Android SDK 工具 rev 22.6.3Android 平台工具 rev 19.0.1Android SDK 构建工具 rev 19.1

Step 4 - 创建 Android 虚拟设备。

  1. 打开 Android Studio,然后单击工具栏中的 AVD Manager。AVD 允许我们测试和运行我们的 Android 应用程序。

avd manager
  1. 为 Nexus5 AVD 使用以下设置- 设备 - Nexus 5(4.95,1080 x 1920;xxhdpi)- 目标 - Google API x86(Google Inc.) - API 级别 19(确保在名称中选择了包含 Google API 的目标。)- CPU - Intel Atom (x86) - 勾选“使用主机 GPU”复选框 - 单击“确定”

  2. 你现在应该可以在 AVD Manager 中看到你创建的 AVD,在其中你可以启动它、删除它或创建另一个!

Step 5 - Robotium Jar 文件 - 从 RobotiumTech 下载 Robotium Jar 文件

Test an App with Robotium

若要使用 Robotium 测试应用,请按照以下步骤操作-

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

robotiumtest

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

Step 2 − 将 Robotium jar 文件复制到项目的 Lib 文件夹。

robotium jar file

Step 3 − 在 src 文件夹下的 build.gradle 文件中添加依赖项。

androidTestCompile 'com.jayway.android.robotium:robotium-solo-5.5.3'

Step 4 − 同步 Gradle。

sync gradle

Step 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();
   }
}

Step 6 − 保存所有更改。确保不存在任何错误。

Step 7 − 现在,运行测试用例。如果测试用例成功,你应该看到以下输出!

display result