UI自動化開發的一些技巧 - .NET部分


一般來說,UI自動化測試開發過程中,嘗試不同的方法去找界面上的控件是一個比較費時的事情,這是因為有些界面需要前期操作很多步驟才能到達目的界面查看控件樹結構,如果一不小心把控件樹結構理解錯了,導致控件查找失敗,就又得從頭再來,這里介紹幾個技巧,希望對網友有些幫助。

使用Visual Studio的立即窗口嘗試新的函數

Visual Studio里面的立即窗口,允許我們直接調用任意的public的.NET函數,不論是靜態函數還是實例函數,都可以被調用到。比如我們新建了一個.NET類庫工程,在里面添加了如下代碼,里面有一個函數Send,它需要一個參數url。在調試這個函數時,我並沒有像通常那樣通過寫一個main函數來調用這個函數來達到測試它的目的,而是在立即窗口里直接構造了一個Mailbox對象,再通過傳遞一個特定的url調用Send函數來達到測試目的。從下面的截圖里還可以看到,我們甚至可以在里面設置斷點,中斷函數的調用並查看其局部變量的值。

image

在立即窗口里,可以跟寫普通C#程序一樣,可以定義一個新的變量,這個新變量就跟是在函數的局部變量一樣,可以將它作為參數傳遞給其他函數,也可以與其他變量之間相互操作。例如,上圖里即時窗口的代碼,也可以寫成下面這樣:

Runner.Mailbox.Mailbox mb = new Runner.Mailbox.Mailbox();

mb.Send(“http://www.vowei.com”);

使用Visual Studio的即時編輯調試功能即時修改代碼

在調試UI自動化測試程序時,最麻煩的就莫過於測試代碼的Bug出現在測試流程的中間,需要操作完好幾個界面后才能復現,萬一一個不小心誤操作了,又要重頭運行測試用例,費時費力。Visual Studio提供的運行時代碼編輯功能,可以讓我們省很多力氣。比如下圖,當我們單步跟蹤測試代碼時,發現高亮那一行的selenium代碼的CSS選擇器寫錯了,其實不用重新來過,只需要直接在代碼里將選擇器替換成一個正確的,再按F10,Visual Studio會自動重新編譯修改過的那個函數的代碼,並在內存里將函數替換成新的代碼並恢復執行。

image

設置下一行語句

如果在測試的時候,發現有些界面,因為自動化代碼執行速度太快了,導致界面還沒有顯示,自動化代碼就在試圖操作這個還不存在的界面出現了異常,我們可以在捕捉異常的catch塊上設置一個斷點,在斷點觸發時,使用Visual Studio的設置下一行語句的功能,將測試用例從我們想要開始的地方重新執行代碼。如下圖,我右鍵單擊高亮那一行下面的第三行,選擇“設置下一語句”功能,跳過高亮的那一行和下面的一行,恢復代碼執行:

image

需要注意的是,設置下一行語句這個功能只能在當前程序中斷的函數上使用,可以向前也可以向后,但是不能跳出函數的范圍。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM