## behave 本身的測試報告
behave 本身提供了四種報告格式:
* pretty:這是默認的報告格式,提供顏色化的文本輸出,每個測試步驟的結果都會詳細列出。
* plain:這也是一種文本格式的報告,但沒有顏色,并且在執行每個步驟后只輸出一個新行。
* progress:這種報告格式只在執行每個測試步驟后輸出一個單字符。
* json:這種報告格式以 JSON 格式輸出測試結果,易于進行進一步處理。
使用 -f 參數或 --format 參數來指定報告的格式。
### pretty 美化的文本格式

* 這里沒有看到顏色的差別, 但是會顯示每個步驟對應的代碼行數
### plain 普通文本格式

* 這里只會顯示步驟執行的結果, 沒有顯示具體的步驟對應的代碼函數
### progress 格式

* 沒有顯示步驟
### JSON格式
以JSON格式的輸出為例:
```shell
behave -f json
```
這將在控制臺輸出 JSON 格式的測試結果。

格式化一下JSON字符串,顯示如下:

可以看到JSON 的字符串包括了Feature的名字,以及各步驟和執行結果等信息。
如果希望將結果保存到文件,可以將輸出重定向到一個文件,也可以使用 -o 參數或 --outfile 參數將結果寫入文件:
```
behave -f json -o report.json
```
這將會產生一個名為 report.json 的文件,其中包含 JSON 格式的測試結果。這個JOSN格式的內容和上面控制臺的JSON是一致的。
### 總結
behave 本身產生的測試包括可以使用在CI/CD 的集成上, 用來判斷整個測試是否成功, 如果需要一些更直觀和易讀的報告, 可以結合Allure 等工具。
## 結合 Allure 產生更豐富的報表
有一些第三方工具或插件可以生成更好看或更有用的報告,例如 allure-behave 可以生成富交互性的 HTML 測試報告。
### Allure 是什么?
Allure 是一個開源的可視化報告工具,適用于各種不同的測試框架(包括 pytest、NUnit、Jasmine 等)。Allure 可以收集測試執行的信息,生成描述測試執行結果的詳細、交互式的 HTML 報告。
Allure 報告是一種可視化的測試報告,它為你提供了豐富的信息,例如測試歷史、執行時間、附件等。
### hebeave + Allure 產生報表的步驟
1. 安裝Python的 allure-behave 模塊。`allure-behave`是一個用于生成 Allure 測試報告的`behave`插件。
在命令行輸入 `pip install allure-behave `
成功安裝的界面如下:

2. 安裝Allure 命令行工具
## Windows 安裝Allure 命令行
在Windows 中可以使用scoop 安裝Allure , 而 scoop 則可以通過Windows 的PowerShell 進行安裝。
### 關于 Scoop
Scoop是一種適用于Windows操作系統的命令行軟件包管理器,用于快速安裝、升級和卸載應用程序。它使用PowerShell命令行界面,可以從互聯網上獲取開源軟件,軟件包命令可以方便地從GitHub上獲取。Scoop不需要管理員權限,可以在用戶帳戶下運行。Scoop是自由開源軟件,可以在GitHub上查看其代碼。
### Windows下如何安裝 scoop
在 Windows 中,可以按照以下步驟安裝`scoop`命令行安裝器:
1. ** 確認系統滿足安裝要求**:
scoop需要 Windows 7 SP1+、Windows Server 2008+ 或更高版本,以及 PowerShell 5 以上版本(或 PowerShell Core 6+)。
2. **安裝 PowerShell**
* 如果系統是 Windows 10,已經有該所需的 PowerShell 版本。
* 如果系統是 Windows 7/8/8.1,需要手動升級 PowerShell。可以在 Microsoft 的官方網站下載[最新版本的 PowerShell](https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell?view=powershell-7.1)。
在開始菜單輸入 "po“就可以找到PowerShell 了, 如下圖

3. **開啟 PowerShell 腳本執行權限**:
打開 PowerShell(以管理員權限),運行以下命令:
```
Set-ExecutionPolicy RemoteSigned -scope CurrentUser
```
命名輸入后提示是否更改策略, 輸入 ”A“ 就可以了。

這個命令開啟 PowerShell 腳本的執行權限,允許你在 PowerShell 中運行`scoop`的安裝腳本。
4. **安裝`scoop`**:
在 PowerShell 中,運行以下命令:
```
iwr -useb get.scoop.sh | iex
```
* 這個命令下載并運行`scoop`的安裝腳本,會把`scoop`安裝到你的用戶目錄下的`scoop`文件夾高。
安裝成功后,你可以通過`scoop help`命令查看`scoop`的用法說明。
需要注意,由于`scoop`需要訪問 GitHub 以獲取并安裝軟件,如果你所在的網絡環境無法訪問 GitHub,可能會導致`scoop`安裝或使用中遇到問題。類似如下錯誤信息:

### Windows下如何安裝 Allure 命令行
如果正確安裝了scoop ,可以通過 `scoop install allure
` 安裝Allure ,需要注意這種方式需要安裝Java ,而且版本是 8 以上, 而且配置了JAVA_HOME環境變量,
如果無法正確安裝scoop 。 也可以通過直接下載allure的命令行工具。 下載完成之后將 allure目錄的bin 目錄添加到Path中, 如下圖:

