`
zhiweiofli
  • 浏览: 515035 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Android Robotium小结

阅读更多

Robotium 是一款基于Android instrumentation framework 的自动化测试工具库,功能十分强悍,而且上手简单,只要求有Junit基础即可。

先关注instrumentation 提供的三个基类:
1. SingleLaunchActivityTestCase         单activity测试实例,只调用setup和tearDown方法
2. ActivityUnitTestCase                     单activity测试实例
3. ActivityInstrumentationTestCase2   针对多Activity测试或应用的功能性测试用例,可在UIThread中调用所有UI行为的API

怎么使用Robotium ?

在eclipse中新建Android Test Project,指定测试的项目,引入robotium-solo-4.x.jar,之后就可以编写测试单元了:

 

public class N001_TestIntorUserActivity extends
           ActivityInstrumentationTestCase2{

     private Solo solo;

     public N001_TestIntorUserActivity() {
            super(DialerActivity. class);
     }

     @Override
     public void setUp() throws Exception {
            //setUp() is run before a test case is started.
            //This is where the solo object is created.
            solo = new Solo(getInstrumentation(), getActivity());
            try {
                runTestOnUiThread( new Runnable() {
                     
                      @Override
                      public void run() {
                          getActivity().getTabHost().setCurrentTab(DialerActivity. TAB_INDEX_ACCOUNT);
                     }
                });
           } catch (Throwable e) {
                e.printStackTrace();
           }
           
     }

     @Override
     public void tearDown() throws Exception {
            //tearDown() is run after a test case has finished.
            //finishOpenedActivities() will finish all the activities that have been opened during the test execution.
            solo.finishOpenedActivities();
     }

     //第一个测试方法
     public void testClickHelpbtn() throws Exception {
            for( int i=0; i<10; i++) {
                View helpBtn = solo.getView( "helpinfo_btn");
                 solo.clickOnView(helpBtn);
                 solo.sleep(2000);
                 solo.goBack();
           }
      }
     
     //第二个测试方法
     public void testChangeTabs() throws Exception {
           Random random = new Random();
            for( int i=0; i<10; i++) {
                 try {
                      final int tabIndex = random.nextInt() % 4;
                     
                     runTestOnUiThread( new Runnable() {
                           
                            @Override
                            public void run() {
                                getActivity().getTabHost().setCurrentTab(tabIndex);
                           }
                     });
                } catch (Throwable e) {
                     e.printStackTrace();
                }
                 solo.sleep(2000);
           }
     }
}

上面例子中,测试方法均以test开头,测试框架会自动调用。在测试方法中,我们就可以使用Robotium提供的API,实现具体的测试用例。

对于只有apk包的情况,一样可以使用Robotium对其进行测试。具体思路是先使用resign工具除去apk本身的签名,然后安装apk到目标环境,新建Android Test Project,修改项目AndroidManifest中的instrumentation字段,填入apk的包名即可:

<instrumentation
        android:name= "android.test.InstrumentationTestRunner"
        android:targetPackage= "com.cmnetphone" />

 

对比 MonkeyRunner 和 Robotium :

MonkeyRunner 优点:官方提供的测试工具,门槛极低,会写py脚本即可,适合重复性较强的UI测试或功能性测试。
                     缺点:API不完善,多限制,脚本执行性能差

Robotium 基于SDK中提供的测试框架,提供更为强大而方便的自动化测试API。要求懂得基本的Junit用法,某些场合可以完全取代 MonkeyRunner 所做白盒测试(如上面的例子),但同时也可以结合项目本身,编写测试单元,实现对代码逻辑的检查,以及输出结果的校验等测试。

共同点:
在白盒测试中,对于 MonkeyRunner 和 Robotium,建议结合 Hierarchy View 工具,分析测试目标视图的层次结构,设计具体测试用例。

 

 

 

 

 

0
0
分享到:
评论

相关推荐

    Robotium针对apk包的测试

    Robotium是一款专为Android应用程序设计的自动化测试框架,它使得开发者能够轻松地创建强大的黑盒测试用例。Robotium的强大之处在于它支持UI组件的自动交互,包括点击、滑动、输入文本等,覆盖了大部分用户操作,...

    robotium Android自动化 测试范例

    **Android自动化测试范例——基于Robotium** 在移动应用开发中,确保软件的质量和稳定性是至关重要的。为了达到这一目标,开发者通常会采用自动化测试工具,以提高测试效率和覆盖率。Robotium是一款专为Android应用...

    Android Studio Robotium自动化

    Robotium是一款强大的自动化测试框架,主要用于Android应用的功能测试。它提供了丰富的API,使得编写黑盒测试脚本变得非常简单,尤其适合进行UI交互测试。 在Android Studio上搭建Robotium自动化测试,首先需要确保...

    Android自动化Robotium

    **Android自动化测试——Robotium详解** 在Android应用开发过程中,测试是不可或缺的一环,它确保了软件的质量和稳定性。Robotium是一款强大的自动化测试框架,专为Android应用设计,提供了全面的功能测试支持。...

    Android自动化测试手段之Robotium

    今天我们将深入探讨一个名为Robotium的自动化测试框架,它是专门为Android应用设计的。 **Robotium简介** Robotium是一款强大的自动化测试工具,它为Android应用提供了全面的UI测试支持。通过Robotium,开发者可以...

    android Robotium测试

    Robotium是一款强大的自动化测试框架,特别适用于Android应用的UI测试。本文将深入探讨如何利用Robotium进行测试,包括测试项目的搭建、代码编写以及测试运行的全过程。 首先,让我们了解什么是Robotium。Robotium...

    android 自动化 robotium 文档

    在Android自动化测试领域,Robotium是一款非常流行的开源框架,它专为Android应用提供黑盒测试支持。本文档将深入探讨Robotium的相关知识点,帮助你理解并掌握如何利用它进行高效、可靠的自动化测试。 1. **...

    android 黑盒 测试 工具框架 robotium

    Robotium是一款专为Android平台设计的强大黑盒自动化测试工具框架,尤其适用于UI层面的测试。 Robotium的核心优势在于它能够自动控制Android应用的行为,模拟用户的各种操作,如点击按钮、输入文本、滑动屏幕等。...

    在robotium的单元测试中如何进行截屏(截图)操作

    通过以上介绍,我们可以看到在Robotium框架中实现截屏功能并不复杂,主要依赖于Android平台提供的API。合理利用这一功能,可以极大地提高测试效率和质量,特别是在UI自动化测试方面具有不可替代的作用。希望本文能对...

    android自动化工具-robotium

    一、测试目的 1、回归测试稳定版本功能。 2、提高工作效率。 二、测试对象 1、Robotium在APK(米聊)文件下进行java junit Test...7.插件:re-sign.jar,robotium-solo-3.3,robotium-solo-3.3-javadoc(官方文档)。

    android自动化测试——robotium

    这是我收集的android自动化测试— 有关于robotium的一些资料 包括自己整理的一些文档 共4篇。。 jar也包括在内。 最重要的是还有一个Demo程序包,其中包括两个程序,一个测试程序一个被测程序。。 5分绝对值得的,...

    robotium测试之创建android实例

    Robotium是一款强大的自动化测试框架,专门用于Android应用的UI测试。本文将深入探讨如何利用Robotium来创建一个Android实例,以Calculator应用为例,进行详细的测试步骤解析。 首先,我们需要了解Robotium的基本...

    英文原版-Robotium Automated Testing for Android 1st Edition

    Due to a number of different key features added to the Robotium Framework, it has become the world’s leading Android test automation framework and most of the industry experts and professionals are ...

    Robotium Automated Testing for Android.zip

    This is a step-by-step, ... It's assumed that you have some experience in Android development, as well be familiar with the Android test framework, as Robotium is a wrapper to Android test framework.

    Android自动化测试框架Robotium的使用

    Robotium是一款强大的自动化测试框架,专为Android平台设计,适用于进行功能测试和UI测试。本篇文章将详细介绍Robotium的使用方法以及其核心功能。 Robotium的主要特点包括对多种应用程序类型的支持,如原生应用、...

    robotium实例

    Robotium是一款专为Android平台设计的自动化测试框架,它使得开发者能够轻松地创建针对原生以及混合应用程序的黑盒测试。Robotium的核心理念是通过模拟用户与应用的交互,如点击按钮、输入文本等,来验证应用的功能...

Global site tag (gtag.js) - Google Analytics