python selenium系列(五)斷言

 前言

提起斷言,接觸過軟件測試相關工種的同學們,一定不會陌生。比如,功能測試/自動化測試判斷用例是否通過,靠的就是檢查測試結果與預期是否一致;稍微不同的是,功能測試的結果檢查是由人工完成的,而自動化測試是通過預先把期望結果寫入腳本,並與實際執行結果進行比對來完成的。這個比對的行爲就是斷言,依據斷言的結果是TrueFalse判定用例執行通過或失敗。


selenium系列的前四節,主要講解selenium核心的元素定位和操作技術,然而,如果自動化腳本缺少斷言,就無法準確獲得腳本的運行過程中是否存在非預期的情況,腳本本身就不能很好完成功能迴歸的使命。

 

斷言分類

斷言的本質是驗證某個功能點或腳本行爲是否符合預期,所以,方法和手段是多種的。如,python自帶的assert語句,unittest框架的assert方法,甚至用try…except捕獲異常來斷言等。在本文,主要介紹selenium提供的斷言模式,但並不是說,web ui自動化腳本開發中只能使用selenium提供的斷言模式,實際上也可以使用assert語句進行。

 

以下主要介紹Selenium斷言中的兩個模式:assert verify

assert 斷言失敗時,測試終止。

Verify 斷言失敗時,測試會繼續執行,但會將錯誤信息寫入日誌。

 

如何選擇使用assert還是Verify呢?

其實,選擇使用assert還是Verify,取決於當執行失敗時,希望腳本如何處理。如果希望測試失敗時用例停止執行,方便檢查錯誤原因,使用assert;如果希望測試出現異常時仍然可以對後續內容進行檢驗,使用verify

即,assertVerify的區別是:Verify失敗後不影響腳本的繼續執行,而assert失敗後將終止腳本執行。


一個有用的思路是:

我們使用一個"assert"保證操作在正確的頁面上,然後跟着一堆的"verify"來驗證頁面元素、表單中的值,標籤等。


如下所示,我們打開一個頁面,然後assert斷言打開的是否標題爲“Selenium IDE”的頁面,如果斷言成功,則驗證頁面圖片和文字是否正確;否則,直接停止測試即可。                                                                                                       

Command

Target

Value

open

/projects/ide/


assertTitle

Selenium IDE


verifyElementPresent

css=#mainContent img


verifyText

//table/tr/td/div/p

This is my text and it occurs right after the div inside the table.

 

常用斷言總結

assertLocation(判斷當前是在正確的頁面)

assertTitle(檢查當前頁面的 title 是否正確)
assertValue
(檢查 input 的值, checkbox radio,有值爲”on”無爲”off”
assertSelected
(檢查 select 的下拉菜單中選中是否正確)
assertSelectedOptions
(檢查下拉菜單中的選項的是否正確)
assertText
(檢查指定元素的文本)
assertTextPresent
(檢查在當前給用戶顯示的頁面上是否有出現指定的文本)
assertTextNotPresent
(檢查在當前給用戶顯示的頁面上是否沒有出現指定的文本)
assertAttribute
(檢查當前指定元素的屬性的值)
assertTable
(檢查 table 裏的某個 cell 中的值)
assertEditable
(檢查指定的 input 是否可以編輯)

assertNotEditable(檢查指定的 input 是否不可以編輯)
assertAlert
(檢查是否有產生帶指定 message alert 對話框)
verifyTitle 
:(檢查預期的頁面標題)
verifyTextPresent 
:(驗證預期的文本是否在頁面上的某個位置)
verifyElementPresent
(驗證預期的UI元素,它的HTML標籤的定義,是否在當前網頁上)
verifyText
(覈實預期的文本和相應的HTML標籤是否都存在於頁面上)
verifyTable
(驗證表的預期內容)


五 其他資源

關於python學習、分享、交流,筆者開通了微信公衆號【小蟒社區】,感興趣的朋友可以關注下,歡迎加入,建立屬於我們自己的小圈子,一起學python。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章