Robotium是一个开源测试框架,用于为Android应用程序编写自动灰盒测试用例.在Robotium的支持下,测试用例开发人员可以编写功能,系统和验收测试场景,涵盖多个Android活动.
Robotium可用于测试源代码可用的应用程序和只有APK文件可用的应用程序.
Robotium的好处
简单写,更短的代码.编写可靠测试用例所需的时间最短.
您可以开发功能强大的测试用例,而对测试中的应用程序知之甚少.
该框架自动处理多个Android活动.与标准仪器测试相比,测试用例的可读性大大提高.
自动计时和延迟.
自动关注当前活动.
自动查找视图.
不对Android平台进行修改.
测试执行速度很快.
由于与GUI组件的运行时绑定,测试用例更加强大.
与Maven或Ant顺利集成.
Robotium的缺点
Robotium无法处理Flash或Web组件.
它一次只处理一个应用程序.
它无法模拟使用Robotium点击软键盘(需要使用'enterText()'将文本输入EditText字段)
Robotium无法与St.互动atus Bar通知 : 也就是说,下拉通知区域并单击指定的通知.
可能有点慢,尤其是在旧设备上运行.
如何使用Robotium
第1步 : 使用Robotium的先决条件是Java SDK(最低1.6).如果您的系统上没有安装Java,请按照以下步骤进行操作.
从以下位置下载JDK和JRE Oracle技术网
接受许可协议.
安装JDK和JRE.
设置环境变量如下面的屏幕截图所示.
第2步 : 从 Android Studio 下载Android Studio
双击exe并运行安装程序.
继续使用所有默认选项.
设置ANDROID_HOME.
第3步 : 安装Android图片和工具.
点击SDK Manager :
选择必要的包装.例如,如果我们正在为Android 4.4.2构建应用程序,请确保在"工具"部分和"减号"下检查以下包:
Android SDK工具rev 22.6.3
Android平台工具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 API x86(Google Inc.) - API等级19
(确保在名称中选择带有Google API的目标.)
CPU : 去; Intel Atom(x86)
选中"使用主机GPU"框
单击"确定"
您现在应该看到您在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步 : 创建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步 : 现在,运行测试用例.如果测试用例成功,您应该看到以下输出!