Selenium Web Driver自動化測試(java版)系列下半部分(32) - 用數據驅動搭建測試框架雛形(5) - 分離Page Objects,修改測試結果返回值

上篇我們給框架設計了一個配置文件,而且利用java反射機制優化了控制類,框架又進步了一些。這次我們可以再改幾個小地方。首先看LoginPage.java和EmpPage.java這兩個文件,它們都有getPageObjects()方法,里面有每個page object的獲取過程:

我們可以把這一步單獨拿出來,讓它根據object名稱來自動判斷需要用哪一個定位器,這樣就不用總想著到底需要是id還是name還是xpath了。先根據object的定位器修改一下object名稱,加上后綴"_定位器":

loginPage.properties:

empPage.properties:

接著就該寫判斷步驟了,在com.testalliance.hrsystem.pageobj中新建Objects.java,復制如下代碼:

這段代碼不難理解,接受兩個參數,一個是object名稱,另一個是object值,每個傳進來的object信息都會進行自動判斷。

接著修改LoginPage.java和EmpPage.java:

LoginPage.java:

其實就是把定位過程放進每一個小的操作方法中,我還把getObjects()加了個參數,這樣文件路徑就可以傳進來了。同理,EmpPage.java可以改成:

這樣,page object的獲取過程就被單獨提取出來了,我們不需要總想著到底應該用哪種定位器了。

第二個我想修改的是測試結果返回值。目前所有的測試類都是里面都用Result = "TEST PASS"作為測試結果,比如TCLogin1.java:

image

不說專業不專業,每次寫文字"TEST PASS"也容易出錯不是?我們可以在測試類里把它們用整型0或1代替,統一返回用字符串表示。當然,你也還可以繼續用布爾類型true和false,不過整型也是很多人常用的,我演示一下,以TCLogin1.java為例:

表示測試結果的result變量初始值為0,如果最后執行完畢是Pass則改成1。按照這個改變把另外幾個測試類也改一下,把結果返回給TestRunner.java處理:

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

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

推薦閱讀更多精彩內容