![](http://mmbiz.qpic.cn/mmbiz_jpg/BuV4gXrNvFrcRialbtjBgZytJjFWXjDjykP8Zibe9MrWGzVriazIX1NAicvqiadY6u5C0Srb5XJ20CgIwTI5KX5ib1Dw/0?wx_fmt=jpeg)
Robotium是用于测试本地型和混合型Android应用程序的自动化测试框架。它提供了简单的API来编写UI自动化脚本。有各种的工具可用于测试Android应用程序,Robotium则是最常用的一种。
Robotium可用于功能编写,系统验收测试和用户验收测试。Robotium Testcases可以在Android模拟器以及Android的真实设备中执行。
这篇Robotium教程包含哪些内容:
优点
准备条件
创建Robotium项目
创建Robotium类
一些Robotium方法
在Android应用程序中查找元素
示例代码
执行Robotium项目
Robotium的优点:
1、易编写
2、API简单(所有方法仅在Solo Class中可用)
3、自动Delays & Timings
4、当从一个activity到另一个时,不需要编写代码
5、测试Android本机应用程序以及混合应用程序。
6、能够处理多个Android activity。
7、编写测试所需时间较少,因为API很简单。
8、由于运行时绑定到UI组件,测试用例是可靠的
9、执行测试用例效率高
10、便于Maven和ANT
先决条件
1) 下载安装JAVA
-将Java库添加到PATH中,并在环境中将JAVA_HOME设置为java安装目录的根目录
2) 下载ADT Bundle
-提取ADT Bundle,并将其放入一个文件夹中
-在环境中将ANDROID_HOME设置为ADT bundle文件夹的根目录。
创建Robotium项目
只需很少几个步骤就可以创建一个项目
Step #1:打开eclipse,其中包含所需测试的android应用软件
![](http://mmbiz.qpic.cn/mmbiz_jpg/BuV4gXrNvFrcRialbtjBgZytJjFWXjDjyIBfMkNUdnabVrEibhvSZXULjfXwR2PuBgJRjVfOJI954A1MjIg9yPvg/0?wx_fmt=jpeg)
Step #2:右键单击Android项目 - > Android工具,然后单击新的测试项目。
Step #3:为测试项目命名,然后单击下一步按钮。
![](http://mmbiz.qpic.cn/mmbiz_jpg/BuV4gXrNvFrcRialbtjBgZytJjFWXjDjysv5dXkgfubsMPEHZCQGZjia1WBb9XQ9Yib5gqXxRGZIVv9Cricy4rVXtg/0?wx_fmt=jpeg)
Step #4:选择被测试应用程序作为目标,然后单击完成按钮
![](http://mmbiz.qpic.cn/mmbiz_jpg/BuV4gXrNvFrcRialbtjBgZytJjFWXjDjyfuy3RjpLe1cFqoUu1ZOtglRMhx1CFIwnlUA8YyDxsTvqR6k5ERk2Dg/0?wx_fmt=jpeg)
Step #5:在eclipse工作区中创建测试项目。
Step #6:下载Robotium solo jar
Step #7:右键单击工作区中的测试项目,创建路径并且点击Configure创建路径
Step #8:切换到库选项卡,单击"添加外部jar"选项,浏览下载Robotium jar文件并将其添加到库中,然后单击"确定"。
![](http://mmbiz.qpic.cn/mmbiz_jpg/BuV4gXrNvFrcRialbtjBgZytJjFWXjDjyVoQWTlufUu1uLyft71ISibLSEA6v0cHQriaSNU5gQOMPtqOFf41qicoVg/0?wx_fmt=jpeg)
创建Robotium类
#1:右键单击测试项目中src目录下的package,然后创建一个新类。
#2:导入Main Activity类的Robotium测试项目。
Syntax:
1 import com.sasi.attendanceproject.Home;
#3:新建的类将继承ActivityInstrumentationTestCase2类的属性
1 public class AttendanceTest extends
2 ActivityInstrumentationTestCase2
(注:这里,Home是要在android应用程序中测试的activity)
#4:Solo类创建实例如下:
1 private Solo solo;
#5:为类创建一个Constructor,如下
1 public AttendanceTest() {
2 super(Home.class);
3 // TODO Auto-generated constructor stub
#6:创建setUp和tearDown方法,如下所示:
Setup方法用于启动Instrumentation
1 public void setUp()throws Exception
2 {
3 solo=new Solo(getInstrumentation(), getActivity());
4 }
测试完成后,使用Teardown方法来关闭activity。
1 public void tearDown() throws Exception
2 { solo.finishOpenedActivities();
3 }
一些Robotium方法
#1 assertCurrentActivity(text,Activity)
此方法用于验证当前activity是否用于发送参数传递。
Syntax
1solo.assertCurrentActivity("Current Activity", Home.class);
#2 clickOnButton(text)
此方法用于单击具有指定文本的按钮。
Syntax:
1solo.clickOnButton("ADMIN");
#3. clickOnButton(int)
此方法用于单击具有指定索引的按钮。
Syntax:
1solo.clickOnButton(2);
#4.waitForText(text)
此方法用于wait直到文本出现在activity中。
Syntax:
1solo.waitForText("Creating New Password");
#5 enterText(int, text)
此方法用于输入作为第二个参数传递给指定的索引编辑框文本。
Syntax:
1solo.enterText(0,"test");
#6. clickOnCheckbox(int)
此方法将单击具有给定索引的复选框
Syntax:
1solo.clickOnCheckBox(0);
#7 clickOnRadioButton(int)
此方法用于单击具有给定索引的复选框。
Syntax:
1solo.clickOnRadioButton(1);
#8 clickOnImage(int)
此方法用于单击具有给定索引的图像
Syntax:
1solo.clickOnImage(1);
#9 clearEditText(int)
此方法用于使用给定的索引清除编辑框中的文本。
Syntax:
1solo.clearEditText(0);
示例程序
在Android应用程序中查找元素
步骤-1:打开包含需测试Android应用程序的Eclipse。
步骤-2:展开项目,转到Layout文件夹并双击activity XML文件。它将在eclipse编辑器上打开设计的activity。
步骤-3:定位按钮元素
通过ID查找元素
单击你要查找的元素。在右侧的属性面板中,可以找到该元素的ID。
![](http://mmbiz.qpic.cn/mmbiz_jpg/BuV4gXrNvFrcRialbtjBgZytJjFWXjDjy8s0OudDEOkXLMIvH7pNicdwicic04RDhHxGtx5jz0icCKOY2tmiaRPLmIdQ/0?wx_fmt=jpeg)
在上图中,元素的ID是btnadmin。
定位这个按钮的相应Robotium代码是:
1solo.clickOnButton(R.id.btnadmin);
通过位置定位元素:
![](http://mmbiz.qpic.cn/mmbiz_jpg/BuV4gXrNvFrcRialbtjBgZytJjFWXjDjymBf5sXNiaSopwkqrmf2plgh1DMmOfbdYA65EpDeuqStYNoogd9ZYibrQ/0?wx_fmt=jpeg)
如果ID不可用,那么你可以使用order找到元素。如果按钮处于第二位置,则你可以通过这样定位button:
1solo.clickOnButton(1);
......