iT邦幫忙

2024 iThome 鐵人賽

DAY 16
0
DevOps

建立應用程式 UI 自動化測試 - 以 Robot Framework 為例系列 第 16

[16] Robot Framework 與 Allure 整合,提升測試報告可讀性

  • 分享至 

  • xImage
  •  

在過去的章節中我們有提到 Robot Framework 自帶的 log.html 的報告,如果還沒有看過的話,歡迎閱讀這篇,在這個章節將針對測試報告做補充,Robot Framework 提供的原生報告對於開發自動化測試的夥伴來說是已經足夠了,但是當今天我們想要將報告分享跟 RD、PM 或是主管呢?這時候 Robot Framework 原生的 log 就顯得太陽春了,因此當我們今天提到測試報告美化,不得不提起目前受到大家青睞得 Allure,Allure 提供優秀的介面及圖表並且支援許多的程式語言及測試框架,為測試建立起統一的報告,並且 Allure 是開源的!下面我們一起來看看如何在 Robot Framework 中整合 Allure 吧!
官方網站:https://allurereport.org/

什麼是 Allure

Allure 是一個強大的開源報告框架,專門用於生成測試執行報告。它支持多種測試框架,包括 Robot Framework、pytest、Cypress、PHPUnit、Junit5 等。Allure 報告具有直觀的界面,能夠以清晰的方式展示測試結果,從而使開發人員和測試人員能夠輕鬆分析測試數據。

使用 Allure 的優點

  1. 可視化數據:Allure 將測試結果轉化為易於閱讀的圖表和報告,幫助快速識別問題區域。
  2. 詳細的測試步驟:可以跟踪每個測試案例的執行情況,包括測試步驟、輸入數據和預期結果。
  3. 自動化測試流程集成:Allure 可以與多個 CI/CD 工具集成,如 Jenkins 和 GitHub Actions,從而使測試報告生成流程自動化。
  4. 支持多語言:Allure 支持多種程式語言的測試框架,支援50+測試工具和框架。

安裝 Allure 及 Robot Framework

要在 Robot Framework 中生成 Allure 報告,我們首先需要安裝一些必要的工具。

安裝 Allure

由於 Allure 與一些單純組成測試報告的工具不同,Allure 是透過 Java 進行開發的,因此我們的本地環境需要有 Java,並且與 Robot Framework 自帶的 log.html 的報告不同,當我們今天需要查看 Allure 報告時,會在本地起一個 server 讓我們透過這個服務來訪問報告,因此是否適合團隊就有賴大家閱讀後自行評估了:

我們可以透過 Homebrew 來安裝 Allure:

brew install allure

安裝後可以透過 allure --version 檢查是否安裝成功:

allure --version
# 2.30.0

安裝 Allure Robot Framework adapter

接著我們需要安裝 Robot Framework adapter ,這個庫提供了將 Robot Framework 測試結果與 Allure 進行集成的功能。

pip3 install allure-robotframework

運行測試

安裝完後我們便可以執行測試來看看產生的報告的效果囉!

在過去我們觸發的指令為 :robot test/ 但是如果要整合 allure_robotframework,我們需要在我們的指令中新增 --listener allure_robotframework,如下面展示的這樣,--listener 是 Robot Framework 監聽器的用,如果對 Robot Framework 監聽器有興趣的話可以參考前面的章節

robot --listener allure_robotframework test/

運行後我們會在當前的目錄底下看到產生一個 output/allure 的路徑,這時候我們可以透過以下的指令來查看報告:

allure serve allure-results

運行後我們會被導到瀏覽器中瀏覽報告:
https://ithelp.ithome.com.tw/upload/images/20240925/20168859Za9B7v0gyA.pnghttps://ithelp.ithome.com.tw/upload/images/20240925/20168859DhkwgENkdB.png

生成報告後,我們可以到各個測試案例的詳細信息,包括:

  • 測試案例的名稱和描述
  • 測試步驟及其執行結果(通過、失敗、跳過等)
  • 每個測試步驟的執行時間
  • 測試結果的圖表分析,例如測試成功率和失敗率的趨勢圖
    以及還可以配置 Allure 報告以顯示更多的自定義信息,例如測試環境變量、測試結果附件(如截圖、日誌文件)等。

同時回到剛剛我們啟動報告的終端機我們可以看到以下資訊,下面的資訊跟我們這個 Server 起在哪個環境,以及當我們看完報告後可以透過 Ctrl+C 結束查看。

Generating report to temp directory...
Report successfully generated to /var/folders/ls/zggl28854bd3rqbxgzf90kym0000gn/T/3350409526508158050/allure-report
Starting web server...
2024-09-01 15:56:15.275:INFO::main: Logging initialized @4197ms to org.eclipse.jetty.util.log.StdErrLog
Server started at <http://192.168.0.160:56253/>. Press <Ctrl+C> to exit

Allure Single File

這邊分享一個小撇步,如果我們想跟 Robot Framework 自帶的 log.html 的報告一樣,產生一個 html 檔案就好,不想要分享整個資料夾該怎麼辦,這時候我們可以透過下面這個指令:

allure generate --single-file output/allure

執行後便會在當前的目錄底下產生一個 allure-report 的資料夾,裡頭有一個 index.html 的檔案,這時候我們便可以直接開啟這個 index.html 即可。

客製化 Allure 內容

我們也可以客製化 Allure 報告中的訊息,讓報告更易讀或是符合我們的需求:

Add One ToDos And Check Items
    [Tags]
    ...    allure.label.owner:Max
    ...    allure.label.severity:critical
    ${item_name} =    Create Fake Item Name
    Input Text Into ToDo    ${item_name}
    Verify Element Text Should Display Correctly    ${Common_TODO_Count_Test}    1 item left!

透過在 Tags 的標籤中加入 allure.label.owner:Max 等資訊,我們在報告中便可以看到這些資訊:
https://ithelp.ithome.com.tw/upload/images/20240925/201688596Ud8DfA23w.png

關於有哪些細部的客製化,由於篇幅的原因我們就不一一做介紹了,有興趣的話可以參考官方文件的這兩篇:

結語

通過 Allure 報告,我們可以大幅度提高測試報告的可讀性和可視化效果。這不僅幫助開發人員和測試人員更快地理解測試結果,還能輕鬆發現測試過程中的潛在問題。


上一篇
[15] Robot Framework 結合 Playwright 進行 Web 自動化測試 - 專案架構
下一篇
[17] 關於 Github Actions
系列文
建立應用程式 UI 自動化測試 - 以 Robot Framework 為例30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言