本片博文主要想說明:
1.如何在pycharm裏面,直接導出allure報告
2.使用命令行(linux命令)如何導出allure報告
3.我在這個過程遇到的問題
1.代碼demo
import allure
import pytest
import os
@allure.feature('【需求點】:數據類型不符合是否判斷')
@allure.story('【MSTD】')
@allure.severity('blocker')
def test_case_01():
"""
用例描述:這個是一個很長很長的用例描述01
"""
assert 0
@allure.feature('【需求點】:數據類型不符合是否判斷')
@allure.story('【AIVWAP】')
@allure.severity('critical')
def test_case_02():
"""
用例描述:這個是一個很長很長的用例描述02
"""
with allure.step("第一步:登錄"): # 將一個測試用例分成幾個步驟,將步驟打印到測試報告中,步驟2
allure.attach('alien', 'name') # attach可以打印一些附加信息
allure.attach('18', 'age')
allure.story("")
with allure.step("第二步:發送訂單"): # 將一個測試用例分成幾個步驟,將步驟打印到測試報告中,步驟3
pass
with allure.step("第三步:判斷結果"):
allure.attach('期望結果', '添加購物車成功')
assert 'success' == 'failed'
@allure.feature('【需求點】:登錄能否成功')
@allure.story('【常規登錄】')
@allure.severity('normal')
def test_case_03():
"""
用例描述:這個是一個很長很長的用例描述03
"""
assert 0
@allure.feature('【需求點】:登錄能否成功')
@allure.story('【異常登錄】')
@allure.severity('minor')
def test_case_04():
"""
用例描述:這個是一個很長很長的用例描述04
"""
assert 0 == 0
allure.dynamic.description("這個用例描述,將要替換如上的用例描述")
if __name__ == '__main__':
pytest.main(['-s', '-q','test_sort.py', '--alluredir', 'D:/MyProjects/FundJudgeTestReport/Raw_Files/'])
os.system("C:/Users/admin/Envs/AutoTestEnv/Lib/site-packages/allure-2.13.0/bin/allure.bat "
"generate "
"D:/MyProjects/FundJudgeTestReport/Raw_Files/ "
"-o "
"D:/MyProjects/FundJudgeTestReport/Report "
"--clean")
如上代碼中,os.system()部分,也可以使用如下代碼替換
os.system("allure "
"generate "
"Raw_Files "
"-o "
"Report "
"--clean")
如上代碼的具體含義,如果有不太清楚的,可參考:
https://www.cnblogs.com/xiaogongjin/p/11705134.html
2.pycharm目錄結構
- 展開之前
- 展開之後
3.遇到的幾個問題(還有個問題沒解決)
-
不要使用pytest框架運行如上代碼,否者只會執行所有測試用例,但沒有保存任何報告的數據到本地
-
直接Run-----> Run------>選在文件名運行即可
-
pytest.main()執行命令裏面,裏面是一個列表,包含不同命令字符串,後面地址是你要保存報告原始數據的地方
-
os.system()裏面,這個模擬的是linux命令行的寫法,每個語句之間需要換行,且每個語句後面需要有至少一個空格,空格,空格(沒有空格的效果是:alluregenerateRaw_Files-oReport–clean,鬼知道你寫的是什麼東西!)
-
如果使用os.system()替換方案的時候,你安裝的allure需要提前設置好環境變量,確保在linux的任意位置,輸入allure命令,都能使用
-
"–clean"命令,測試了很多次,都一直沒有清除掉原始的報告數據。有哪位仁兄知道原因,還請告知一二,謝謝!
4.使用linux命令導出報告
pytest ./ --alluredir Raw_Files
allure generate Raw_Files -o Report --clean