Robotium入门

Android测试环境
Android测试环境的核心是一个Instrumentation框架。Instrumentation框架通过将主程序和测试程序运行在一个进程来实现功能,通过Java反射机制,来获取当前窗口所有视图,并根据该视图查找到目标控件的属性信息,并计算出目标控件中心点坐标。然后,利用Instrument内部接口,实现点击操作。
Android自身提供了对Instrumentation测试的基本支持,其中之一就是位于android.test包内的ActivityInstrumentationTestCase2类,它扩展了JUnit的TestCase类提供的Android activities的功能测试。在应用测试中,每个activity首先会被Instrumentation初始化,然后再加载到Android模拟器来执行。
Robotium的case都继承ActivityInstrumentationTestCase2。设计的目的:主要用来得到测试的Activity,执行单元测试用例。getActivity()是入口
Robotium - Instrumentation
Robotium框架,使用的也是Instrumentation,通过将测试的工程项目安装到AVD(模拟器)上面来与运行时的项目交互,触发其组件的动作等。这种方法需要两个项目同时安装到AVD中。
Robotium简介:
是一个测试框架,能方便为Android应用程序编写强大、健壮的自动化黑盒测试用例。利用Robotium的支持,用例开发人员能编写功能、系统和验收测试方案,跨越多个Android activities,Robotium支持Activities,Dialogs, Toasts, Menus, Context Menus

官网:www.robotium.org
中文社区:www.robotium.cn

优点:
1. 可以以最少的知识去测试应用程序,和发展强大的测试用例。
2. 可以自动处理多个Android activity
3. 开源, 版本更新迅速
4. 用于黑河的自动化测试,可以在有源码或者只有APK的情况下对目标应用进行测试,提供了模仿用户操作行为的API,比如输入text等。
5. 通过运行时绑定GUI组件使测试用例更强大
6. 执行测试用例速度快
7. 顺利整合了Maven或Ant来运行测试,持续集成的一部分
常用方法:
get

getCurrentActivity() --
getText(String)
getView(int)
getEditText(String)
getImage(int) -- Returns an imageView with a given index

Click:
clickOnButton(int)
clickOnButton(String)
clickOnCheckBox(int)
clickOnView(View)
clickOnText(String)
clickLongOnText(String)
clickOnRadioButton(int)
clickOnScreen(float, float)

drag & scroll:
darg(float, float, float, float, int)
scrollDown()/scrollToBottom()/scrollToTop()/scrollToSide(int side)

search:
searchText(String)
searchEditText(String)
searchButton(String, boolean)

wait:
waitForActivity(String name)
waitForCondition(Condition condition, timeout)
waitForDialogToClose(long timeout)
waitForTest(String text)
waitForView(View view)
waitForWebElement(By by)

Class:
By: public abstract class By extends Object    用于处理web元素
Condition:public interface Condition    Method: isSatisfied()
RobotiumUtils: public class RobotiumUtils extends Object    包含一些工具性的方法,供其他类使用
Solo:public class Solo extends Object    Robotium测试开发的主要类,对views, WebViews, Activities, Dialogs, Menus, Context Menus有很好的支持
Timeout: public class Timeout extends Object     获取或设置超时时间
WebElement:public class WebElement extends Object    WebViews的元素,有getClassName, getTagName等属性

编写Robotium测试程序:
指定需要启动的Activity,launcherActivityClass = Class.forName(ActivityName);
在构造函数里传入该Activity
重写setUp() -- 初始化Solo对象
重写tearDown() -- 释放所有Activity资源
编写测试用例

为什么需要重签名?
因为测试apk和被测apk的签名需要一致才能运行并驱动测试
如何进行重签名?
双击re-sign.jar, 将重签名的apk拖至re-sign.jar窗口中

InstrumentationTestRunner: 执行JUnit Test, 可以理解为对用例进行管理和操作,继承在Instrumentation

时间: 2024-08-10 15:07:44

Robotium入门的相关文章

Robotium 第一天,HelloWorld

