【金阳光测试】Android自动化测试第一季第四讲—Robotium原理初步和录制器
百度传课:http://www.chuanke.com/v1983382-106000-218428.html
一、基于控件
控件:
1、 Spinner
2、 TabHost
3、 Galley
4、 ProgressBar
5、 DatePaicker
6、 CheckBox
7、 RadioButton
8、 ToggleButton
9、 EditTest
二、Robotium原理
1、什么是Robotium
Robotium是一款国外的Android自动化测试框架,主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击、长按、滑动等)、查找和断言机制的API,能够对各种控件进行操作。Robotium结合Android官方提供的测试框架达到对应用程序进行自动化的测试。另外,Robotium 4.0版本已经支持对WebView的操作。Robotium 对Activity,Dialog,Toast,Menu 都是支持的。2014年1月,已经开发了基于eclipse插件的录制器。
2、代码分析
A、Click类
public void clickOnScreen(float x, float y, View view) {boolean successfull = false;int retry = 0;SecurityException ex = null;while(!successfull && retry < 10) {long downTime = SystemClock.uptimeMillis();long eventTime = SystemClock.uptimeMillis();MotionEvent event = MotionEvent.obtain(downTime, eventTime,MotionEvent.ACTION_DOWN, x, y, 0);MotionEvent event2 = MotionEvent.obtain(downTime, eventTime,MotionEvent.ACTION_UP, x, y, 0);try{inst.sendPointerSync(event);inst.sendPointerSync(event2);successfull = true;}catch(SecurityException e){ex = e;dialogUtils.hideSoftKeyboard(null, false, true);sleeper.sleep(MINI_WAIT);retry++;View identicalView = viewFetcher.getIdenticalView(view);if(identicalView != null){float[] xyToClick = getClickCoordinates(identicalView);x = xyToClick[0]; y = xyToClick[1];}}}if(!successfull) {Assert.fail("Click at ("+x+", "+y+") can not be completed! ("+(ex != null ? ex.getClass().getName()+": "+ex.getMessage() : "null")+")");}}
MotionEvent.obtain:
重点看这两个方法:
static MotionEvent |
obtain(long downTime, long eventTime, int action, int pointerCount, PointerProperties[] pointerProperties, PointerCoords[] pointerCoords, int metaState, int buttonState, float xPrecision, float yPrecision, int deviceId, int edgeFlags, int source, int flags) Create a new MotionEvent, filling in all of the basic values that define the motion. |
static MotionEvent |
obtain(long downTime, long eventTime, int action, float x, float y, float pressure, float size, int metaState, float xPrecision, float yPrecision, int deviceId, int edgeFlags) Create a new MotionEvent, filling in all of the basic values that define the motion. |
B、Solo类
面试会问:控件层叠了,怎么搜索到控件是什么。
//将所有的东西得到后放入ArrayList里面,再遍历出来public <T extends View> boolean searchFor(View view) {ArrayList<View> views = viewFetcher.getAllViews(true);for(View v : views){if(v.equals(view)){return true;}}return false;}
C、Search类—阿里高级测试面试题
D、WebView、RobotiumWebClient和WebChromeClient—阿里高级测试面试题2
WebChromeClient used to get information onweb elements by injections of JavaScript.
WebChromeClient在web控件上通过注入js脚本来获取信息。
public void enableJavascriptAndSetRobotiumWebClient(List<WebView> webViews, WebChromeClient originalWebChromeClient){this.originalWebChromeClient = originalWebChromeClient;for(final WebView webView : webViews){if(webView != null){ inst.runOnMainSync(new Runnable() {public void run() {webView.getSettings().setJavaScriptEnabled(true);webView.setWebChromeClient(robotiumWebClient);}});}}}
【金阳光测试】Android自动化测试第一季第四讲—Robotium原理初步和录制器相关推荐
- 【金阳光测试】Android自动化测试第一季第零讲--预备知识
百度传课: http://www.chuanke.com/v1983382-106000-218422.html http://www.chuanke.com/v1983382-106000-2184 ...
- Android自动化测试第一季(基础篇)-金阳光-专题视频课程
Android自动化测试第一季(基础篇)-32195人已学习 课程介绍 Android自动化测试第一季 初级 课程收益 零基础 讲师介绍 金阳光 更多讲师课程 ...
- 【金阳光测试】Android自动化测试第一季第二讲--MonkeyRunner
百度传课: http://www.chuanke.com/v1983382-106000-218426.html 1. 理论知识和脚本演示 地址:http://developer.android.c ...
- 【金阳光测试】Android自动化测试第一季第三讲—Monkey原理初步和改良优化
百度传课:http://www.chuanke.com/v1983382-106000-218427.html 一.理论知识: 官方文档:http://developer.android.com/to ...
- Android自动化测试第二季(提高篇)-金阳光-专题视频课程
Android自动化测试第二季(提高篇)-17804人已学习 课程介绍 [金阳光测试]是由金阳光等创办的国内个人免费培训测试.欢迎喜欢测试的朋友来观看学习,提意见. 课程收益 ...
- iOS自动化测试第一季-金阳光-专题视频课程
iOS自动化测试第一季-14288人已学习 课程介绍 iOS自动化测试初级 课程收益 适合人群 1.想了解iOS自动化测试的人员 2.从事 无线测试.移动互联网测试.手机测试 ...
- 【金阳光测试】大话Android自动化测试--Android自动化系列(1)--金阳光于2013年4月份
Android自动化测试框架和工具在四年多的发展日趋成熟.从五年前的第一代自动化架构演进到目前第四代(本系列讲座第7篇后将详细剖析第三代和第四代自动化框架)从以前最早谷歌推崇的monkey随机测试工具 ...
- 【金阳光测试独家播出】公益视频讲座:WEB自动化测试预告-7月11日更新第一集
如果学习测试的我们是花千骨,那么金阳光测试就是白子画,个人学习免费教; 如果做测试的我们是赵默生,那么金阳光测试就是何以琛,解决一路测试中的问题; 如果提升测试的我们大熊,那么金阳光测试就是哆 ...
- 【金阳光测试】基于控件核心技术探讨---Android自动化系列(2)---2013年5月
第一讲分享了下安卓自动化一些概况和一些自动化框架现状和技术能够解决什么样的问题.这次课就深入到android世界里面.遨游.翱翔,深入了解自动化测试核心技术. 搞过编程开发的同学听到instrumen ...
最新文章
- 神经网络设计与分析之如何知道权重的利用率
- javascript数组常用方法
- matlab plot subplot,Matlab使用subplot合并子图
- 欧几里得算法(即辗转相除法)的时间复杂度
- 论文笔记 - 《Deep Learning》(Yann LeCun Yoshua Bengio Geoffrey Hinton) 精典
- linux en_us支持什么格式的中文,更改Linux操作系统下的显示默认支持语言
- 大数据之-Hadoop完全分布式_集群群起_同时启动上万台集群机器---大数据之hadoop工作笔记0037
- 通过二进制方式安装innobackupex
- Connect() 2016 大会的主题 ---微软大法好
- .Net码农就业求职储备(新手进阶)
- 深度阅读----人工智能简史及其思维辩证
- php round函数
- 关于qt使用sqlist数据库的注意事项
- RPGMAKER游戏引擎基于JavaScript的插件制作(一)——前期准备以及RPGMAKER内建逻辑
- U盘有必要安全弹出吗??
- Windows要求已数字签名的驱动程序
- Java基础篇--IO
- pyhon编码问题之由 u'\uxxx' 转 \uxxx
- WeUI - 微信官方推出的免费开源 UI 组件库,上手简单,风格简约,在微信生态开发轻量项目的绝佳选择
- 绿色科技玩转冬奥会 电子垃圾铸奖牌