开发者社区> 文艺小青年> 正文

DUIR Framework 相关技术介绍

简介:
+关注继续查看

开发者在搭建界面自动化测试框架时,又或者在开发界面自动化控制的机器人时,往往需要对界面进行自动化的程序控制。而现在公司内部使用的杜尔自动化框架,就是一个封装了界面自动化控制逻辑的程序框架。基于该框架,开发者可以轻松、快速的控制各类程序的界面,这些界面可以包含 Windows 界面、浏览器界面。

五年前曾经写过一篇关于自动化测试的框架的文章:《搭建 WPF 上的 UI 自动化测试框架》。杜尔自动化框架,也是基于类似的技术,今天整理一下这个框架所使用的技术,在这里和大家简单分享一下。

杜尔的架构如下图所示:

33907-20171223133630021-2076696182.png

对图中的所涉及技术,简单介绍如下:

最底层平台,是 Windows 平台,我们的框架只考虑该平台界面的自动化。

最上层,是框架的使用者、客户端,目前这个框架会集成在我公司的另一个智能客户端 VICA (VAT Intelligent Client Assistant)中。

再往下,就是 DUIR: Dben UI Robot Framework,中文名:杜尔机器人框架。

杜尔框架主要分为两层:下层是对 windows 下各类普通控件的查找、定位、封装;上层则是基于部分常见的场景,使用下层的控件来实现的各类场景逻辑的封装。其核心,自然是底层的控件封装。该层的实现,主要依赖三类技术:

  1. 直接使用句柄、消息机制等底层 Windows 机制来实现控制的控制。
  2. 使用 UI Automation for Managed Code 来实现控件自动化。
  3. 使用 VSTT(Visual Studio Testing Tool)& RPF 框架来实现控件自动化以及录制功能。

第 1 项技术:句柄消息机制,很常见,在此不赘述。

第 2、3 两项技术,都主要依赖于底层的 Windows Automation API,该技术是整个体系的核心。介绍如下:

“Microsoft UI Automation is an accessibility framework that enables Microsoft Windows applications to provide and consume programmatic information about user interfaces (UIs). It provides programmatic access to most UI elements on the desktop. It enables assistive technology products, such as screen readers, to provide information about the UI to end users and to manipulate the UI by means other than standard input. UI Automation also allows automated test scripts to interact with the UI.”

详情,见:《Windows Automation API: UI Automation》。

再回过头来看 UI Automation for Managed Code,这是 UI Automation 的托管代码框架。详见:《UI Automation for Managed Code》。

另一项技术,则是 RPF,详见《Record and Playback Framework》。RPF 支持录制与播放,集成了 Win32、MSAA、UIA、IE 等底层平台,介绍如下:

“RPF is a tool used to record meaningful steps performed by a user against a UI-based target application and then generate a code/script to play these steps back. RPF consists of two parts Recording and Playback. Both parts use Win32 and
Microsoft Active Accessibility (MSAA) or UIAutom
ation(UIA) as the underlying technologies, however at this time RPF has full support for Win32 and MSAA only and UIA is
supported by Playback only. Also RPF
natively supports Internet Explorerwhich makes it the first (and the only at the moment) tool that natively supports Win32, MSAA, UIA and IE on Vista and XP.”

另外,图中的 VSTT,全称为 Visual Studio Testing Tool。是 Visual Studio 中 Coded UI Test 框架的基础框架。其使用托管代码构建,基于下层的 RPF 框架构建。通过使用 VSTT,使得我们可以以一种更加简单的 API、更加易用的托管代码,并配合更加方便使用的工具来实现 UI 自动化。详见:《Introduction to Record and Playback Engine in VSTT 2010》。

目前,虽然 DUIR 支持 Win32、UIA、VSTT,但是大部分的场景,都会直接基于 VSTT 来实现。只有少量 VSTT 无法实现的情况下,我们才会使用另外两个技术来实现,并封装在 DUIR 内部。


本文转自BloodyAngel博客园博客,原文链接:http://www.cnblogs.com/zgynhqf/p/8093251.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
1..Net平台历程介绍和.net framework和netcore的架构体系对比,以及框架的选择介绍
1..Net平台历程介绍和.net framework和netcore的架构体系对比,以及框架的选择介绍
25 0
开源工作流引擎Workflow Core的研究和使用教程
开源工作流引擎Workflow Core的研究和使用教程
1132 0
微软Build 2018亮点全揭晓:主推Azure、Microsoft 365,开源ML.Net
微软开发者大会 Build 2018 于 7-9 日在西雅图的华盛顿会议中心举行,本文带你浏览大会第一天的核心亮点。
126 0
开源工作流引擎 Workflow Core 的研究和使用教程
开源工作流引擎 Workflow Core 的研究和使用教程 [TOC] 一,工作流对象和使用前说明 为了避免歧义,事先约定。 工作流有很多节点组成,一个节点成为步骤点(Step)。 1,IWorkflow / IWorkflowBuilder Workflow Core 中,用于构建工作流的类继承 IWorkflow,代表一条有任务规则的工作流,可以表示工作流任务的开始或者 Do() 方法,或工作流分支获取其它方法。
3379 0
+关注
文艺小青年
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
从零到一:IOS平台TensorFlow入门及应用详解(附源
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
相关实验场景
更多