1. 程式人生 > >自動化測試實戰專案的重構說明

自動化測試實戰專案的重構說明

前言

最近好多人和我反應我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也是,所以給自動化帶來了很多麻煩,因此儘量保證專案中有限的測試資料即可,對於學習來說也足夠了

. 最後,希望成功的路上有我的影子!  歡迎加群大家一起學習討論:QQ87856