Robotium原理初步--Android自动化测试学习历程
章节:自动化基础篇——Robotium原理初步(第四讲)
主要讲解内容与笔记:
一、基于控件
1、spinner——下拉菜单
2、TabHost——左右滑动选择菜单,类似电话本
3、Gallery——图形
4、Progressbar——进度条
5、DatePicker——日期与时间选择控件
6、CheckBox——单选框;RadioButton——互斥单选框;Button——一般按钮
7、ToggleButton——双状态按钮控件:选择和未选择两种状态,并且针对不同状态显示不同文本
8、EditText——编辑框
二、Robotium原理
1、Robotium是what?
Robotium是国外的一款android自动化测试框架,主要提供黑盒测试的功能,能够对控件进行操作(与monkey与monkeyrunner相比),提供了模拟用户操作、查找、断言的API。另,Robotium 4.0版本提供了对WebView的支持。Robitum提供对Activity、Dialog、Toast、Menu的支持。2014年1月,已开发出基于eclipse的录制器
2、Rotium的开发文档:
就直接搜Robotium官网,下载其javadoc文档,解压出来就是这样的目录:

打开index.html,就能看到class下面的solo类的介绍。
最重要的类是solo类,其中包含方法如下:

从上面截图可以看到提供的类包括:
1)、assertCurrentActivity方法,判断符合特定name的Activity是否是当前活动的这个,有多个重载类,具体调用根据实际情况来实现
2)、clickInList方法:点击list,获取结果;clickLongInList:长按List,获取结果
3)、...还有其他各种,长按屏幕、长按符合特定需求的Text的View的、点击Button等,各种很轻易从名字就可以理解功能的方法
3、代码分析(重点)
1)、Clicker类
以clickOnScreen(float x, float y)函数为例,调用android的apk方法:MotionEvent.obtain()方法,参数包括按下时间、事件事件、以及事件类型、x和y坐标等
2)、Solo类(为核心搜索控件:Robotium跟Monkey原理无关,Robotium是调用instrumentation框架查找控件,用injectevent事件驱动控件运行)
该类中的assertCurrentActivity方法,调用了searchFor方法:获取到所有的activity里面的View,然后根据所要获取的内容调用相应方法,这样就能获取到符合要求的我要找的东西
3)、search类:
该类的处理逻辑?
getview——>获取到所有的activity里面的View——>丢入arraylist里,一个个拿出来进行比对判断是哪种类型
4)、WebView、RobotiumWEbView和WebChromeClient
js脚本注入
三、RobotiumRecord录制器
这个要自己去试用一下,也没什么可多说的
网易云课堂:
http://study.163.com/course/courseLearn.htm?courseId=712011#/learn/video?lessonId=876095&courseId=712011
|
金阳光测试 |
新浪微博:金阳光woody |
|
网站地址 |
1、百度搜:金阳光测试 2、官网:www.goldensunshine.cc |
|
微信公众号 |
|
Robotium原理初步--Android自动化测试学习历程的更多相关文章
- Appium原理初步--Android自动化测试学习历程
章节:自动化基础篇——Appium原理初步(第七讲) 本期关键词: Appium.跨语言跨平台.Bootstrap 主要讲解内容及笔记: 一.what is appium 一种封装了uiautomat ...
- Selenium原理初步--Android自动化测试学习历程
章节:自动化基础篇——Selenium原理初步(第五讲) 注:其实所有的东西都是应该先去用,但是工具基本都一样,底层都是用的最基础的内容实现的,测试应该做的是: (1)熟练使用工具,了解各个工具的利弊 ...
- MonkeyRunner原理初步--Android自动化测试学习历程
章节:自动化基础篇——MonkeyRunner原理初步 主要讲解内容及笔记: 一.理论知识和脚本演示 最佳方式是上官网文档去查看monkeyrunner的介绍,官网上不去,就找了一个本地的androi ...
- AndroidDriver原理初步--Android自动化测试学习历程
章节:自动化基础篇——AndroidDriver原理初步(第六讲) 主要讲解内容及笔记: 一.AndroidDriver核心原理 对上图的解析: PC端的端口通过adb,将android版的Remot ...
- Monkey原理初步和改良优化--Android自动化测试学习历程
章节:自动化基础篇——Monkey原理初步和改良优化(第三讲) 主要讲解内容与笔记: 一.理论知识: 直接看文档,来了解monkey的概念.基本原理,以及如何使用. First,what is And ...
- 百度Cafe原理--Android自动化测试学习历程
主要讲解内容及笔记: 一.Cafe原理 Cafe是一款自动化测试框架,解决问题:跨进程测试.快速深度测试 官网:http://baiduqa.github.io/Cafe/ Cafe provides ...
- 截图原理(一)——Android自动化测试学习历程
把两节的内容汇总起来,第一节讲的是如何在apk中直接进行截屏,用到了Robotium的Solo类的takeScreenShot方法,有一个小的demo,以及从方法一直往里钻,知道它具体是怎么进行截屏的 ...
- 截图原理(二)——android自动化测试学习历程
接上一篇(截图原理) 视频地址:http://study.163.com/course/courseLearn.htm?courseId=712011#/learn/video?lessonId=87 ...
- 自动化预备知识上&&下--Android自动化测试学习历程
章节:自动化基础篇——自动化预备知识上&&下 主要讲解内容及笔记: 一.需要具备的能力: 测试一年,编程一年,熟悉并掌握业界自动化测试工具(monkey--压力测试.monkeyrun ...
随机推荐
- [转]html 下拉框级联
<html> <head> <title>html 下拉框级联</title> <meta charset="UTF-8"/& ...
- application/xml 和 text/xml的区别
application/xml and text/xml的区别 经常看到有关xml时提到"application/xml" 和 "text/xml"两种类型, ...
- configure: error: You need a C++ compiler for C++ support.
安装pcre包的时候提示缺少c++编译器 报错信息如下: configure: error: You need a C++ compiler for C++ support. 解决办法,使用yum安装 ...
- Lua中的metatable详解
转自:http://www.jb51.net/article/56690.htm Lua 中 metatable 是一个普通的 table,但其主要有以下几个功能: 1.定义算术操作符和关系操作符的行 ...
- Ubuntu-14.04.1 desktop安装时及安装后遇到的小问题
ubuntu安装时,进入桌面就黑屏:ctrl+alt+F1进入终端1,输入:startx,此时桌面会重新出现,快速修改桌面的分辨率即可.没有及时修改可以重复上面操作. su root认证失败:sudo ...
- HIbernate编程模型
1.Hibernate: ORM框架,简化SQL开发,编程接口丰富,简化JDBC编程 2.有点: Lazy机制配合Fetch的HQL高级查询,提高开发效率 难点:理解Lazy与Fetch JOIN的原 ...
- Centos 克隆后端口eth1怎么改回eth0
复制或克隆后成功并做好后续问题的虚拟机 修改网卡地址vi /etc/udev/rules.d/70-persistent-net.rules 配置ifcfg-eth0脚本,注意HWADDR那行,要和上 ...
- 网络虚拟化中的 offload 技术:LSO/LRO、GSO/GRO、TSO/UFO、RSS、VXLAN
offload offload特性,主要是指将本来在操作系统协议栈中进行的一些数据包处理(如IP分片.TCP分片.重组.checksum校验等)放到网卡硬件中去做,降低系统 CPU 消耗,提高处理的性 ...
- express处理跨域问题,中间件 CORS
CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing). 1.不用中间件的话可以这样写: app.all('*', func ...
- Spring Data Jpa --- 入门
一.概述 Spring Data是Spring下的一个子项目,用于简化数据库访问,并支持云服务的开源框架.Spring Data支持NoSQL和 关系数据存储,其主要目标是使得数据库的访问变得方便快捷 ...
