第二章 环境搭建(下)

------手机自动化测试之Robotium

2.2 Robotium的使用

   下面我们以(http://www.robotium.cn/archives/210)上的一个例子讲解一下在有源码的情况下,如何使用Robotium进行测试。这个不是我们的重点,我们后面重点讲解没有源码,只有Apk包的情况下的自动化测试用例编写。

1)下载Robotium官方例子http://code.google.com/p/robotium/downloads/list/ExampleTestProject_v2.3.zip以及最新的JAR包(http://code.google.com/p/robotium/downloads/list

2)打开Eclipse导入被测试工程,如图2.2.1所示

                     图2.2.1 导入被测试的功能

3)创建测试工程:选择Android Test Project,并点击下一步,然后输入工程名NotePadTest,并点击下一步。

 

       图2.2.2 创建测试工程

4)选择被测工程NotePad,并点击完成,如图2.2.3所示:

 

2.2.3 选择被测工程

 

5)在测试工程中新建lib文件夹,并将下载好的Robotium jar包拷入lib中,并在build path中将jar包引入工程。如图2.2.4所示:

 


2.2.4Robotium包添加到工程中

6)打开测试工程中的manifest.xml文件,修改其中的:

   <</SPAN>instrumentation

        android:name="test"

        android:targetPackage="com.example.test" />

指定要被测试文件的namepackage,如图2.2.5所示:

 

2.2.5 修改manifest.xml

同时还要注意一点儿,在这个配置文件中有如下的结点:

 

这个上面写的版本号要和你运行测试用例的机器版本号相同,或是大于测试机的版本号,否则会报错。

(7)创建测试用例

A,新建junit test case,选择junit4,并输入类名NotePadTest,点击完成,如图2.2.6所示:

2.2.6 创建测试用例

B,打开新建的测试类,修改继承ActivityInstrumentationTestCase2,创建构造方法,并编写测试代码,具体结果如图2.2.7所示:

2.2.7 测试类结构

测试用例代码如下:

 

package com.example.android.notepad.test;
import android.test.ActivityInstrumentationTestCase2;
import com.example.android.notepad.NotesList;
import com.jayway.android.robotium.solo.Solo;

public class NotePadTest extendsActivityInstrumentationTestCase2
{

private Solo solo;//声明Solo
public NotePadTest()//构造方法
 {
    super(NotesList.class);

    }

 @Override

    public void setUp() throws Exception
    {

        solo = new Solo(getInstrumentation(), getActivity());

    }

    @Override

    public void tearDown() throws Exception

    {

        solo.finishOpenedActivities();

    }

    public void testAddNote() throws Exception

    {

        //点击add note按钮

        solo.clickOnMenuItem("Add note");
        //比对结果

        solo.assertCurrentActivity("Expected NoteEditor activity", "NoteEditor");

        //在第一个TextEdit控件上输入内容

        solo.enterText(0, "Note 1");

        //返回上个界面

        solo.goBack();

        //点击菜单中的Add note

        solo.clickOnMenuItem("Add note");
        //在第一个EditText中输入内容
      solo.enterText(0, "Note 2");

        //返回NotesList activity

        solo.goBackToActivity("NotesList");

        //截屏

        solo.takeScreenshot();

        boolean expected = true;

        boolean actual = solo.searchText("Note 1") ; solo.searchText("Note 2");

        assertEquals("Note 1 and/or Note 2 are not found", expected, actual);

 

    }

}
 

 

 C,编写完成后,打开模拟器或者连接上真机,右击测试类,选择Android junit Test,如图2.2.8所示。

                              图2.2.8 运行测试用例

DEclipse会切换到junit界面,此时模拟器(真机)会自动执行测试,通过左边界面可以看到运行结果,如图2.2.9所示:

 图2.2.9 robotium运行结果

一个简单的测试就结束了,这个测试用例是官方提供的类似于HelloWorld的测试用例,我们不妨在环境配置这一章节讲解一下。如果你不太懂,没有关系,因为这种方法不常用。具体的如何对只有安装包Apk的测试才是重要,我们后面会详细讲解。

2.3 本章小结

   本章我们讲述了Robotium开发环境的搭建,并且讲解了一下Robotium官方提供的一个基于源码的记事本测试用例。可能大家刚刚接触到这个测试框架,没有看明白这个测试用例,不过没有关系,就当先了解一下结构嘛,后面的章节我们会详细讲解的。

 

posted @ 2015-04-14 15:00  潜龙9527  阅读(182)  评论(0编辑  收藏  举报