文档章节

UI Testing Framework

GoldenVein
 GoldenVein
发布于 2014/02/13 09:40
字数 406
阅读 294
收藏 1

UI Testing Framework构成的重要类:

UiTestAutomationBridge

这是整个Testing Framework的基础,此类负责连接系统了,记录最新的可链接事件(AccessibilityEvent) , 窗口内容查询Api等。可以被Android App调用,或者Java程序从shell调用。

这里需要注意两个概念:

1、AccessibilityEvent:所有的Ui元素可以被操纵,因为这些Event都是AccessibilityEvent。对于怎样令页面元素可以被操纵,使得相关的事件都是AccessibilityEvent,请参见Uiautomator 词条-"确认程序可以被测试" 部分。
2、AccessibilityNodeInfo:视窗中的组件树节点,也就是uiautomtorViewer中展示的各个节点。
Api中connect(), disconnect() 负责建立与设备的实际连接。
executeCommandAndWaitForAccessibilityEvent() performAccessibilityAction() findAccessibilityNodeInfosByText(), findAccessibilityNodeInfoByViewIdInActiveWindow() 都是其中重要的Api。

UiAutomatorBridge

UiAutomatorBridge是UiTestAutomationBridge的子类,区别主要是在构造函数中加上了InteractionController 和QueryController 两大对象的调用。以及一些常量定义等。除了上述差异,UiAutomatorBridge还定义了executeCommandAndWaitForAccessibilityEvent() 、onAccessibilityEvent() 、waitForIdle() 、addAccessibilityEventListener() 等函数。

InteractionController

介绍InteractionController,需要先提InteractionProvider,它负责注入用户事件(如点击、输入等) ,并且反应事件的对应坐标。
InteractionController则定义了几乎所有至于手机的基础操作,如runAndWaitForEvents(), clickAndWaitForEvents() ,click(), longTap(), scrollSwipe(),Swipe() ,clickAndWaitForNewWindow() ,touchUp(), touchDown(), TouchMove() ,isNaturalRotation(), setRotationRight(), setRotationLeft() ,freezeRotation() ,wakeDevice(), sleepDevice() 等。

QueryController

QueryController负责把UiSelector 的查找信息转化为AccessibilityNodeInfo。
具体Api如下:findNodePatternRecursive(), translatePatternSelector(), translateReqularSelector(), translateCompoundSelector(), getRootNode() ,findAccessibilityNodeInfo()。

UiWatcher

UiWatcher只在UiSelector无法找到匹配的结果时被调用,意在重试、等待页面更新 (如弹出对话框)等。其中只有一个主要函数:checkForCondition() 。

它的相关函数均在UiDevice中,如:UiDevice.registerWatcher() ,UiDevice. resetWatcherTriggers() ,UiDevice.runWatchers() ,UiDevice.removeWatcher() 


本文转载自:http://blog.sina.com.cn/s/blog_ae2575ff01018b2o.html

GoldenVein
粉丝 8
博文 113
码字总数 23459
作品 0
朝阳
程序员
私信 提问
pengjy/uitestcollection

Overview PC ariya/phantomjs -- phantomjs is a headless WebKit scriptable with JavaScript. SeleniumHQ/selenium -- Selenium is an umbrella project encapsulating a variety of tools......

pengjy
2016/09/02
0
0
Top 10 React Libraries on GitHub to Follow

Created by Facebook, React has gone on to become a really powerful JavaScript framework, making the job of front-end development easier for programmers. If you have spent some t......

Anton Shaleynikov
2017/12/13
0
0
Top 15 UI Test Automation Best Practices You Should Follow

In the past several years, I have heard many engineers from various projects complain about the stability and the reliability of UI automation tests. But are they really so unst......

Yuri Bushnev
2017/12/14
0
0
Aurelia 0.16.0 发布,类似 AngularJS 的 JS 框架

Aurelia 0.16.0 发布,此版本主要是 bug修复: build: update linting, testing and tools (ed65edc6) framework-configuration: add public properties (a5b32853, closes #199) parameter......

oschina
2015/09/06
886
3
Ionic框架入门(原文翻译)

注: 从未做过翻译,打算学学Ionic框架,从网上未找到中文资料,看到官网上有一个入门资料,所以打算试着用自己半瓶子的英语做个翻译尝试。这是一个有些痛苦与长期的过程。翻译一部分,放一部...

itwarcraft
2014/09/04
2.3K
0

没有更多内容

加载失败,请刷新页面

加载更多

驰骋工作流引擎-督查督办系统

1.概要说明 督查督办系统信息化平台适用于政府,企事业单位的重点项目跟进,重点工程部署,及各级精神的传达等督查督办性工作。开发设计坚持流程式管理的总体思路,充分体现督查事项立项的规...

孟娟
20分钟前
0
0
阿里靠什么支撑 EB 级计算力?

作者 关涛 阿里云智能事业群 研究员 导读:MaxCompute 是阿里EB级计算平台,经过十年磨砺,它成为阿里巴巴集团数据中台的计算核心和阿里云大数据的基础服务。去年MaxCompute 做了哪些工作,这...

zhaowei121
22分钟前
0
0
mybatis生成代码配置详解

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.o......

事儿爹
24分钟前
0
0
Vuex和表单绑定的一个神级坑再填一遍

vuex有一个很大的缺陷,就是和input输入框的v-model本身是冲突的。 官方文档给出了两种解决方案:https://vuex.vuejs.org/zh/guide/forms.html 一个是使用get和set → 适用于input框比较少的...

LinearLaw
27分钟前
0
0
CPU与GPU的区别

作者讲述的清楚: 我的理解:1 GPU ALU更多 2 Core 更多 3 业务更加专一(主要进行密集计算) 4 缓存区更少 https://www.zhihu.com/question/19903344...

南桥北木
27分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部