allure使用基礎---pycharm+allure+pytest導出報告

本片博文主要想說明:
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

5.最終看到的效果圖:

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章