背景介绍

android开发过程中,每次迭代升级都需要去回归一下之前版本功能,看看最新的修改有没有影响到之前的正常功能。然而这个过程永远都是在做一些繁琐的重复的操作,大大浪费人力,所以我们决定使用自动化来做这个事情,这就引入了我们接下来要介绍的自动化测试框架——robotium。

Robotium是一款国外的Android自动化测试框架,主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击、长按、滑动等)、查找和断言机制的API,能够对各种控件进行操作。

配置robotium

robotium配置起来也很方面。首先在build.gradle中添加依赖

compile 'com.jayway.android.robotium:robotium-solo:5.6.0'

然后需要在测试工程中的AndroidManifest.xml中做如下的配置

package="xxxx.test">

android:targetPackage="xxx"

android:name="android.test.InstrumentationTestRunner"

/>

上面的package="xxxx.test"是我们测试包的名称,下面定义的instrumentation中的tartPackage="xxx"是我们被测试工程的包名称,这个配置很关键,出问题的话很容易出现找不到被测试包的错误。以上就是简单的配置了,接下来就可以开始写测试代码了。

Quick Start Guide

在测试包下面创建一个测试类,命名规范为XxxTest,该类继承ActivityInstrumentationTestCase2,构造方法中需要传入app的启动activity。代码如下:

private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = "xxxx.LuancherActivity";

private static Class> launcherActivityClass;

static{

//通过反射的方式获取的

try {

DebugUtil.debug(TAG, "启动类"+LAUNCHER_ACTIVITY_FULL_CLASSNAME);

launcherActivityClass = Class.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);

} catch (ClassNotFoundException e) {

throw new RuntimeException(e);

}

}

public XxxTest() throws ClassNotFoundException {

super(launcherActivityClass);

}

以上就设置好了启动的activity,然后需要重载两个方法

public void setUp() throws Exception;

public void tearDown() throws Exception;

setUp()做一些启动测试前的准备工作,如创建Solo实例,启动activity等

@Override

public void setUp() throws Exception {

super.setUp();

//创建Solo实例

solo = new Solo(getInstrumentation());

//启动activity

getActivity();

}

tearDown()中测试做一些善后的工作,如结束activity等

@Override

public void tearDown() throws Exception {

solo.finishOpenedActivities();

super.tearDown();

}

上述工作准备好之后,剩下的就是我们的测试主体方法了。方法格式如下:

public void testXxxx() {

}

注意测试方法必须按照如上格式,否则框架无法识别测试方法,也就无法运行了。这种形式的方法在一个类中是可以定义多个的。在setUp()中我们定义了一个Solo实例,这个实例到底有什么用呢?接下来稍微讲一些Solo类的用法,如果里面有的功能无法满足你的需求,可以自行去查看api文档。

Solo类用法

点击控件

solo.clickOnView(solo.getView(???));

获取控件

solo.getView()

获取控件api

参数说明:

int id:直接调用R.id.xxx

int index:表示该控件是该页面的第几个同id控件。

Object tag:控件的tag属性

String id:xml中定义的id属性

点击按钮(可通过点击控件实现)

solo.clickOnButton()

点击按钮

参数说明:

int index:该页面的第几个按钮

String text:按钮上的文字

验证toast文字

验证toast

toast的本质就是一个TextView,通过上述代码即可验证toast中显示的文本。

在输入框输入文本

输入文本

参数说明:

第一种方法获取editText可以通过2中的方法获取,text即为待输入文本。

第二种方法中index为该页面上的第几个输入框。

等待对话框关闭和打开

对话框

参数说明:

long timeout:设置超时时间,单位为毫秒

验证activity的加载

验证activity加载

参数说明:

String:直接传入activity名称字符串即可。

int:超时事件,默认为20000,单位为毫秒

Class extends Activity>:直接传入activity实例

获取网页元素

获取网页元素

主要说明一下By类的用法

By.id(String) 元素的id

By.xpath(String) 元素的节点路径

By.cssSelector(String) 元素的css selector

By.name(String) 元素的name属性

By.className(String) 元素的class属性

By.textContent(String) 元素的textContent属性

By.tagName(String) 元素的tag属性

网页元素输入文本

网页元素输入enter

网页元素输入type

type和enter的区别在于type输入时,相当于在输入完后直接键入了一个回车,而enter没有。

点击网页元素

点击网页元素

int match表示当有多个匹配时取哪一个,默认为0

boolean srcoll 表示是否要滑动,默认为true

验证网页元素是否加载成功

验证网页元素是否加载成功

int miniumumNumberOfMatch 表示至少要找到多少个

