iT邦幫忙

2024 iThome 鐵人賽

DAY 4
0

在上一個章節,我們執行了我們的第一個 Robot Framework 的測試,並且在終端機上看到了測試的結果,但是當今天測試案例較多較複雜時,不是所有的測試都可以透過終端機的顯示便可以排查錯誤的,因此在今天這個章節,將與大家介紹關於 Robot Framework 內建的報告該如何使用!

執行測試後的產物:output.xml、log.html、report.html

首先,先來複習一下上章的執行結果,在執行完測試後最後三行,我們可以看到測試的產生了三個檔案,這三個檔案分別是 output.xmllog.htmlreport.html,下面一起來看看這三個檔案分別有什麼用途吧。

==============================================================================
Test :: My First Robot Framework                                              
==============================================================================
Test Case 001                                                         | PASS |
------------------------------------------------------------------------------
Test Case 002                                                         | FAIL |
6 != 5
------------------------------------------------------------------------------
Test :: My First Robot Framework                                      | FAIL |
2 tests, 1 passed, 1 failed
==============================================================================
Output:  ithome/output.xml
Log:     ithome/log.html
Report:  ithome/report.html

output.xml

output.xml 是 Robot Framework 生成的原始測試結果文件,包含了測試執行的所有細節。這個文件以 XML 格式存儲,主要用於進一步處理和分析測試結果,例如透過解析這個檔案進行測試數據的分析,或是將測試結果傳送到測試結果管理平台,或是我們可以透過這個檔案進行測試報告的重組或是 rerun。

下面我們可以舉個範例,當今天測試結束後,我們希望可以將總共執行的測試數量、通過的測試數量及失敗的測試數量傳送到 slack 通知團隊,那麼這時候就需要透過讀取這個 output.xml 來取得這些資料:

from robot.api import ExecutionResult

result = ExecutionResult('output.xml')
stats = result.statistics
print(f"Total Cases: {stats.total.total}")
print(f"Pass: {stats.total.passed}")
print(f"Fail: {stats.total.failed}")

上面的 Code 執行後的效果如下:

Total Cases: 2
Pass: 1
Fail: 1

在上方的程式碼中,我們透過 Robot Framework 本身提供的 ExecutionResult,快速取得測試的成果,接下來便可以透過 slack 的 webhook 傳送測試結果到 slack 通知啦!關於 slack webhook 如何使用,可以參考:https://api.slack.com/messaging/webhooks
在這邊也分享一下如果透過 slack 通知的話,可以包含以下的資訊:

  • 測試版本
  • 測試環境
  • 測試結果 (如果透過顏色來顯示,可以第一眼便辨識出結果)
  • 測試耗時
  • 測試成功數量 / 測試失敗數量 / 測試略過數量

https://ithelp.ithome.com.tw/upload/images/20240913/20168859y3s21pKrsb.png

report.html

report.html 提供了一個高層次的測試結果概覽,適合快速了解測試的整體執行情況。以表格的形式展示了所有 Test Suite 的測試結果,上面也有提供些 filter 的功能,讓我們可以過濾出想看的資訊,但是對於測試人員來說,我們會更加傾向直接查看測試錯誤的原因,因此可以透過點擊 report.html 的 Test Suite 名稱,進入到 log.html
https://ithelp.ithome.com.tw/upload/images/20240913/20168859dqBGg0qMhy.png

log.html

log.html 是詳細的測試執行日誌,展示了每個測試案例的執行流程、使用的關鍵字及其輸入輸出,以及可能的錯誤信息。這個文件提供了樹狀結構視圖,可以幫助我們逐步展開查看測試步驟,精確定位問題,以上個章節執行的測試為例:
https://ithelp.ithome.com.tw/upload/images/20240913/20168859tW67MPMo0G.png

log.html 中,我們可以查看細到每一個測試步驟的結果是 pass 或是 fail,以及測試過程中產生的值是什麼,相當快速的可以定位到問題在 code 中的哪一個部分,以及相較於其他框架的測試報告 Robot Framework 算是相對精美了,在報告中我們也可以查看到每一個測試步驟的執行時間,這些時間的長短依據可以是日後我們優化測試的一個重要參考資料。

最後,我們針對這三個檔案,透過表格來做個統整吧!

檔案/類型 output.xml log.html report.html
功能 原始測試數據,詳細結果存儲 詳細測試日誌,逐步展開測試過程 測試結果概覽,偏向全局
格式 XML HTML HTML
適用場景 進行進一步數據處理、生成報告或系統集成 排查測試問題、查看詳細測試步驟 高層次了解測試狀況,適合向管理層匯報
適合的使用者 測試開發工程師 測試人員、開發人員 測試經理、專案主管、產品負責人

結語

Robot Framework 提供的測試結果報告工具非常強大,可以幫助我們快速掌握測試執行情況,並深入追蹤失敗的測試案例。通過利用這些報告工具,我們可以大大提升測試的有效性和穩定性,進一步提高測試自動化的品質和效率。


上一篇
[3] Robot Framework 安裝及初體驗
下一篇
[5] Robot Framework 測試執行的先後順序
系列文
建立應用程式 UI 自動化測試 - 以 Robot Framework 為例30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言