1. 程式人生 > >自動化測試框架 | selenium+Python,怎樣從0開始搭建一個屬於自己專案的自動化測試框架

自動化測試框架 | selenium+Python,怎樣從0開始搭建一個屬於自己專案的自動化測試框架

這篇博文下面的文章是連結到我知乎專欄的,現啟用新知乎賬號馬蟻蛋」,對應的專欄「軟體測試精選,所有文章全部遷移至此賬號了,需要的請關注。

此篇文章是,如何從零搭建一個屬於自己專案的自動化測試框架(第一篇到第十一篇)文章的總錄。思考:我們需要一個什麼樣的框架既然要搭一個框架,我們首先得弄明白我們需要一個什麼樣的框架,這個框架要支援什麼功能?框架主要的作用就是幫助我們編寫更加簡單而且好維護的用例,讓我們把主要精力放在測試用例的設計上,那麼我們就需要把所有額外的東西抽象出來作為框架的部分。瞭解了這些,很容易就有了自己的測試框架思路設計,或者說有了測試框架的目錄結構。比如,日誌以及報告、日誌級別、URL、瀏覽器型別等基本配置、引數化、公共方法
現在我們很容易就把框架的結構搭建好了:接下來有一些選擇題要做了:Python 2 or 3? Selenium 2 or 3?Python 3的使用越來越多,而且3的unittest中帶有subTest,能夠通過子用例實現引數化。而用2的話需要unittest2或其他的庫來實現,所以我們這裡選用Python 3。Selenium 3剛釋出正式版不久,一些功能driver還沒來得及跟上,尤其是geckodriver,所以選擇Selenium 2(注意PY3的話要選擇SE2.53.1)。環境選擇其實影響不大,你也可以選擇你自己習慣的環境。配置檔案配置檔案我們有多種選擇:ini、yaml、xml、properties、txt、py等
鑑於我之前寫過一篇yaml的博文,我們這裡就用yaml吧。所以我們在config資料夾裡建立config.yml檔案,在utils裡建立一個config.py檔案讀取配置,內容暫且不管。現在可以簡單把測試框架勾畫一下第一篇:首先我們要把配置抽出來,用yaml檔案放配置。所以我們要在config層新增配置檔案config.yml,在utils層新增file_reader.py與config.py來管理。— 搭建配置(1)。第二篇:然後我們將python自帶的logging模組封裝了一下,從配置檔案讀取並設定固定的logger。在utils中建立了log.py。— 封裝日誌(2)。第三篇:然後封裝xlrd模組,讀取excel,實現用例的引數化。
— 引數化(3)。第四篇:然後是生成HTML測試報告,這個博主修改了網上原有的HTMLTestRunner,改為中文並美化,然後修改其支援PY3。你可以直接拿去用。— 測試報告(4)。第五篇:然後我們給框架添加了傳送郵件報告的能力。在utils中添加了mail.py。第六篇:然後我們將測試用例用Page-Object思想進行封裝,進一步劃分test層的子層。— 測試用例封裝(6)。第七篇:接下來為了介面測試封裝client類。在utils中添加了client.py。— 介面封裝(7)。第八篇:然後添加了一個簡單的自定義斷言,在utils中新增assertion.py,可用同樣的方法自行擴充套件。— 斷言(8)。第九篇:接下來我們為了抽取響應結果,用JMESPath封裝Extractor,在utils中新增extractor.py。— 抽取器(9)。第十篇:然後是生成器。為我們自動生成固定型別的測試資料。utils下建立了generator.py。— 資料生成器(10)。第十一篇:最後為了一些專案中的支援方法,如加密、簽名等,建立支援庫support.py。— 擴充套件方法(11)。整個流程下來我們一個簡單的框架就像模像樣了,在此基礎上可繼續完善,實際用在專案中也沒有什麼問題,再簡單結合Jenkins部署起來,定期或每次程式碼提交後可自動執行測試,直接把測試報告發送到專案成員手中,妥妥的!。所有的程式碼我都放到了公眾號,可以自己下載去學習。有什麼好的建議或者問題,可以留言討論。

作者:西邊人
公眾號請搜尋(軟體測試資源站)
關注後私信回覆 入群,加入自學社群聯盟。


西邊人細說測試,西邊人現更名馬蟻蛋,常年混跡在網際網路圈的測試開發一枚。爬蟲搬運網際網路資源,分享給自學愛好者。
公眾號:testpu 
簡書:@西邊人
微博:@ 西說測試
QQ群:330374464