简单介绍如何使用robotium进行自动化测试

上一篇 / 下一篇  2010-11-17 11:37:44 / 个人分类:Android

 

1.      创建一个简单的工程(可参考本人的日志《第一个应用HelloWorld》,需要对该工程稍做修改)作为被测程序,运行后显示如下界面

 

2.      创建一个Test Project

1).     打开eclipse,选择File->New->Project…->Android Test Project,点击Next

 

 

2).     Test Project Name中输入测试工程的名称,如:HelloWorldTest。选择An existing Android Project,点击右边的Browse…按钮。

3).     选择被测工程,如之前创建的HelloWorldnp,点击OK按钮。

4).     会自动选择和输入Build TargetProperties,可以按照默认的,不用修改。

5).     一个新建的测试工程(HelloWorldTest)就创建好了,如下图:

 

3.      创建一个Test Case

1).     HelloWorldTest->src->com.liliandroid.helloworld.test上,右击选择New->Class,创建一个Test Case

 

2).     Name中输入Test Case的名字,如:UITextTest

3).     创建好的Test Case如下图:

 

4.      导入robotium.jar

1).     选择测试工程HelloWorldTest右击,选择Build Path->Configure Build Path…

 

2).     在打开的Properties for HelloWorldTest中点击Add External JARs…按钮。

3).     因为之前创建的工程的SDK2.2的,所以选择robotium-solo-1.8.0.jar

4).     点击OK按钮。

5.      修改Test Case

打开UITextTest.java,输入以下内容并保存:

 

packagecom.liliandroid.helloworld.test;

 

importandroid.test.ActivityInstrumentationTestCase2;

 

importcom.liliandroid.helloworld.ActivityMain;

importcom.jayway.android.robotium.solo.Solo;

 

publicclassUITextTestextendsActivityInstrumentationTestCase2<ActivityMain>{

 

      privateSolosolo;

 

      publicUITextTest() {

          super("com.liliandroid.helloworld", ActivityMain.class);

          }

          

      publicvoidsetUp()throwsException {

          solo=newSolo(getInstrumentation(), getActivity());

             }

             

      publicvoidtestUI()throwsException {

          booleanexpected =true;

          booleanactual =solo.searchText("This") &&solo.searchText("is");

           assertEquals("This and/or is are not found", expected, actual);

          

      }

 

   

}

 

注:这个Case是测试运行了ActivityMain后的界面上是否有Thisis这两个文字。

 

 

6.      运行测试程序

选择测试工程HelloWorldTest右击,选择Run As->Android JUnit Test运行测试程序

 

运行完后的测试结果界面(Pass

 

 

运行完后的测试结果界面(Fail

 

 

 

注:

1.      被测试的工程和测试的工程可以是不同的SDK,但是不知道有什么影响。

2.      这是在eclipse中进行测试的,也可以在模拟器或者手机上测试。如果需要直接在模拟器或者手机上测试,需要将测试包和被测试包改成相同的签名。(关于apk包的签名和重签名,请参考本人日志《重新签名APK文件》)

 


TAG:

AT校长的个人空间 引用 删除 better82   /   2012-06-05 15:02:06
原帖由guost295于2011-02-21 19:02:43发表
请问你在测试过程中,有没有碰到过如下的问题:
有多个test,比如test0与test1,单个运行test0与test1 .

我也遇到这个问题,至运行第一个test,后面的不执行。
引用 删除 dpws   /   2012-04-26 09:46:12
5
猴哥 引用 删除 猴哥218   /   2012-03-19 14:46:33
5
猴哥 引用 删除 猴哥218   /   2012-03-19 14:46:26
学习中
引用 删除 xiaolongqi   /   2011-08-01 17:02:59
谢谢楼主分享
引用 删除 yfxyanyan   /   2011-07-01 11:14:10
很详细,谢谢
引用 删除 chen3856   /   2011-06-21 10:46:15
5
引用 删除 chen3856   /   2011-06-21 10:45:07
请问,我想在手机上执行robotium的脚本,我该怎么做?  能具体说下吗?
引用 删除 lavender_bj1   /   2011-03-30 19:49:19
谢谢分享!但是源程序中没有com.liliandroid.helloworld.ActivityMain,helloworld 中也没有ActivityMain函数。怎么办?能补发吗?
引用 删除 lavender_bj1   /   2011-03-30 19:48:02
谢谢分享!但是源程序中没有com.liliandroid.helloworld.ActivityMain,helloworld 中也没有ActivityMain函数。怎么办?能补发吗?
引用 删除 guost295   /   2011-02-21 19:02:43
请问你在测试过程中,有没有碰到过如下的问题:
有多个test,比如test0与test1,单个运行test0与test1 都可以正常运行,但是连在一起运行就总会出错。
这个问题想了好久,一直还解决不了
hui1943的个人空间 引用 删除 hui1943   /   2010-12-30 11:17:58
请问,如果我想用robotium在手机上测试一个程序,该怎么操作呢?我没有那个程序的源代码~ 谢谢
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar