使用pytest結合Allure進行測試報告生成的簡單教程
allure測試報告
Allure基于Java開發,因此我們需要提前安裝Java 8或以上版本的環境。
◆安裝allure-pytest插件在DOS窗口輸入命令“pip3 install allure-pytest”,然后按“Enter”鍵。
下載安裝Allure:你可以從GitHub下載安裝文件“allure2-2.13.3.zip”,解壓后,將bin目錄配置到環境變量中,然后在DOS窗口中輸入“allure”,并按“Enter”鍵,如果顯示“Usage”的話,說明設置成功。
使用如下命令執行:pytest.main(["-m","login","-s","-q","--alluredir=./report"])。
●“-m”:標記用例。
●“login”:被標記需要執行用例。
●“-s”:允許終端在測試執行時輸出某些結果,例如你想輸入print的內容,可以加上“-s”。
●“-q”:簡化輸出結果。
●“--alluredir”:生成Allure指定語法。
●“./report”:生成報告的目錄。
●“--clean-alluredir”:因為這個插件庫allure-pytest生成了報告文件,你第二次執行時不會清理掉里面的東西,所以你需要刪除這個report文件夾,然后執行重新新建report文件夾命令。說明:命令執行后,程序會在report文件夾里面生成文件。?
定制報告
●feature:標注主要功能模塊。
●story:標注features功能模塊下的分支功能。
●severity:標注測試用例的重要級別。
blocker級別:致命缺陷。critical級別:嚴重缺陷。normal級別:一般缺陷,默認為這個級別。minor級別:次要缺陷。trivial級別:輕微缺陷。
●step:標注測試用例的重要步驟。
●attach:用于向測試報告中輸入一些附加的信息,通常是一些測試數據信息。
●name就是附件名稱,body就是數據,attachment_type就是傳類型。附件支持的類型有TEXT、HTML、XML、PNG、JPG、JSON、OTHER。
●issue:這里傳的是一個連接,記錄的是你的問題。
●testcase:這里傳的是一個連接,記錄的是你的用例。
●description:描述用例信息。
import pytest,allure@allure.feature("測試場景1") ? ? ?#標記場景
class TestDemo():@allure.story("測試用例1-1") # 標記測試用例@allure.severity("trivial") # 標記用例級別def test_1_1(self): # 用例1a = 1 + 1assert a == 2@allure.story("測試用例1-2")@allure.severity("critical")@allure.step('用例2:重要步驟')def test_1_2(self):assert 2 == 2
通過main來執行測試用例,這時候程序會在report文件夾中生成一些JSON格式的文件
接下來回到DOS窗口,執行“allure generate --clean report”命令,可以看到新生成了一個allure-report文件夾,可以用瀏覽器打開index.html文件了
?●區域一:顯示報告生成的時間,執行的時間,一共執行了多少個測試用例,環狀圖顯示用例通過的比例。
●區域二:顯示的是測試集合(class)情況。
●區域三:顯示的是測試場景(@allure.feature)。
●區域四:顯示失敗用例的信息。
?
安裝必要的庫
首先,確保已經安裝了pytest和allure-pytest庫。可以使用以下命令進行安裝:
pip install pytest
pip install allure-pytest
?
用法說明?
1. 在測試代碼中,使用pytest框架編寫測試用例。確保你已經導入pytest和allure相關的模塊。
2. 在每個測試用例函數上方添加`@allure.feature('Feature')`和`@allure.story('Story')`裝飾器,用于指定測試用例所屬的特性和故事。
3. 在測試用例函數上方添加`@allure.severity(allure.severity_level.CRITICAL)`裝飾器,用于指定測試用例的嚴重程度。
4. 在需要添加附件的地方,使用`allure.attach()`方法添加附件。例如,在測試用例失敗時,你可以添加失敗截圖或日志文件作為附件。
5. 在命令行中執行`pytest --alluredir=./report`命令,將測試結果生成為Allure報告的XML格式。
6. 使用`allure serve ./report`命令啟動Allure服務,并自動打開生成的測試報告。
示例代碼
import pytest
import allure@allure.feature('登錄模塊')
@allure.story('用戶登錄')
@allure.severity(allure.severity_level.CRITICAL)
def test_user_login():with allure.step('步驟1:輸入用戶名和密碼'):# 輸入用戶名和密碼操作passwith allure.step('步驟2:點擊登錄按鈕'):# 點擊登錄按鈕操作passwith allure.step('步驟3:驗證登錄成功'):# 驗證登錄成功的斷言passwith allure.step('步驟4:添加失敗截圖和日志文件作為附件'):# 添加失敗截圖和日志文件作為附件allure.attach.file('./screenshot.png', name='失敗截圖', attachment_type=allure.attachment_type.PNG)allure.attach.file('./log.txt', name='日志文件', attachment_type=allure.attachment_type.TEXT)assert Trueif __name__ == '__main__':pytest.main(['-s', '-v', '--alluredir=./report'])
執行以上代碼后,會在當前目錄下生成一個`report`文件夾,包含測試結果的XML文件。然后,執行`allure serve ./report`命令,啟動Allure服務并自動打開生成的測試報告。