zoukankan      html  css  js  c++  java
  • Robotium 框架学习之概述

    框架目的:

         Robotium is an Android test automation framework that has full support for native and hybrid applications. Robotium makes it easy to write powerful and robust automatic black-box UI tests for Android applications. With the support of Robotium, test case developers can write function, system and user acceptance test scenarios, spanning multiple Android activities.

         本身支持了原生和混合APP的自动化黑盒测试,能够覆盖功能、系统和用户验收测试,可以支持跨多个Android activities。

    因为本身是开源项目,所以可以支持扩展和源码查看,下载Robotium源码和帮助文档,发现,底层是使用JAVA开发的框架,所以扩展性应该还不错,先看一下框架内部的继承关系:

    顶层是package:solo, solo下由By/solo/Robotium Utils/WebElement等组成,其中有一个Condition的接口和一个列举类型的方法(主要是为了截图)。

    由于Class继承了Object,所以也具有其他方法:

    具体实现需要查看相关文档。

    为了使用去看了下官网的的Example:

    public class EditorTest extends
                    ActivityInstrumentationTestCase2<EditorActivity> {

      private Solo solo;

      public EditorTest() {
                    super(EditorActivity.class);
      }

      public void setUp() throws Exception {
            solo = new Solo(getInstrumentation(), getActivity());
      }
     
      public void testPreferenceIsSaved() throws Exception {
     
                    solo.sendKey(Solo.MENU);
                    solo.clickOnText("More");
                    solo.clickOnText("Preferences");
                    solo.clickOnText("Edit File Extensions");
                    Assert.assertTrue(solo.searchText("rtf"));
                   
                    solo.clickOnText("txt");
                    solo.clearEditText(2);
                    solo.enterText(2, "robotium");
                    solo.clickOnButton("Save");
                    solo.goBack();
                    solo.clickOnText("Edit File Extensions");
                    Assert.assertTrue(solo.searchText("application/robotium"));
                   
      }

       @Override
       public void tearDown() throws Exception {
            solo.finishOpenedActivities();
      }
    }

    可以看到ActivityInstrumentationTestCase2这个安卓SDK提供的测试类,基于对于Instrumentaion的理解,本身应该也是一个安卓程序,然后,使用了基础的测试类,solo的作用应该是封装了对APP元素的识别和操作的一系列动作,至于说是封装了Instrumentaion,我对于这个观点保留意见,需要进一步的查看源码,下面会具体列举源码的部分和一些应用。

  • 相关阅读:
    常见问题:bootstrap datepicker日期插件汉化
    好的插件
    问题11:web前端开发规范手册(转)
    问题10:获取当前页面宽度JS
    SQL学习1:基础
    问题9:tabtle 整理
    Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: PermGen space
    测试markdown 博客功能
    Cannot generate SSPI context
    Ubuntu 13 Zookeeper 集群配置
  • 原文地址:https://www.cnblogs.com/TestingOn/p/3972479.html
Copyright © 2011-2022 走看看