1. 程式人生 > >新手入門貼之基於 python 語言的介面自動化 demo 小實戰

新手入門貼之基於 python 語言的介面自動化 demo 小實戰

大家好,我是正在學習介面測試的菜鳥。近期通過自己的學習,完成了一個關於測試介面的介面自動化demo。下面想跟大家分享一下,主要的思路是根據介面文件確定測試用例,並將測試用例寫在excel中。因為只是小作demo,測試用例我沒有寫的很全,有興趣的大佬自己補充一下。下面先分享介面文件,以及寫在excel中的測試用例,這裡需要注意的是,測試用例一定要按照我這種格式寫,否則下面封裝的doExcel類將會無效。

   

現在測試文件和測試資料我們都有了,我們要明確我們要做到什麼?基於我目前所學,我最想做到的就是將測試資料與程式碼分離,執行程式碼產生的log會被記錄下來,測試完成之後生成測試報告,然後將測試報告以及log甚至將excel更新測試結果郵件傳送給相關測試人員。基於這個目的,主要引用的模組有unittest, ddt, openpyxl, logging, HTMLTestRunner, email, smtplib以及requests。unittest是單元測試框架,ddt可以做到減少相同測試步驟的冗餘程式碼,openpyxl模組可以從excel或者csv文件裡面讀寫資料,logging模組可以記錄日誌,HTMLTestRunner可以生成測試報告, email和smtplib模組可以做到傳送郵件,request模組則是做介面測試的必須。好,現在我們來理清一下思路。1. 測試用例有了,我們根據介面文件在程式碼中實現測試用例的程式碼化。2. 程式碼化的時候,發現測試步驟高度一直,可以使用ddt 模組來減少冗餘程式碼。3. 光使用ddt模組,發現測試資料很多的情況下,把資料寫在程式碼裡還是很亂,於是考慮將測試用例excel檔案的測試資料直接取出來,這就需要使用openpyxl模組了。4. 雖然這樣做程式碼執行了,但是如果遇到程式碼錯誤的情況下,錯誤不好定位,執行步驟也不能人機友好的視覺化,考慮到這一點,引入logging模組,在程式的各個步驟加上log。5. 現在log有了,執行完畢卻沒有個結果總結那可不行,咱們引入HTMLTestRunner模組來生成測試報告。6. 到這一步其實已經差不多了,但是既然測試報告以及log都有了,那執行完畢向相關測試人員傳送這個測試報告以及log豈不是更完美嗎?於是乎,引入email以及smtplib模組,來解決這個問題。既然思路已經有了,剩下來的就是動手實操了。我實操完畢的程式碼如下gif圖所示。部分程式碼參考檸檬班python介面自動化的書,相對書上程式碼我有做出了改動並基於自己理解加以改進。

 

程式碼挺多,就不在社群裡發出來了,程式碼百度雲連結:https://pan.baidu.com/s/1QS7SsA2ntmCB0_RZkmRGqQ 提取碼:8e0e(有效期7天)。 在各個模組中都有坑需要各位大佬去自己踩,踩完之後再填坑收穫會更多。時間太晚,寫得比較倉促,大佬們輕噴。