UIA(2)-使用UIA實(shí)現(xiàn)自動(dòng)化

概述

UIA框架提供了一種統(tǒng)一的對象模型,使得我們不管使用哪種UI框架編寫出復(fù)雜功能的界面,都很容易訪問控件和做界面自動(dòng)化。

UIA是作為Microsoft Active Accessibility的繼承者開發(fā)的。MAA是一個(gè)現(xiàn)有的框架,旨在提供一種使得控制和應(yīng)用程序易訪問的通用解決方案。MAA并非是為了做自動(dòng)化而生,即使最后由于各種原因它發(fā)展成為了一種自動(dòng)化方案。而UIA除了提供更完善的可訪問性解決方案外,還專門為自動(dòng)化測試提供強(qiáng)大的功能。 例如,MAA中,對外暴露UI信息和收集AT products使用同一個(gè)接口,而UIA將這兩者分離為兩種模型。

UIA能成為如此有用的自動(dòng)化測試工具,其中的provider和client都是比不可少的角色。UIA provides可以理解為被測試的應(yīng)用程序(如EXCEL,WORD以及其他的第三方應(yīng)用或者基于WINDOWS系統(tǒng)開發(fā)的控件)。UIA clients可以理解為我們用去測試應(yīng)用程序的自動(dòng)化腳本或者基于provider開發(fā)的輔助程序(如讀屏軟件)。

UIA之provider

為了使得UI能夠被自動(dòng)化,應(yīng)用程序或者控件的開發(fā)者需要考慮終端用戶使用鼠標(biāo)鍵盤等標(biāo)準(zhǔn)輸入能夠?qū)丶M(jìn)行的操作。

一旦這些關(guān)鍵的動(dòng)作被定義了,就應(yīng)該在這個(gè)控件上實(shí)現(xiàn)對應(yīng)的UIA控件模型(就是說控件模型映射了UI元素的功能和行為)。UIA的控件模型(control patterns)抽象出了常用控件的行為,對用戶隱藏了不同控件的差異性。

如前面提到的,如果沒有UIA提供的統(tǒng)一的模型,開發(fā)者或者測試工具需要了解每一種框架的細(xì)節(jié),以達(dá)到準(zhǔn)確的對外暴露出該框架下控件的屬性和行為(不同框架下實(shí)現(xiàn)的同一類控件對外暴露的屬性可能是不一樣的)。因?yàn)樵趙indows操作系統(tǒng)上,任何時(shí)候都是各種UI框架共存(如win32/winform/wpf),所以在沒有UIA模型之前,測試幾種看起來由類似控件實(shí)現(xiàn)的應(yīng)用程序是一項(xiàng)非常艱巨的任務(wù)(因?yàn)樗麄兪褂玫目蚣芸赡懿煌瑴y試代碼無法復(fù)用,需要各自獨(dú)立維護(hù))。下面示例說明:

UIA provider就是負(fù)責(zé)將各種不同框架的屬性映射為對應(yīng)的UIA的屬性。對用戶來說屏蔽了這種差異性。

UIA之client

錄制回放方式的劣勢

在做UI自動(dòng)化測試時(shí),我們的一個(gè)理想目標(biāo)是測試工具或者測試場景能夠連貫(穩(wěn)定)、可重復(fù)執(zhí)行。我們可以通過對控件操作進(jìn)行錄制回放來實(shí)現(xiàn)。

UI自動(dòng)化測試的一個(gè)難點(diǎn)就是靜態(tài)的測試腳本如何能夠同步操作動(dòng)態(tài)變化的控件。例如,列表框控件(例如Windows任務(wù)管理器中包含的控件),其顯示當(dāng)前運(yùn)行的應(yīng)用程序的列表。因?yàn)槿蝿?wù)管理器列表里面的每一項(xiàng)都是一直動(dòng)態(tài)變化的,所以通過來對某一個(gè)特定區(qū)域來進(jìn)行錄制回放實(shí)現(xiàn)腳本的重復(fù)性是不可行的。

UIA的優(yōu)勢

UIA以程序化訪問的方式來連接自動(dòng)化腳本和被測試應(yīng)用程序,它能夠讓我們通過代碼來模擬鼠標(biāo)和鍵盤等外設(shè)的操作,來與被測試程序進(jìn)行交互。UIA通過抽象出下面5部分,為我們提供程序化訪問。

1、UIA Tree

2、UIA Control Types

3、UIA Properties

4、UIA Control Pattern

5、UIA Events

使用UIA編寫自動(dòng)化測試程序的步驟(C#)


C#編寫自動(dòng)化腳本的步驟
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,366評(píng)論 25 708
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,715評(píng)論 19 139
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,829評(píng)論 4 61
  • 年近弱冠,涉世未深。初來乍到,請多指教。 下載了這個(gè)程式,本打算僅作為閱讀程式使用,但果然還是會(huì)手癢。事實(shí)證明人不...
    Arthur_Law閱讀 262評(píng)論 0 0
  • 怎么說呢,明明有很多我卻不知道從哪里開始說,其實(shí)吧,高一以前之前我都是所謂的好孩子,可是啊上了高中之后真的感覺厭煩...
    傻小肆閱讀 291評(píng)論 0 0

友情鏈接更多精彩內(nèi)容