iT邦幫忙

2024 iThome 鐵人賽

DAY 7
0

在這個章節中我們要介紹的是 Robot Framework 的斷言 (Assertion),這也是所有自動化測試中很重要的一環,測試並不是說走過就好,而是在執行的過程中需要進行驗證該行為或是反饋是否符合我們預期,下面我們一起來看看在 Robot Framework 我們可以怎麼實作吧!

什麼是 斷言 (Assertion)

斷言是自動化測試的核心,它相當於測試中的檢查點。測試人員需要在程式碼中告訴測試腳本,在執行到某一行時,必須檢查某個狀態是否與預期相符。如果結果不符,腳本會拋出錯誤並將該測試標示為失敗。

舉例來說,假設我們撰寫了一個用於驗證網站登入功能的自動化測試腳本。在這個腳本中,我們需要撰寫斷言來驗證,在輸入正確的帳號密碼後,畫面是否顯示為已成功登入的狀態。如果斷言失敗,意味著登入過程中出現了問題,測試也因此標示為失敗。

Robot Framework 中的斷言

在 Robot Framework 中,測試的斷言 keyword 中都會包含 Should … 的字眼。我們可以在 BuiltIn 庫中查看這些斷言方法,下圖為 Robot Framework BuiltIn 以 Should 開頭的斷言:
https://ithelp.ithome.com.tw/upload/images/20240916/20168859Z4h1647ejD.png
下面我們將介紹幾種斷言的種類及實際的 keyword:

相等、不相等類型

  • Should Be Equal:用於驗證兩個值是否相等。這個斷言對於檢查字符串、數字或其他可比數據類型的相等性非常有用。
Should Be Equal    ${result.status_code}    200
  • Should Be Equal As Integers
  • Should Be Equal As Numbers
  • Should Be Equal As Strings
  • Should Not Be Equal:用於驗證兩個值是否相等,與 python 中,等號兩邊是否相同的概念相似
  • Should Not Be Equal As Integers
  • Should Not Be Equal As Numbers
  • Should Not Be Equal As Strings

包含、不包含類型

  • Should Contain:當不包含指定的驗證值時,則為 fail,這個在驗證 list 中是否包含值,或是文字中的文字比對都相當的好用:
Should Contain  	I have apple    apple # pass
  • Should Contain Any
  • Should Contain X Times
  • Should Not Contain
  • Should Not Contain Any

判斷式需要為真、不為真

  • Should Be True:判定給定的條件為真
Should Be True    ${10}>${9} # pass
  • Should Not Be True

由於篇幅的關係,我們在這邊就不一一的列舉了,除此之外像是 AppiumLibrary 的第三方庫,也有屬於該庫的 Robot Framework 斷言,例如 Element Should Be Enabled。透過這些斷言,我們可以更方便地進行驗證,確保測試結果的可靠性。

結語

Robot Framework 的內建斷言工具讓測試更加簡單且有力。瞭解並掌握這些常用的斷言,可以讓我們的自動化測試更加精確且可靠。在日常使用中,根據具體需求選擇合適的斷言方法,將能夠有效提高測試的品質與效率。

希望這篇文章對你在 Robot Framework 中使用斷言有所幫助!如果你有任何疑問或想了解更多的測試技巧,歡迎在下方留言!


上一篇
[6] Robot Framework 控制結構 (Control structures)
下一篇
[8] Robot Framework 自定義 keyword
系列文
建立應用程式 UI 自動化測試 - 以 Robot Framework 為例30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言