Pytest + Allure 實現(xiàn)高大上的測試報告

Pytest 是 Python 第三方的測試庫。提供了比 unittest 更強大更靈活的測試機制。同時有眾多的插件可以實現(xiàn)更多測試場景。

對于 Pytest 的使用不展開來談,以后會寫關(guān)于 Pytest 庫的使用教程。這里主要展示通過 pytest 和 allure 結(jié)合實現(xiàn)漂亮的測試報告。

一份酷炫的報告,有助于提升自動化測試逼格。

先來看看效果:


allure 報告

但是這玩意用起來比較麻煩,在使用過程中有很多的坑。

首先如果你沒有安裝 pytest 庫的話,先使用 pip 安裝一下:

pip install pytest

另外還需要安裝 pytest 支持 allure 報告的插件庫:

pip install allure-pytest

接下來在運行測試時,使用 pytest 命令運行:

pytest <測試目錄> --alluredir <測試結(jié)果存放目錄>

比如,我的文件夾目錄如下


文件目錄

那么這個命令就應(yīng)該寫為:

pytest tests --alluredir report/allure_raw
  • tests 為測試用例存放目錄,告訴 pytest 應(yīng)該去哪里找用例;
  • report 是存放測試報告的,allure 收集 pytest 運行后產(chǎn)出的結(jié)果放在 allure_raw 文件夾中。

注意:這里的 allure_raw 文件夾只存放的是測試運行結(jié)果,還不是報告!報告還需要調(diào)用 allure 命令去生成。

結(jié)果是像這樣的:


allure測試結(jié)果

還是一堆 txt 和 json 文件。

我們要生成漂亮的報告還需要一步,從 allure 官網(wǎng)上下載最新的 allure 。下載后是一個 zip 文件,把該文件解壓后放到我們目錄中的 lib 文件夾中。

可以把解壓后的 bin 目錄添加到環(huán)境變量的 PATH 中,可以直接使用 allure 命令

allure

allure 是由 allure 官方提供的命令行工具,用來將測試結(jié)果生成測試報告,啟動一個服務(wù)查看報告等等。是一個必須的命令行工具。

在生成報告前,你可以使用命令先預(yù)覽報告的內(nèi)容:

allure serve report/allure_raw

接下來我們就繼續(xù)使用 allure 密令來生成測試報告。

命令如下:

lib\allure-2.12.1\bin> allure generate <allure測試結(jié)果目錄> -o <存放報告的目錄> --clean
  • allure測試結(jié)果目錄,是上面運行 pytest 命令后存放結(jié)果的地方,我們這里的目錄是 report 下的 allure_raw 文件夾;
  • 存放報告的目錄,是最終生成的測試報告存放的目錄,我打算把生成出的報告放在 report 下的 allure_report文件夾中;
  • --clean參數(shù)用來清空已有的報告,避免覆蓋時出錯。

以我們的例子來生成報告的命令如下:

lib\allure-2.12.1\bin> allure generate report/allure_raw -o report/allure_report --clean

通過上面的命令運行后,就會從 allure_raw 目錄中將 pytest 運行的結(jié)果生成一個漂亮的報告,存放在 allure_report 中。

allure 報告

然后在 pycharm 中可以通過右鍵選擇index.html就可以看到報告了。

右鍵瀏覽器打開

如果你不是用 Pycharm 的話,可以通過 allure 命令生成服務(wù),然后查看。

>allure  open /report/allure_report

運行后會啟動一個 web 服務(wù),用于展示報告:


啟動一個服務(wù)來展示報告

實際跑自動化用例的時候呢,可以和 Jenkins 結(jié)合后在 Jenkins 中查看報告。

當然上面的命令很雜,我封裝了一個函數(shù),把 pytest 常用的幾個插件的用法都加進去了。

  • pytest-xdist 多并發(fā)運行,保證測試用例的運行效率。 參數(shù)為 -n 并發(fā)數(shù),如果并發(fā)數(shù)為 auto,表示自動根據(jù)當前機器的 CPU 內(nèi)核數(shù)量確定并發(fā)數(shù);
  • pytest-rerunfailures 測試用例出錯后,自動重試。在實際測試過程中,很多時候用例失敗可能是因為網(wǎng)絡(luò)問題,臨時的環(huán)境問題,而并非真正的 Bug。為了減少(注意是減少不是避免)這種烏龍情況的發(fā)生,可以多運行幾次用例。參數(shù)為--reruns 重試次數(shù)。

需要安裝上述兩個庫

pip install pytest-xdist
pip install pytest-rerunfailures

點擊這里下載示例代碼

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容