大家都知道,針對UI的自動化技術一般要支持下列的東西:
1. 識別窗口
?? 能夠識別盡量多的窗口種類,支持盡量多的UI技術。比如Win32、WinForm、WPF以及WebPage(這個比較特殊,確切的說不能叫控件)的控件類型
2. 操作窗口
對標準類型的控件方法的支持,比如按下按鈕,在Listview中選擇Item等
3. 驗證結果
實質就是能夠拿到控件的狀態以及控件相關的信息
4. 錯誤恢復
這個其實屬于自動化測試框架的問題,能從錯誤的狀態恢復,并繼續執行。當然寫Testcaes的時候,也要保證Testcase的獨立性
5. 同步
同步在UI的自動化測試中最復雜的部分了,這個地方的工作決定了自動化腳本能否穩定的運行在在各種不同平臺,不同配置的測試機上
雖然測試工具有很多,比如WinRunner、QuickTest等,我比較熟悉的只是Silktest,所以我說的很多東西都會跟Silktest來比較
我們拋開各種各樣的工具本身,來看UI自動化的本質,它所用到的技術無非是下面三種:
1. Windows API
相關的API,FindWindow, EnumWindow,GetWindowRect, GetWindowText, SendMessage等
2. MSAA
MSAA是微軟針對視力有障礙的人所提供的一個基于COM的API接口,開發人員可以利用這個技術來開發類似屏幕放大,屏幕閱讀,以及語音控制等。現在很多自動化的工具除了利用window api以外,大部分也支持MSAA技術
相關Link:
http://msdn2.microsoft.com/en-us/library/ms971350.aspx
http://en.wikipedia.org/wiki/Microsoft_Active_Accessibility
3. UIAutomation
測試在各個軟件公司中的地位日趨上升,而且微軟自己在對測試的重視程度以及利用自動化測試方面也一直走在各個公司前面。隨著
WPF
技術的發布,以往的Window API以及MSAA技術,對WPF控件的操作能力急劇下降,甚至無法操作WPF控件,而微軟也為了增加對自動化測試的支持,發布了MSAA的升級版,并針對自動化測試進行了重新的設計,集成在.Net Framework3.0中發布,這個升級版就是UIAutomation的類庫。
相關鏈接:
http://en.wikipedia.org/wiki/Microsoft_UI_Automation
http://msdn2.microsoft.com/en-us/library/ms747327.aspx
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
