移动测试 - 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,请按照以下步骤操作。
- 下载 JDK 和 JRE。
接受许可协议。
安装 JDK 和 JRE。
按照以下屏幕截图所示设置环境变量。
步骤 2 −从 Android Studio 下载 Android Studio>
- 双击 exe 并运行安装程序。
- 继续使用所有默认选项。
- 设置 ANDROID_HOME。
步骤 3 − 安装 Android 图像和工具。
- 单击 SDK 管理器 −
选择必要的软件包。例如,如果我们要为 Android 4.4.2 构建应用程序,请确保在工具部分下选中以下软件包 −
- Android SDK 工具 rev 22.6.3
- Android 平台工具 rev 19.0.1
- Android SDK 构建工具 rev 19.1
步骤 4 −创建 Android 虚拟设备。
- 打开 Android Studio 并点击工具栏中的 AVD 管理器。AVD 允许我们测试和运行我们的 Android 应用。
对 Nexus5 AVD − 使用以下设置
- 设备 − Nexus 5 (4.95, 1080 x 1920; xxhdpi)
- 目标 − Google API x86 (Google Inc.) - API 级别 19
- (请确保选择名称中带有 Google API 的目标。)
- CPU − Intel Atom (x86)
- 选中"使用主机 GPU"复选框
- 单击"确定"
现在您应该可以在 AVD 管理器中看到您创建的 AVD,您可以在其中启动、删除它或创建另一个 AVD!
步骤 5 − Robotium Jar 文件从 RobotiumTech
下载 Robotium Jar 文件使用 Robotium 测试应用
要使用 Robotium 测试应用,请按照以下步骤 −
步骤 1 −在 Android Studio 中创建一个名为"RobotiumTest"的测试项目。
选择所有默认选项,直到到达主页。
步骤 2 − 将 Robotium jar 文件复制到项目的 Lib 文件夹中。
步骤 3 − 在 src 文件夹下的 build.gradle 文件中添加依赖项。
androidTestCompile 'com.jayway.android.robotium:robotium-solo-5.5.3'
步骤 4 −同步 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 − 现在,运行测试用例。如果测试用例成功,您应该会看到以下输出!