1、Allure安裝:
-
安裝JDK1.8+才可以運行Allure---------參照【https://www.cnblogs.com/luckyplj/p/11974643.html】
-
allure 的下載地址:https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/
-
解壓Allure壓縮包(D:\壓縮包,解壓到D:)
-
配置Allure到環境變量,到path里面,D:\allure-2.17.2\bin
選擇最新日期的版本下載即可,如下圖所示:
驗證是否安裝成功:Win+R,依次輸入:cmd--->allure --version,顯示版本號說明已安裝成功。
注:1、下載包放到pytest文件夾中,然后將allure/bin的路徑放到環境變量的path中
2、allure命令行工具,這個工具主要用來把測試用例的運行結果轉換成html格式
3、配置環境變量后,一定要重啟電腦。因為環境變量沒生效,我搞了半天在pycharm不能生成報告,在cmd中可以生成報告
2、Allure介紹
- allure測試報告是基於Pytest運行后,產生的Json文件,來實現的結果展示,以一個工程的形態展示文本。
安裝插件:pip install allure-pytest---->驗證:pip show allure-pytest,可看到版本相關信息即是安裝好了
3、代碼操作實現:
import os import pytest def test_case01(): assert 1 == 1 def test_case02(): assert 1 == 1 def test_case03(): assert 1 == 3 def test_case04(): assert 1 == 4 def test_case05(): assert 1 == 5
if __name__ == '__main__': pytest.main(['test_allure.py', '--alluredir', './result']) # ['--alluredir','./result']意思是在指定路徑下產生json文件 os.system('allure generate ./result/ -o ./report_allure --clean') # ./result/ -o ./report_allure生成的測試報告全部放在report_allure目錄下,--clean覆蓋上一次的報告
#可以在cmd中進入到此py目錄下執行此命令行
報告:
4、注意別踩坑
allure定制化想必大部分情況都會去選擇pip install pytest-allure-adaptor或是pip install allure 這個插件,安裝完成后,運行定制化代碼出現以下報錯:
(1)這種報錯pip install pytest-allure-adaptor,cmd中操作
1、pip uninstall pytest-allure-adaptor
2、pip install allure-pytest
(2)安裝pip install allure 后報錯
- 在Pycharm終端中輸入:pip list,有關allure的模塊全部卸載
pip unintall allure pip unintall allure-pytest 2.9.45 pip unintall allure-python-commons 2.9.45
5、裝飾的使用
Allure用例描述 | ||
使用方法 | 參數值 | 參數說明 |
@allure.epic() | epic描述 | 定義項目、當有多個項目是使用。往下是feature |
@allure.feature() | 模塊名稱 | 用例按照模塊區分,有多個模塊時給每個起名字 |
@allure.story() | 用例名稱 | 一個用例的描述 |
@allure.title(用例的標題) | 用例標題 | 一個用例標題 |
@allure.testcase() | 測試用例的連接地址 | 自動化用例對應的功能用例存放系統的地址 |
@allure.issue() | 缺陷地址 | 對應缺陷管理系統里邊的缺陷地址 |
@allure.description() | 用例描述 | 對測試用例的詳細描述 |
@allure.step() | 操作步驟 | 測試用例的操作步驟 |
@allure.severity() | 用例等級 | blocker 、critical 、normal 、minor 、trivial |
@allure.link() | 定義連接 | 用於定義一個需要在測試報告中展示的連接 |
@allure.attachment() | 附件 | 添加測試報告附件 |
import os import pytest import allure @allure.feature('feature測試需求001:用戶注冊') # 大需求 @allure.story('story測試場景001:微信用戶注冊') # 子需求 @allure.title('title測試用例001:通過微信正常注冊男用戶') # 自定義用例的名稱 def test_case01(): assert 1 == 1 @allure.feature('feature測試需求001:用戶注冊') @allure.story('story測試場景002:微信用戶注冊') @allure.title('title測試用例002:通過微信正常注冊女用戶') def test_case02(): assert 1 == 1 @allure.feature('feature測試需求001:用戶注冊') @allure.story('story測試場景003:微信用戶注冊校驗') @allure.title('title測試用例003:用戶名為空提交注冊') def test_case03(): assert 1 == 3 @allure.feature('feature測試需求001:用戶注冊') @allure.story('story測試場景003:微信用戶注冊校驗') @allure.title('title測試用例004:密碼為空提交注冊') def test_case04(): assert 1 == 4 @allure.feature('feature測試需求001:用戶注冊') @allure.story('story測試場景003:微信用戶注冊校驗') @allure.title('title測試用例005:用戶名存在特殊字符') def test_case05(): assert 1 == 5 @allure.feature('feature測試需求001:用戶注冊') @allure.story('story測試場景003:微信用戶注冊校驗') @allure.title('title測試用例005:用戶名超長提交用戶信息') def test_case06(): assert 1 == 6 if __name__ == '__main__': pytest.main(['test_allure.py', '--alluredir', './result']) os.system('allure generate ./result/ -o ./report_allure --clean')
報告:
@allure.feature
@allure.story('story測試場景003:微信用戶注冊校驗')
@allure.title('title測試用例005:用戶名超長提交用戶信息')
allure命令行詳解(1):https://www.cnblogs.com/guanqibuyu/p/16601348.html
allure命令行詳解(2)https://blog.csdn.net/qq_45562973/article/details/124909242