Selenium自動化測試——巡檢腳本開發(下)

9、script

script目錄創建時選擇“Python Package”格式。測試引擎腳本存放路徑,如測試執行時驅動所有測試業務、測試用例的腳本文件module.py。

module.py包含測試集讀取函數read_testsuite、獲取驅動函數get_driver、測試用例讀取函數read_testcase、測試執行函數exec_script。

 

(1)read_testsuite

read_testsuite函數負責解析測試場景文件。os.path.abspath方法獲取當前腳本的執行路徑,以便於data目錄中的testsuite.xlsx測試場景文件。通過引用os.path方式,增強了腳本的可移植性。

 

測試腳本代碼用for irow in range(2, ws.max_row + 1)循環迭代讀取測試場景文件testsuite.xlsx中的每一行記錄,通過傳入的測試場景名稱,先判斷是否存在需測試的場景名稱,如果有則再用if testoperation=='do'判斷是否要獲取第三項中保存的場景文件名。

 

這裏關鍵字do代表的是執行,第二列的關鍵字可以根據將來的需要進一步拓展,設計更多的關鍵字。

read_testsuite代碼如下:

Selenium自動化測試——巡檢腳本開發(下)

 

(2)get_driver

根據測試場景文件確定調用何種瀏覽器,並啓動瀏覽器。

 

Selenium自動化測試——巡檢腳本開發(下)

(3)exec_script

exec_script(testpage,teststep,testaction,testdata)功能是接受testpage,teststep,testdata三個參數,分別代表主頁類(對象),頁面元素,頁面數據。

 

代碼首先判斷主頁類(testpage)屬於那個類,這些類是已經實現的page object類。testpage類中有一個是瀏覽器類,是Webdriver實現的。腳本分別實現了三個類的testpage判斷,分別是瀏覽器、登陸頁面類、主頁頁面類三個類。

 

1)瀏覽器

按照teststep判斷瀏覽器類型,根據參數設置,生成firefox、IE及chrome的對象實例,最後請求testdata變量保存的網頁鏈接。

 

2)登陸頁面類

執行teststep用戶名或密碼等動作,來執行頁面對象的操作,操作數據用傳入的testdata。

 

3)主頁頁面類

執行退出ECShop動作、查找頁面元素等涉及主頁面中相關元素的操作。

 

exec_script代碼如下:

 

 

(4)read_testcase

read_testcase(testcasefile)是解析testcase文件如login.xlsx,userregister.xlsx等,參數是測試用例文件路徑。

 

for irow in range(2, ws.max_row + 1)是從第二行開始遍歷,ws.max是獲得測試用例文件有測試腳本指令的行數,參數從2開始,是因爲第一行是標題,第二行開始纔是正式腳本。

 

Testpage,teststep,testdata分別保存了測試用例文件(userregister.xlsx,login.xlsx)中的page,step,data數據,它們代表了頁面類,元素對象,元素數據。然後作爲參數傳給exec_script函數。

 

read_testcase代碼如下:

Selenium自動化測試——巡檢腳本開發(下)

 

上述代碼並未包括模塊引入部分的代碼,完整module.py代碼請聯繫匯智妹領取。

 

10、tools

tools目錄創建時選擇“Directory”格式。存放瀏覽器驅動文件,一般可將firefox、ie及chrome的驅動文件放在此處,路徑與common目錄的瀏覽器啓動函數browserlauncher所定義的路徑相同。

 

通過絕對路徑調用驅動文件的代碼如下:

Selenium自動化測試——巡檢腳本開發(下)

 

對於firefox及chrome瀏覽器可採用類似的方式處理,但是直接引用絕對路徑的方法筆者感覺不穩定,建議最好的方法是將所需的瀏覽器驅動文件放在python的根目錄下,即根據《附錄五Selenium開發環境配置手冊》的方法操作。

 

11、run.py

集成Pyton語言unittest方法,從而便於測試場景的管理,run.py是ECShop工程腳本執行的入口。

 

此處將用戶註冊、用戶登陸測試場景統一設置在test_Ecshop函數中並調用執行,根據函數的返回值,判斷測試場景執行的成功與否,然後通過HTMLTestRunner方法,將測試結果以HTML格式輸出。

 

Selenium自動化測試——巡檢腳本開發(下)

通過上述步驟,ECShop自動化測試框架設計並開發完成。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章