【转】UIAutomation
UIAutomation
UIAutomation是微軟從Windows Vista開始推出的一套全新UI自動(dòng)化測(cè)試技術(shù), 簡(jiǎn)稱UIA。在最新的Windows SDK中,UIA和MSAA等其它支持UI自動(dòng)化技術(shù)的組件放在一起發(fā)布,叫做Windows Automation API。
和前面的介紹相比,我傾向于認(rèn)為UIA是一項(xiàng)自動(dòng)化測(cè)試“技術(shù)”,而MSAA和Win32 API只是實(shí)現(xiàn)自動(dòng)化測(cè)試的兩種“方法”。這里區(qū)分“技術(shù)”和 “方法”的原因是, 一項(xiàng)“技術(shù)”往往有獨(dú)立的模型,體貼的開發(fā)接口,用來(lái)專門解決某一類的問(wèn)題,同時(shí)允許不同的實(shí)現(xiàn)細(xì)節(jié)。UIA可以被看作“技術(shù)”,是因?yàn)椋?/p>
UIA定義了全新的、針對(duì)UI自動(dòng)化的接口和模式。 分別是支持對(duì)UI元素進(jìn)行遍歷和條件化查詢的TreeWalker/FindAll。定義了讀寫UI元素屬性的UIA Property, 包括Name、 ID、Type、ClassName、Location、 Visibility等等。定義了UI元素行為的UIA Pattern, 比如Select、Expand、Resize、 Check、Value等等。 還引入了UIA Event接口,可以讓測(cè)試程序在某些事件發(fā)生后得到通知,比如新窗口打開事件等。
以往的Win32和MSAA 設(shè)計(jì)出發(fā)點(diǎn)并不是為解決UI自動(dòng)化。Win32旨在提供的通用開發(fā)接口, MSAA旨在提供程序的多種訪問(wèn)方式。相反,UIA的設(shè)計(jì)目的,以及新引入的模式和接口都完全是針對(duì)UI自動(dòng)化測(cè)試的。
在后面的文章中我們會(huì)詳細(xì)分析UIA的內(nèi)部實(shí)現(xiàn)。可以看到,UIA這一套接口和模式,可以在不同平臺(tái),不同開發(fā)工具中實(shí)現(xiàn)和使用。其內(nèi)部實(shí)現(xiàn)方式也因地制宜, 前后的兼容性都照顧得很好。 同時(shí),UIA提供了托管的和非托管兩種API,這些都是Win32和MSAA無(wú)法比擬的。
下面一段簡(jiǎn)單的C#代碼演示了如何使用UIA測(cè)試Windows自帶計(jì)算器完成計(jì)算3+5-2的操作(下述代碼可能需要修改以適應(yīng)不同Windows版本的calc.exe程序。本代碼使用Visual Studio 2008針對(duì)Windows 2008 Server R2 English 編寫)
總結(jié)
以上是生活随笔為你收集整理的【转】UIAutomation的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 腾讯有国家股份吗
- 下一篇: Ant 下载、安装、使用、教程全面了解「