python测试用例管理_Python测试框架Pytest的常用插件测试报告
原標題:Python測試框架Pytest的常用插件測試報告
一、pytest-html 生成 html 測試報告
要求:Python 3.6+
安裝:pip install pytest-html
文檔:https://github.com/pytest-dev/pytest-html、https://www.cnblogs.com/linuxchao/p/linuxchao-pytest-report.html
使用方法:在命令行或 pytest.ini 配置文件 addopts 中添加選項 --html=測試報告路徑
(1)命令行方式:pytest --html report/report.html --self-contained-html
(2)pytest.ini文件:addopts = pytest --html report/report.html --self-contained-html
注:默認情況下生成的 html 報告中 css 是分開的,分享報告時將無法正確展示樣式,可以使用 --self-contained-html 將 css 合并到 html 中。
二、allure-pytest 生成 Allure 測試報告
Allure 框架是一個靈活的輕量級多語言測試報告工具,它不僅以 Web 的方式展示了簡介的測試結果,而且允許參與開發過程的每個人從日常執行的測試中最大限度的提取有用信息。
從 dev/qa 的角度來看,Allure 報告簡化了常見缺陷的統計:失敗的測試可以分為 bug和被中斷的測試,還可以配置日志、步驟、fixture、附件、計時、執行歷史以及與TMS和BUG管理系統集成,所以,通過以上配置,所有負責的開發人員和測試人員可以盡可能的掌握測試信息。
從管理者的角度來看,Allure 提供了一個清晰的“大圖”,其中包括已覆蓋的特性、缺陷聚集的位置、執行時間軸的外觀以及許多其他方便的事情。Allure 的模塊化和可擴展性保證了您總是能夠對某些東西進行微調,使 Allure 更適合您,那么今天我們就來說說如何使報告更加詳細的顯示我們需要的信息,以及 Allure 與 Jenkins 的集成。
要生成一份完整的 Allure 測試報告,需要先安裝 Allure 命令行工具,然后找到數據生成測試報告。
1
安裝
需安裝 Allure 命令行工具以及 alluer-pytest 插件
安裝 Allure:windows 下進入 https://bintray.com/qameta/maven/allure2 下載 Allure 的zip安裝包解壓,添加 allure(安裝路徑bin)到環境變量 path ;使用 allure --version 查看安裝版本
源碼:https://github.com/allure-framework/allure2
安裝 alluer-pytest:pip install allure-pytest
文檔:https://pypi.org/project/allure-pytest/
2
使用方法
2.1 Allure 常用命令
·查看幫助文檔:allure help
·生成靜態測試報告:allure generate -o ,未使用 -o 指定路徑時,報告將生成到 allure-report 文件夾。-c 生成新的報告之前先清除舊的測試報告。
·打開測試報告:allure open
·生成臨時報告并打開:allure serve
2.2 生成測試報告
(1)allure-pytest 插件收集測試結果數據:
在 pytest 命令行或 pytest.ini 配置文件 addopts 中添加選項 --alluredir=測試報告存儲路徑
(2)生成測試報告:
allure generate (執行該命令后將自動打開瀏覽器瀏覽測試報告)
(3)打開測試報告:
allure open allure-report
3
Allure 報告結構
3.1 Overview:總覽
首頁的部件和小窗口可以拖動和自定義。
Environment
可以通過創建 environment.properties 或者 environment.xml 文件來配置環境信息,并把文件存放到 allure-results(這個目錄是生成最后的 html 報告之前,生成依賴文件的目錄)目錄下,也就是 --alluredir 后面跟的目錄。
# environment.properties
Browser=Chrome
Browser.Version=80.0.3987.132
Stand=test
ApiUrl=127.0.0.1/login
python.Version=3.6.7
3.2 Categories 缺陷類別
默認是分了 failed 和 error,凡是執行結果是其中一個的都會被歸到類里面,可以通過這里快捷查看哪些用例是 failed 和 error 的。
·Product defects 產品缺陷(測試結果:failed)
·Test defects 測試缺陷(測試結果:error/broken)
也可以自定義缺陷分類,在生成測試報告之前將 categories.json 文件添加到 allure-results 目錄即可(和上面 environment.properties 放同一個目錄)。
自定義缺陷參數說明:
·name:(必填)類別名稱,可以為中文
·matchedStatuses:(可選)測試用例的運行狀態。默認["failed", "broken", "passed", "skipped", "unknown"]
·messageRegex:(可選)測試用例運行的錯誤信息,默認是 .* ,可通過正則去匹配
·traceRegex:(可選)測試用例運行的錯誤堆棧信息,默認是 .* ,可通過正則去匹配
3.3 Suites
測試套件,就是所有用例的層級關系,可以根據 package、module、類、方法來查找用例。
3.4 Graphs
測試結果圖形化,包括用例執行結果的分布圖,優先級,耗時等。
3.5 Timeline
可以看到測試用例精確的測試時序(執行順序),包括執行時間。
3.6 Behaviors
行為驅動,根據 epic、feature、story 來分組測試用例。
3.7 Packages
按照 package、module 來分組測試用例。
3.8 Test Case Page
在某些結果概述頁面中,單擊各個測試可以轉到測試用例頁面。該頁面包含許多與測試用例相關的數據:測試期間執行的步驟,計時,附件,測試分類標簽,描述和鏈接。
3.9 Flaky
對于不穩定的測試用例,可以使用 @Flaky 將測試用例標記為不穩定,在測試報告中將標記為 Flaky。
4
Allure 支持的功能
Allure 除了支持 Pytest 自帶的特性之外,本身也有強大的特性可以使用。
4.1 測試步驟 @allure.step
Allure 允許對每個測試用例進行詳細的步驟說明,在測試用例上添加 @allure.step 裝飾器即可。該裝飾器將帶注釋的方法或函數的調用與提供的參數一起添加到報表中。
帶有注釋的方法 @allure.step 可以存儲在測試之外,并在需要時導入。
step 可以包含一條描述行,該行支持傳遞的位置和關鍵字參數的占位符。關鍵字參數的默認參數也將被捕獲。
可以在 conftest.py 中定義 step,示例:
·conftest.py
·test_demo.py
conftest.py 中的 step 顯示在單獨的樹中,如下:
4.2 附件 allure.attach
使用 allure.attach 可以給測試報告添加各種附件。
方法一:
allure.attach(body, name, attachment_type, extension)
方法二:
allure.attach.file(source, name, attachment_type, extension)
·body:文件原始內容
·name:帶有文件名的字符串
·attachment_type:附件類型,可在 allure.attachment_type 中查看支持的附件類型
·extension:創建文件的擴展名
·source:包含文件路徑的字符串
報告:
4.3 描述 allure.deion
若想要測試報告更加清晰,可以添加詳細的測試用例描述,有三種方式:
·@allure.deion(str)
·在測試用例函數聲明下方添加""" """
·@allure.deion_html(str):相當于傳一個HTML代碼組成的字符串,類似allure.attach中傳HTML
報告:
也可以在測試函數中使用 allure.dynamic.deion 或 allure.dynamic.deion_html 動態更新描述信息。
報告:
4.4 標題 allure.title
可以使用@allure.title 裝飾器使測試標題更具可讀性。支持中文,支持參數的占位符并支持動態替換。
報告:
4.5 allure.link、alluer.issue、allure.testcase
為了將 Allure 報告和測試管理系統集成,可以使用 link、issue、testcase
·link(url, link_type, name=None):提供鏈接地址
·issue(url, name=None):提供帶有小錯誤圖標的鏈接
·testcase(url, name=None):
issue 和 tescase 其實也是調用的 link,只是 LinkType 不一樣。
4.6 標記測試用例
@pytest.mark 標記并不會顯示在 Allure 報告上,Allure 也提供了三種類型的標記裝飾器,它們是可以顯示在 Allure 報告上的。如果不加 @allure.feature、@allure.story 時,在測試報告的 Behaviors 欄,測試用例不會分類顯示。
(1)BDD樣式的標記裝飾器:@allure.feature、@allure.story,其中 story 是 feature 的子集,測試報告上將優先顯示 feature,展開再顯示 story。
想要運行指定的 story 或者 feature 時,運行 pytest 時可以添加選項 --allure-stories、--allure-feature 來指定不同的用例集,用例集之間用逗號 , 分割。
pytest tests.py --allure-stories story_1,story_2 --allure-feature feature_2
(2)優先級(嚴重程度)標記裝飾器:@allure.severity可以修飾函數、方法或整個類,以 allure.severity_level 枚舉值作為參數,值包括:BLOCKER、CRITICAL、NORMAL、MINOR、TRIVIAL。
運行指定嚴重程度的用例,可以在運行 pytest 命令時添加選項--allure-severities
pytest tests.py --allure-severities normal,critical
責任編輯:
總結
以上是生活随笔為你收集整理的python测试用例管理_Python测试框架Pytest的常用插件测试报告的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 单季盈利破百亿!宁王商业版图盘点 对外投
- 下一篇: 首发899元!红魔电竞机械键盘上架:悬浮