自動化測試實戰項目的重構說明
- 2019 年 10 月 3 日
- 筆記
前言
最近好多人和我反應我GitHub上的項目實戰程式碼都運行不了,我簡單的看了一下幾個人的錯誤資訊,多數是因為開發環境,126郵箱升級或者程式碼本身的問題導致的,正好趕上周末,花費了2天的時間把能運行的幾個項目簡單的重新寫了一下,這裡主要是126郵箱的項目, 其他的幾個包括介面和其他Ui測試的項目我實在是不能提供資料庫資訊和被測網站的帳號資訊給你們使用,因此是無法運行的,這裡說聲抱歉,但是程式碼我還是開放在GitHub上的,雖然無法運行,但是也具有一定的學習價值,接下來說說能運行的幾個項目我改了什麼,以便想學習的同學能夠順利的運行程式碼。
關鍵字驅動測試實戰
GItHub地址
https://github.com/13691579846/KeyWordDriverTestFrameWork
部落格地址
https://www.cnblogs.com/linuxchao/p/linux-python-selenium-keywordFW.html
修改內容
. 修改了整個項目的程式碼命名規範及程式碼編寫規範,使其更加符合PEP8
. 修改了登錄功能的測試步驟,由於126郵箱升級,登錄頁面添加了是選擇掃碼登錄還是帳號密碼登錄,因此用例添加了選擇帳號密碼登錄這一步驟
. 新添加了部分用例及修改了有時用例被標記為N或者Y時程式碼報錯的問題
. 放棄了使用模擬鍵盤結合剪切版實現上傳文件的方式(不穩定),改用了selenium提供的send_keys方法(之前沒注意,今天改的時候才發現可以直接send_keys)
. 關鍵字數據驅動測試可以應用到RobotFrame框架中,所以學習本項目對於學習RF也比較有用,當然讓這個項目的主要目的還是為了理解關鍵字驅動的概念
數據驅動測試實戰
GitHub地址
https://github.com/13691579846/DataDriverTestFrameWork
部落格地址
https://www.cnblogs.com/linuxchao/p/linuxchao-datadrivertestframework.html
修改內容
. 修改了整個項目的程式碼命名規範及程式碼編寫規範,使其更加符合PEP8
. 修改了登錄功能的測試步驟,由於126郵箱升級,登錄頁面添加了是選擇掃碼登錄還是帳號密碼登錄,因此用例添加了選擇帳號密碼登錄這一步驟
. 重構了部分目錄結構,添加了base.py文件,使其項目比較符合PageObject的設計模式
. 重構了用例的執行邏輯,使其不只能夠單向運行,可以選擇哪些用例執行哪些用例不執行
. 添加了失敗用例截圖的功能
. 本項目主要了解數據驅動的思想,對學習unittest等測試框架的數據驅動有一定幫助
Pytest框架測試實戰
GitHub地址
https://github.com/13691579846/PytestAutoTestFrameWork
部落格地址
https://www.cnblogs.com/linuxchao/p/linuxchao-pytest-Actual.html
修改內容
. 修改了整個項目的程式碼命名規範及程式碼編寫規範,使其更加符合PEP8
. 修改了登錄功能的測試步驟,由於126郵箱升級,登錄頁面添加了是選擇掃碼登錄還是帳號密碼登錄,因此用例添加了選擇帳號密碼登錄這一步驟
. 對所有用例進行了拆分,取消了使用嵌套if來判斷執行結果時選擇使用哪個斷言方法,根據系統對輸入不同數據時給出的提示資訊不同,對測試數據進行了分組,也對用例進行了 分組,使其邏輯性及用例的可讀性更強
. 放棄了使用模擬鍵盤結合剪切版實現上傳文件的方式(不穩定),改用了selenium提供的send_keys方法(之前沒注意,今天改的時候才發現可以直接send_keys)
. 添加了失敗重跑的機制,主要通過pytest-rerunfailures插件並添加命令行選擇的方式實現
. 修改了測試用例目錄下的conftest.py文件,把執行用例前後的條件分開管理,使邏輯更加清晰
. 刪除了pytest-html生成測試報告時,報告中存在無用的link列
. 放棄了由excel管理測試數據,改為指定的py文件來管理數據,主要為了操作簡單.
. Pytest框架實現的這個項目相對前兩個項目,更加靈活,更加全面,難度也比較大,希望對想學習pytest測試框架的你有一定的幫助
unittest框架測試實戰
GitHub地址
https://github.com/13691579846/Petrochina_Retail_Test_Project
部落格地址
https://www.cnblogs.com/linuxchao/p/linuxchao-python-selenium-demo.html
這個項目沒有做任何修改, 因為項目本身有網路的限制,所以改不改也沒什麼必要,大家用來作為參考就好了
總結
. 以上4個項目僅供學習使用,項目中使用的126郵箱帳號是我自己本人的,所以大家盡量不要使用我的帳號來測試,改成自己的帳號
. 所有的項目均有改進的空間,大家可以在了解了項目的基礎上自己動手修改不足的程式碼,或者根據自己的想法重構整個程式碼
. 能夠執行的3個項目我都添加了環境管理文件requirements.txt,如果你clone了本項目,只要在項目目錄下執行 pip install -r requirements.txt 命令即可自動安裝本項目使用的所有第三方依賴庫-注意:最好是為項目新鍵一個空白的虛擬環境,在虛擬環境下安裝項目使用的庫,避免本地環境和項目環境衝突,導致無法成功運行
. 提示:126郵箱本身如果頻繁的登錄和發送郵件時,都會有驗證碼驗證,即使你程式碼中清理的cookies也是,所以給自動化帶來了很多麻煩,因此盡量保證項目中有限的測試數據即可,對於學習來說也足夠了
. 最後,希望成功的路上有我的影子! 歡迎加群大家一起學習討論:QQ878565760