Python測試-pytest+allure生成測試報告

最近在用pytest做測試,用pytest-html生成的報告?zhèn)€人感覺不太美觀,看到有介紹allure的,相對于pytest-html來說比較好看(比較庸俗,一個看顏值的人),在使用之前都需要安裝相應(yīng)的環(huán)境,需要安裝的環(huán)境有

1、 pytest
2、allure-pytest
3、allure
4、java環(huán)境

當(dāng)然,Python環(huán)境是必備的,既然到這一步,name默認Python環(huán)境是已經(jīng)有了的。

1、安裝pytest

官方文檔:https://pypi.org/project/pytest/
選擇pytest的原因:http://blog.itpub.net/69942496/viewspace-2653306/
pytest是基于unittest衍生出來的新的測試框架,還有就是用起來比較簡單。符合我的需求。
直接使用如下命令即可

pip install pytest

2、安裝allure-pytest

官方文檔:https://pypi.org/project/allure-pytest/
我安裝是參考:https://blog.csdn.net/feishicheng/article/details/91970402
這篇博客寫得比較新,相對于其他博客,大多數(shù)推薦的都是用pytest-allure-adaptor,而這個不一樣。
allure-pytest是python的一個第三方庫。用于連接pytest和allure,使它們可以配合在一起使用。
allure-pytest基于pytest的原始執(zhí)行結(jié)果生成適用于allure的json格式結(jié)果。該json格式結(jié)果可以用于后續(xù)適用allure生成html結(jié)果。
直接使用如下命令安裝即可:

pip install allure-pytest

3、allure

官方安裝說明:https://docs.qameta.io/allure/#_installing_a_commandline
我的是在windows10上安裝的,直接使用命令安裝,allure的安裝需要用到scoop,所以首先要去安裝scoop,allure的安裝說明中有提到scoop的,點擊進去,按照scoop的安裝步驟安裝。
參考:https://scoop.sh/。
安裝scoop,在cmd或者powershell中輸入如下命令即可

Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')

然后就是按照allure的官方步驟來安裝allure,輸入如下命令即可:

scoop install allure

4、安裝java環(huán)境

去java官方下載一個jdk,安裝配置好就可以了。這個就不多說。
以上環(huán)境都安裝好以后就可以正常使用了
使用命令:

pytest.main(['-s', 'test_api.py', '--alluredir={}'.format(REPORT_DIR)])   # 生成json文件

在命令行中輸入如下命令生成html文件:

allure generate allure-results/  # 生成html文件

或者直接在腳本中運行,例如我的run.py腳本,用于執(zhí)行測試。

import sys
import pytest
import os

def main():
    # 執(zhí)行用例
    # --reruns:失敗重復(fù)執(zhí)行多少次
    args = ['--alluredir={}'.format('allure-results/')]  # 通過allure生成json  REPORT_DIR:測試結(jié)果數(shù)據(jù)所在目錄
    pytest.main(args)

    # 生成html allure generate 測試結(jié)果數(shù)據(jù)所在目錄 -o 測試報告保存的目錄 --clean
    os.system("allure generate report/ -o allure-reports/ --clean")


if __name__ == '__main__':
    main()

一個簡單的例子demo:
demo目錄:

demo -- 項目名稱
|-- test_t.py -- 測試文件
|-- run.py -- 測試文件啟動文件

test_t.py如下

import os

def test_t():
    print(os.system("pip list"))

run.py與即為上邊的run.py

import sys
import pytest
import os

def main():
    # 執(zhí)行用例
    # --reruns:失敗重復(fù)執(zhí)行多少次
    args = ['--alluredir={}'.format('allure-results/')]  # 通過allure生成json  REPORT_DIR:測試結(jié)果數(shù)據(jù)所在目錄
    pytest.main(args)

    # 生成html allure generate 測試結(jié)果數(shù)據(jù)所在目錄 -o 測試報告保存的目錄 --clean
    os.system("allure generate report/ -o allure-reports/ --clean")


if __name__ == '__main__':
    main()

寫好之后直接運行run.py即可。
運行完之后的目錄結(jié)構(gòu):

demo -- 項目名稱
|--allure-results/ -- 存放的是測試生成的結(jié)構(gòu)集,一堆json
|--allure-report/ -- 最終的測試報告index.html及其靜態(tài)文件等
|-- test_t.py -- 測試文件
|-- run.py -- 測試文件啟動文件

allure使用參考:https://testerhome.com/topics/15649
demo:https://github.com/Mr-chengjun/pytest-allure-demo

最后編輯于
?著作權(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ù)。

相關(guān)閱讀更多精彩內(nèi)容

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