zoukankan      html  css  js  c++  java
  • 第二章 环境搭建(下)

    ------手机自动化测试之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官方提供的一个基于源码的记事本测试用例。可能大家刚刚接触到这个测试框架,没有看明白这个测试用例,不过没有关系,就当先了解一下结构嘛,后面的章节我们会详细讲解的。

  • 相关阅读:
    关于LINUX文件与目录的问题说明
    poj1094拓扑排序
    poj3026(bfs+prim)最小生成树
    快速幂
    hdu4255筛素数+广搜
    网易2012校园招聘笔试题目
    网新恒天2011.9.21招聘会笔试题
    HDU3344(小广搜+小暴力
    HDU3348(贪心求硬币数
    HDU3345广搜 (P,E,T,#)
  • 原文地址:https://www.cnblogs.com/eagleking0318/p/6520844.html
Copyright © 2011-2022 走看看