Python(自動化測試allure生成報告)
阿新 • • 發佈:2022-05-09
今天簡單總結一下最近在專案中使用allure生成報告時的一些經驗。
allure是我們在做介面自動化測試時所使用的一種產生報表的外掛。首先要注意的是,由於他和pytest是繫結的。如果我們在生成時,檔名沒有寫成‘test_’開頭或‘_test’結尾,那麼我們在啟動allure報告時就會報錯。這點要注意。
首先安裝:我們可以起官網下載allure。隨便解壓一個地方之後,我們需要將bin目錄新增到環境變數中,這樣我們才可以在終端使用allure命令
新增好後在cmd輸入:pip install allure-pytest安裝
安裝好後可以通過:allure --version檢視版本號
那麼全部完成後我們在python中的使用就是import allure匯入allure包,allure的使用主要是通過裝飾器,標註用例的名稱,級別,步驟等。我們來看幾個具體的程式碼:
在程式碼中是:
import pytest from KeJie.api.kjgoodspostApi import KEJIEPOST from KeJie.com.readCsv import READCSV import allure # 將csv檔案中的測試資料匯入 para = READCSV().readAll(start=1, end=5) # 將全欄位測試csv文件資料匯入 paraall = READCSV(file='alltestdata.csv').readAll(start=1, end=14) # 將庫存測試csv文件資料匯入 paraamount = READCSV(file='amount_test_data.csv').readAll(start=1, end=1) # 將修改測試csv文件資料匯入 paraupdate = READCSV(file='update_goods_data.csv').readAll(start=1, end=6) # 必填測試 @pytest.mark.parametrize("outdety, number, code,price, ftax,unit,msg_code,desc", para) @allure.epic("KEJIE倉中倉") @allure.feature("必填測試") @allure.story("測試必填項") @allure.step("必填項場景測試py") @allure.severity("NORMAL") def test_good_01(outdety, number, code, price, ftax, unit, msg_code, desc): kj = KEJIEPOST() res = kj.goodPost(outdety, number, code, price, ftax, unit) msg = res.json()['code'] print(msg) print(msg_code) print(desc) # 斷言,當報錯碼等於10201時才正確 assert str(msg) == msg_code
完成後我們在終端輸入:
pytest --alluredir ./report/allure_result生成報告資料
隨後我們使用allure serve啟動我們的allure報告,它的原理和前端一樣,只不過我們前端使用npm run serve啟動或者yarn serve
啟動後我們就可以看到一份完整的報告啦!