最近在用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