1. 程式人生 > >一個基於python+selenium的page-object自動化測試框架

一個基於python+selenium的page-object自動化測試框架

先上框架git連結:

https://gitee.com/yukarijiang/watcher#0-qzone-1-79223-d020d2d2a4e8d1a374a433f596ad1440

這個框架目前才剛剛起步,還有很多不完善和不適當的地方,但可以用於學習selenium以及小型的專案的自動化測試,同時也期望與對自動化測試感興趣的朋友深入交流。先上框架結構:

config/                                                  //配置資料夾

|——config.ini                                       //配置檔案

data/                                                     //存放資料的檔案

|——demo.xml                                     //xml資料

driver/                                                  //存放引擎檔案

log/                                                      //存放日誌檔案

|——2018-05-05/                                //日誌按天儲存

|————170031.txt                           //每次執行的日誌檔案

report/                                                //測試報告輸出檔案

|——excel/                                          //excel測試報告

|————2018-05-05/                       //測試報告按天儲存

|——————203211.xls                   //每次執行的測試報告

|——html/                                         //html測試報告

|——image/                                       //截圖

|————2018-05-05_203211/         //截圖按照每次測試儲存

src/                                                    //核心程式碼目錄

|——api/                                           //介面測試目錄(暫未開發)

|——gui/                                           //UI測試目錄

|————action/                              //行為

|————page/                                //頁面

|————story/                                //使用者故事

uit/                                                   //工具目錄

index.py                                           //入口檔案

       整個框架是按照使用者故事進行組織的,主要用於自動驗證按照使用者故事操作是否正確,不用於發現各型別錯誤。之所以如此設計,在於首先要檢測出錯誤需要編寫大量的測試程式碼進行判斷,其次維護成本也相當高,而筆者使用自動化測試的目的在於持續整合的過程中,保證主流程不出問題,即主要使用者故事能走得通。

       整個專案通過index.py單入口執行,即在專案目錄下:python index.py即可執行。index.py中包括了每次測試的配置,比如日誌、截圖、報告的輸出位置等。

        uit/檔案下為基礎工具模組。包括:config.py(讀取配置檔案)、log.py(輸出日誌)、report.py(輸出測試報告)等。

        page/ 基於page-object的思想,將每個頁面封裝成一個類,頁面的操作為類方法,本框架中page類中不處理資料,只進行dom的選擇與操作。

        action/ 檔案下的action類為行為類、行為類用於給page類的方法填充資料,組合page類的操作成一個行為,例如示例中通過baidu進入csdn這個行為,包括了在baidu頁面輸入csdn,點選搜尋的第一條連結進入csdn。

        story/ 資料夾下即為使用者故事類,每個使用者故事由多個action串聯而成。

        基於以上的結構,page類為基礎類,直接面向頁面dom,action類只能呼叫page類的方法對dom進行操作,story類只能呼叫action類的方法,將一系列行為組織成一個完整的使用者故事,其中story類中還包括了資料的還原,比如新增一個使用者,測試完畢則刪除這個使用者。index.py裡可配置多個story,對多個使用者故事進行批量測試。

        以上架構基於筆者對自動化測試不成熟的想法,若有不適當的地方,還請批評指正。