allure的Windows命令行工具的最新版下載地址: [https://download.csdn.net/download/oscar999/88559298](https://download.csdn.net/download/oscar999/88559298), 也可以到 https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline 查找適當的版本下載。
## hebeave + Allure 產生報表
上面的環境準備完成, 就可以產生報表了, 具體步驟如下:
1.命令行切換到規格文件所處目錄的父目錄,執行如下命令:
```
behave -f allure_behave.formatter:AllureFormatter -o allure_data
```
注意:只有正確安裝了allure-behave 模塊模塊之后才能 通過指定`allure_behave.formatter:AllureFormatter`作為格式化器和輸出目錄,來運行`behave`, 否則會提示beheave不認識這個命令選項

正確執行的效果是:

上面的命令會將測試的結果放在allure_data目錄中,
這個目錄會產生一個 json格式的文件。

2. 在命令行輸入
```
allure serve allure_data
```
執行的結果是:

執行之后會打開一個瀏覽器窗口, 這里顯示的就是一個高大上的在線報表頁面了:

Allure 報告的常見組成部分及其含義如下:
1. **Overview**: 報告首頁會顯示一個總覽(Overview),其中包括執行的測試用例總數、通過率、持續時間,以及故障、錯誤等統計信息。
2. **Graphs**: 報告提供一些數據可視化,如餅圖和柱狀圖,以便更好地理解測試分布、狀態、持續時間等。這有助于識別測試的瓶頸和問題。
3. **Categories**: 測試結果可以按問題類型或故障類型分類。Allure 報告支持創建自定義類別,以根據用例標簽(如自動化用例、手動用例等)對測試結果進行分組和篩選。
4. **Timeline**: 時間線視圖展示了測試用例的執行順序以及每個測試用例的開始和結束時間。這有助于查看并發量和找出性能問題。
5. **Test Details**: 報告中的每個測試用例都有詳細的信息,例如測試名稱、描述、狀態(通過、失敗、跳過等)、測試步驟、運行時間等。此外,也有可能包含額外的信息,如屏幕截圖、日志文件或自定義文檔等。
6. **History**: Allure 報告支持展示測試的歷史數據,有助于追蹤和分析測試的穩定性和質量。例如在多次構建間查看失敗案例的趨勢。
7. **Attachments**: 可以添加附件到測試步驟或測試用例,以顯示與測試相關的其他信息。例如,錯誤日志, 屏幕截圖, 視頻記錄等,可以幫助更好地診斷問題。
8. **Retries**: 如果測試用例執行失敗,Allure 支持自動重試。在報告中,原始測試用例和重試測試用例會分開顯示,以便查看重試次數和結果。
## 參考
* allure
安裝說明:[https://allurereport.org/docs/gettingstarted-installation/](https://allurereport.org/docs/gettingstarted-installation/)
*****
*****
- 前言
- 1.入門篇
- Python介紹
- 安裝與使用
- Python開發利器之VS Code
- 模塊安裝
- 命令行
- 一次Python無法安裝模塊的問題探索與解決之旅
- 命令運行
- Conda
- 下載地址
- 2.基礎篇
- 基礎語法
- 輸入與輸出
- with as的用法
- 注釋
- Python命令行參數
- 編碼
- 變量類型
- 列表遍歷
- 運算符
- 表達式語句
- 條件
- 循環
- 日期和時間
- 函數
- 高級語法
- @符號-裝飾器
- 模塊和包
- name
- init.py
- 錯誤和異常
- 面向對象
- 3.專題篇
- 常用功能
- Python 字符串連接
- python web
- Python CGI編程
- Python OAuth2
- 認證 Flask-HTTPAuth
- 常用命令
- 內置函數
- dir()
- print(f)
- 標準模塊
- sys
- pickle-數據序列化
- os
- IO(輸入輸出)
- 鍵盤輸入
- 文件讀寫
- 測試
- Python測試框架之pytest快速入門
- pytest-bdd快速示例和問題解決
- 基于pytest-bdd的項目目錄結構和命名規范
- python BDD 的相關概念
- Behave介紹和快速示例
- Python BDD之Behave測試報告
- Python BDD 框架比較之 pytest-bdd vs behave
- pytest進階
- Flask + pytest測試
- 參考網址
- pytest-bdd進階
- hehave進階
- 測試路徑
- python + selunium
- HTML 根據多層CSS 查找元素
- 等待執行
- 使用text 查找 span
- pytest如何在控制臺輸出
- 4.問題篇
- pip pip3 及區別
- TypeError: can only concatenate str (not "NoneType") to str
- 5.實戰篇
- matplotlib-繪圖包
- 導入類
- 命名規范
- 模塊查找
- 6.進階篇
- Flask
- Flask介紹
- Flask擴展模塊
- Flask-Login
- 問題
- Jinja2
- Flask-RESTful
- Flask-JWT-Extended
- WSGI
- Flask-SQLAlchemy
- 部署
- Flask VS Django
- Flask Web
- Flask + Vue
- Flask實戰
- Flask 標準目錄結構
- Blueprints
- 參考
- FastAPI 測試
- https 證書 Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate