一、UIAutomation是什麼
UIAutomation是一個自動化測試工具,最初由微軟公司在2005年發布。它能夠對桌面和Windows Store應用進行UI自動化測試。開發人員可以使用UIAutomation來模擬滑鼠、鍵盤操作,讀取和編輯窗口中的內容,以及與應用程序中的控制項進行交互。UIAutomation是一種實現無需訪問應用程序源代碼或二進位代碼的用例編寫工具。
二、UIAutomation的優缺點
優點
1.自動測試:UIAutomation優秀的自動化測試功能,為測試人員提供了很大的幫助。可以幫助測試人員快速執行複雜的UI測試並檢測出潛在的缺陷。
2.跨應用程序:UIAutomation功能強大,在跨應用程序方面表現出色,可以支持的應用程序類型非常多。測試人員只需要編寫一次測試腳本,然後可以在多個應用程序之間共享腳本。
3.簡單易用:UIAutomation易於使用,可以輕鬆定位並操作各種UI元素。可以幫助開發人員快速編寫測試腳本,並在測試和開發過程中提供快速反饋。
缺點
1.UIAutomation需要配置與應用程序交互的元素和對象的各種屬性。條件是這些元素和對象必須是公共可訪問的。如果開發者沒有設置這些屬性,測試人員就無法測試應用程序。
2.UIAutomation的測試結果不可靠。有時測試人員會發現測試結果不穩定、容易出錯。這可能是由於測試程序與應用程序之間的通信不穩定、UIAutomation的版本過舊等原因造成的。
3.UIAutomation不支持Android和IOS平台,也不支持Web應用程序。
三、為什麼UIAutomation被放棄
1.Microsoft Touch-centric操作系統發布
自Windows 8開始,Microsoft逐漸推出Touch-centric操作系統,並開始強調應用程序的「輕便和現代感」,並且Windows應用商店也越來越豐富。為了解決這些更改和需求,Microsoft提出了一種新的UI自動化框架,稱為WinAppDriver。WinAppDriver是一個用於自動化Windows應用程序的開源UI自動化框架,支持多種編程語言和測試框架。這樣一來,UIAutomation的地位變得不再那麼重要。
2.UIA3的發布
UIA3是UIAutomation的最新版本,它實現了對Microsoft WPF和Windows Forms的支持,以及對Windows 10 Universal app的改進。UIA3具有更高的性能和更好的穩定性,相比之下,UIAutomation的性能與穩定性都要遜色一些。由於Microsoft已經關閉了UIAutomation的開發和支持,將更多精力放在了UIA3和WinAppDriver上,所以UIAutomation失去了它曾經的地位。
3.UIAutomation的局限性
除了在Microsoft Touch-centric操作系統和UIA3的發布方面,UIAutomation面臨的另一個問題是它的局限性。雖然UIAutomation可以支持多種類型的應用程序,但它無法支持Web應用程序和Android/iOS平台應用程序。這導致測試人員不得不尋找其他UI自動化測試工具。
四、WinAppDriver與UIA3的示例代碼
//WinAppDriver DesiredCapabilities appCapabilities = new DesiredCapabilities(); appCapabilities.SetCapability("app", "Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge"); WindowsDriver session = new WindowsDriver(new Uri("http://127.0.0.1:4723"), appCapabilities); session.FindElementByName("Address and search bar").SendKeys("http://www.google.com" + Keys.Enter);
//UIA3 var desktop = AutomationElement.RootElement; Condition condition = new PropertyCondition(AutomationElement.NameProperty, "Notepad"); var notepad = desktop.FindFirst(TreeScope.Children, condition); var mainWindow = notepad.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Window)); var menu = mainWindow.FindFirst(TreeScope.Descendants, new PropertyCondition(AutomationElement.NameProperty, "File")); var expandCollapsePattern = (ExpandCollapsePattern)menu.GetCurrentPattern(ExpandCollapsePattern.Pattern); expandCollapsePattern.Expand();
五、總結
UIAutomation被放棄,WinAppDriver和UIA3逐漸替代了UIAutomation在自動化測試中的地位。WinAppDriver是一個用於自動化Windows應用程序的開源UI自動化框架。而UIA3實現了對Microsoft WPF和Windows Forms的支持,以及對Windows 10 Universal app的改進。雖然UIAutomation的自動化測試功能優秀,但也有一些缺點和局限性。Microsoft已經關閉了UIAutomation的開發和支持,將更多精力放在了UIA3和WinAppDriver上。
原創文章,作者:LFONB,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/349288.html