DUIR Framework 相關技術介紹

開發者在搭建界面自動化測試框架時,又或者在開發界面自動化控制的機器人時,每每須要對界面進行自動化的程序控制。而如今公司內部使用的杜爾自動化框架,就是一個封裝了界面自動化控制邏輯的程序框架。基於該框架,開發者能夠輕鬆、快速的控制各種程序的界面,這些界面能夠包含 Windows 界面、瀏覽器界面。html

五年前曾經寫過一篇關於自動化測試的框架的文章:《搭建 WPF 上的 UI 自動化測試框架》。杜爾自動化框架,也是基於相似的技術,今天整理一下這個框架所使用的技術,在這裏和你們簡單分享一下。windows

杜爾的架構以下圖所示:瀏覽器

對圖中的所涉及技術,簡單介紹以下:架構

最底層平臺,是 Windows 平臺,咱們的框架只考慮該平臺界面的自動化。app

最上層,是框架的使用者、客戶端,目前這個框架會集成在我公司的另外一個智能客戶端 VICA (VAT Intelligent Client Assistant)中。框架

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

杜爾框架主要分爲兩層:下層是對 windows 下各種普通控件的查找、定位、封裝;上層則是基於部分常見的場景,使用下層的控件來實現的各種場景邏輯的封裝。其核心,天然是底層的控件封裝。該層的實現,主要依賴三類技術:工具

  1. 直接使用句柄、消息機制等底層 Windows 機制來實現控制的控制。
  2. 使用 UI Automation for Managed Code 來實現控件自動化。
  3. 使用 VSTT(Visual Studio Testing Tool)& RPF 框架來實現控件自動化以及錄製功能。

第 1 項技術:句柄消息機制,很常見,在此不贅述。oop

第 二、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 支持錄製與播放,集成了 Win3二、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 支持 Win3二、UIA、VSTT,可是大部分的場景,都會直接基於 VSTT 來實現。只有少許 VSTT 沒法實現的狀況下,咱們纔會使用另外兩個技術來實現,並封裝在 DUIR 內部。

相關文章
相關標籤/搜索