Selenium Web Driver自動化測試(java版)系列下半部分(33) - 用數據驅動搭建測試框架雛形(6) - 異常處理,添加截圖操作

上篇我們給框架又做了幾個小修改,最后的TestRunner.java是這個樣子:

注意,現在TestRunner.java里面還有bug,舉個例子,程序進入try語句后如果在執行測試方法時拋出了異常,dm.cleanUp()還能執行到嗎?就執行不到了。或許執行結果都無法被打印出來,所以我們還要繼續修改。

介紹java的時候我們說到try...catch語句說我們還可以最后加一個finally,而且絕大多數情況下即使拋出了異常,finally塊里的代碼還是會被執行的。所以,我把打印測試結果和測試掃尾步驟放進去:

這樣不管怎么樣都會有測試結果。既然在這兒用了try...catch,我們就可以把其它測試類中的try...catch去掉,在方法名旁邊拋出,這樣所有的異常都會交給總控制類TestRunner.java來處理。以TCEmp1.java為例:

修改完成,你可以故意寫錯一些代碼然后執行一下,看是不是異常被成功捕獲。

下一步我想在拋異常的地方添加一個截圖操作,忘記怎樣操作截圖的朋友可以再看前面文章復習一遍。和讀取模塊一樣,截圖屬于功能性操作,我把它放在Utility.java里:

截出圖片的名稱會以“頁面名稱_時間.jpg”的格式出現。現在問題來了,應該在哪兒調用?是不是應該在catch里面呀?因為catch塊被執行就意味著拋出了異常,所以我們把它加在TestRunner.java的catch塊里:

故意改錯一段代碼讓它拋個異常,可以看到截圖生成在指定的文件夾,我就不截圖了。

最后一個改動隨你選擇。有些人出于java封裝概念的考慮,覺得是不是應該把從配置文件里讀出來的瀏覽器、driver和路徑都封裝起來呀?不然總怕被隨意訪問。沒問題,這三者屬于環境信息,我們可以在com.testalliance.hrsystem.managers中新建一個類叫EnvManager.java:

然后寫get/set過程,不多說,介紹封裝的時候都說過:

最后修改DriverManager.java:

再運行一下,測試通過。

到此為止我就不再改了,經過這幾篇文章對框架的修改,我們已經順著數據驅動的思路搭建了一個簡單的測試框架,其實還是個雛形。下一篇我們再總結一下我們這個雛形框架的組成。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容