int timeout 超时,单位为毫秒

boolean scroll 是否滑动

robotium android,android自动化测试框架robotium配置和使用相关推荐

  1. android ui自动化测试框架有哪些,自动化测试框架对比(UIAutomator、Appium、Robotium)...

    一.原理 1.UiAutomator--基于UIAutomation的用户界面自动化测试框架,可以跨应用工作,谷歌亲生的. Android4.3之前:使用inputManager或者更早的Window ...

  2. android app自动化测试框架Appium资料整理

    by Ruiming.Lv 1   自动化测试 1.1    自动化测试简介 自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程.从广义上来讲,一切通过工具(程序)的方式来代替或辅助手工测试的 ...

  3. android UI自动化测试工具Robotium VS NativeDriver VS Calabash

    http://kongqingyun123.blog.163.com/blog/static/6377283520126294029822/ 自从上次对Robotium和nativedriver这两个 ...

  4. [android]am自动化测试框架(原创)

    在linux环境该目录下需要一个AndroidManifest.xml文件 需要一个python脚本就可以完成,功能点,打开某个package的所有activity并截图保存 import os im ...

  5. 自动化测试框架搭建-配置-1

    先从一个脚本test_baidu.py开始,目的是模拟在Chrome浏览器的百度界面上搜索一个关键字"自动化测试unittest".在线安装selenium这里自不必说,通过 pi ...

  6. 【腾讯优测月刊】安卓主流自动化测试框架详解与实践

    导语: 随着移动应用发布周期越来越紧凑.安卓品牌机型/屏幕/系统版本等碎片化日益严重,移动测试工程师的工作量日益剧增.自动化测试or手工测试?这个前些年争执不休的话题,近年来随着云测试平台的崛起似乎已 ...

  7. python app自动化测试框架_appium+python,app自动化测试框架

    基于appium的app自动化测试框架 基于appium框架的app自动化测试 App自动化测试主要难点在于环境的搭建,appium完全是基于selenium进行的扩展,所以app测试框架也是基于we ...

  8. python测试框架untest_python自动化测试框架unittest

    对于刚学习python自动化测试的小伙伴来说,unittest是一个非常适合的框架: 通过unittest,可以管理测试用例的执行,自动生成简单的自动化测试报告: 首先我们尝试编写编写一个最简单的un ...

  9. android studio云测,Android studio 下的robotium自动化测试和持续集成

    [背景介绍] Android Studio 是一个Android开发环境,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开 ...

  10. Robotium自动化测试框架实用教程(图)

    一.简介 Robotium是一款国外的Android自动化测试框架,主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击.长按.滑动等).查找和断言机制的API,能够对各 ...

最新文章

  1. PCL基础1:点云数据结构
  2. 启发式搜索给神经网络_神经科学如何支持UX启发式
  3. 每个女孩子起床后做的第一件事......
  4. spring http缓存_HTTP缓存与Spring示例
  5. C Builder中如何利用消息
  6. scrollTop的兼容性小结
  7. 天下会-百度搜索技巧语法大全
  8. 计算机多媒体专业是什么专业,什么是计算机多媒体技术
  9. PAT 1085 PAT单位排行(25)(映射、集合训练)
  10. linux 常用命令练习
  11. WPF学习:3.Border Brush
  12. JSP — request 内置对象
  13. TServerSocket阻塞模式下Request-Response编程框架
  14. python代码_Python代码的优化技巧
  15. 《前端工具系列》最好用的git可视化工具——SourceTree
  16. 服务器硬盘 二手,分析:二手服务器配件 哪个最不该买?
  17. Vue经典开源项目汇总
  18. ContextCapture空三后像控点颜色含义
  19. 多线程——分线程通过Handler操作界面
  20. 微信小程序点击更改样式-点击获得下划线

热门文章

  1. 大数据产品推荐:金蜂巢大数据集成与脱敏系统
  2. 如何删除我的计算机里的搜索记录,计算机里搜索栏的历史记录怎么删除?
  3. 国际大牌在中国的故事
  4. 【教程】如何批量图片文字识别软件,批量图片文字识别OCR软件系统,批量图片压缩,PDF批量转文字转图片
  5. ubuntu20.04安装搜狗拼音输入法
  6. matlab如何实现连续函数傅里叶变换和反变换(注:其实是由符号法创建的函数)
  7. 基于JAVA飞羽羽毛球馆管理系统计算机毕业设计源码+数据库+lw文档+系统+部署
  8. 小程序开发前端和后台技术你都了解吗?
  9. DHCP报文类型和中继
  10. python爬虫之scrapy入门