- 移动测试教程
- 移动测试 - 首页
- 移动测试 - 概述
- 移动测试 - 平台
- 移动测试 - 设备类型
- 原生应用 vs 混合应用 vs 移动网页
- 移动测试 - 设备 vs 应用
- 模拟器 vs 模拟环境
- 移动测试 - 应用
- 移动测试 - UI
- 移动测试 - 计划与工具
- 硬件视角
- 移动设备测试 - 类型
- 移动测试 - 框架概述
- 移动测试 - Android框架
- 移动测试 - IOS框架
- Robotium框架
- Selendroid框架
- 移动测试 - Appium框架
- 移动测试 - Zucchini框架
- 移动测试有用资源
- 移动测试 - 快速指南
- 移动测试 - 有用资源
- 移动测试 - 讨论
移动测试 - 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 Manager -
选择必要的包。例如,如果我们正在为Android 4.4.2构建应用程序,请确保工具部分选中以下包 -
- Android SDK Tools rev 22.6.3
- Android Platform-tools rev 19.0.1
- Android SDK Build-tools rev 19.1
步骤4 - 创建Android虚拟设备。
- 打开Android Studio,然后点击工具栏中的AVD Manager。AVD允许我们测试和运行Android应用程序。
对Nexus5 AVD使用以下设置 -
- 设备 - Nexus 5 (4.95, 1080 x 1920; xxhdpi)
- 目标 - Google APIs x86 (Google Inc.) - API Level 19
- (确保您选择名称中包含Google APIs的目标)。
- CPU - Intel Atom (x86)
- 选中“使用主机GPU”复选框
- 点击确定
您现在应该在AVD Manager中看到您创建的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 - 现在,运行测试用例。如果测试用例成功,您应该看到以下输出!