前段时间用Appium写安卓的UI自动化脚本,总的来说还是很不错的,但是有以下几个限制: 中文输入问题,这个我用遍了网上的各种方法,都没能解决,真的是RP问题吗... 有些开发会在Activity里封装webview,对于这种场景,Appium除了坐标,没有其它的解决方案 Appium无法处理toast消息 对于全局的alertDialog的处理也是很不给力,只能通过点击坐标来处理 当然,这并不是说appium不好,这些只是我在写脚本中遇到的问题,appium的优点很多了,客户端语言没有限制(用

Robotium

前段时间用Appium写安卓的UI自动化脚本,总的来说还是很不错的,但是有以下几个限制: 中文输入问题,这个我用遍了网上的各种方法,都没能解决,真的是RP问题吗... 有些开发会在Activity里封装webview,对于这种场景,Appium除了坐标,没有其它的解决方案 Appium无法处理toast消息 对于全局的alertDialog的处理也是很不给力,只能通过点击坐标来处理 当然,这并不是说appium不好,这些只是我在写脚本中遇到的问题,appium的优点很多了,客户端语言没有限制(用

安卓自动化测试(2)Robotium环境搭建与新手入门教程

Robotium环境搭建与新手入门教程 准备工具:Robotium资料下载 知识准备: java基础知识,如基本的数据结构.语法结构.类.继承等 对Android系统较为熟悉,了解四大组件,会编写简单的Android应用程序 熟悉Eclipse IDE使用方法 有足够的耐心与探索精神,遇到问题可以熟练的Google 环境搭建 安装jdk,配置环境变量,如果不会请自行Google 下载安装Android SDK,并更新 下载Eclipse,并安装ADT插件,集成Android SDK Roboti

robotium从入门到放弃 二 第一个实例

1.导入被测试的源码 我们先下载加你计算器源码,下载地址: https://robotium.googlecode.com/files/AndroidCalculator.zip 如果地址被墙无法现在下面网盘地址也可以下载: 链接: http://pan.baidu.com/s/1c2e8McC 密码: vsj8   打开eclipse,点击File-Import 选择Existing Projects into Workspace,点击Next   选择Select archive file,

robotium从入门到放弃 一 测试开发环境搭建

1.JDK的安装及环境变量的配置    配置JAVA的运行环境,添加完环境变量后,可以打开Windows命令处理程序窗口,通过执行命令java -version验证环境变量是否添加成功.如果添加成功会显示出安装的Java版本 如下图所示   2.Android SDK安装及环境变量配置,及ide的选择     下载地址:链接: http://pan.baidu.com/s/1pLrd6Sb 密码: kfj5     下载集成环境adt-bundle-windows-x86_64,里面包含ecli

robotium从入门到放弃 四 Robotium常用API

  获取控件 getText() getEditText() getButton() getImage() getImageButton() getEditText() getView() getWebElement() getWebUrl() getCurretViews()     点击操作控件 clickButton()可以通过index或者text识别控件 clickOnView()首先获取控件然后通过clickOnView实现点击控件 clickOnScreen(float x, fl

Android 自动化测试(5)<robotium>

关于Android的自动化测试之UI测试,之前介绍过Android 自动化测试(4)<uiautomator>, 在android原生的单元测试框架上,利用uiautomator.jar这个类库来完成Android的界面上的测试,这已经使得测试比较简单了.但还有更加简单的写测试的方式,那就是利用一些第三方的测试框架,比如robotium. Android的第三方的测试框架,有Robolectric 和 robotium,我试着用了下,觉得robotium已经非常好用了. 1.概要 Roboti

Robotium学习之点击没有ID的控件如何实现

---恢复内容开始--- 其实这篇文章写起来听费劲的,毕竟我自己也是刚刚解决这个问题..理解可能还是不太够,想说却也不知道从哪里说起比较好. UI自动化测试,我是以monkeyrunner入门的,这个工具,说实话入门真的很容易,sdk自带工具,环境不用花时间配置:脚本语言Python就我现在的理解看来也是一门非常实用并且简单的语言.但是原生的monkeyrunner几乎不能做任何复杂的事情,而大神们写的一些插件,也因为资料太少始终无法做的很好.所以怀着很复杂的心情,我放弃了monkeyrunne

Robotium---环境搭建及入门示例

Robotium是一款基于控件的Android自动化测试框架 环境搭建(window): 安装JDK以及集成Android Sdk的eclipise. 入门: 1,下载Robotium Solo 5.1,点我下载 2,开启eclipse,并导入工程(代码在最下面) 3,创建测试工程 new --- project --- Android Test Project 4,输入测试工程名,然后点击next 5,选择被测工程TButton,并点击finish 6,在测试工程中创建libs文件夹(有的教程