在編寫自動化測試腳本時,為了使“機器”去自動辨識test case的執行結果是True還是False,一般都需要在用例執行過程中獲取一些信息,來判斷用例的執行時成功還是失敗。
判斷成功失敗與否,就涉及到斷言。webdriver的斷言使用有三種模式:操作(action)、輔助(accessors)、斷言(assertion)。
1、操作(action)
模擬用戶與Web應用程序的交互,一般用於操作應用程序的狀態;
如點擊鏈接,選擇選項的方式進行工作;如果一個動作執行失敗,或是有錯誤,當前的測試將會停止執行。
常見命令如下:
open(打開頁面)
click(點擊)
clickAndWait(點擊並等待)
type(文本類型)
select(選擇下拉菜單)
selectWindow(選擇彈出窗口)
pause(等待指定時間,以毫秒為單位,即要睡眠的時間)
setSpeed(設定執行速度。以毫秒延遲間隔長度。默認沒有延遲,即為0)
setTimeout(指定等待動作完成的等待時間。默認為30秒,需要等待的動作包括了OPEN 和WAITFOR)
goBack(模擬用戶點擊其瀏覽器上的“back”按鈕)
close(模擬用戶點擊彈出窗體或表單標題欄上的”關閉”按鈕)
2、輔助(accessors)
輔助工具,用於檢查應用程序的狀態並將結果存儲到變量中;
如:storeElementPresent(locator,variableName)
其中參數locator表示元素定位器,variableName用於存儲結果的變量名;
即將locator定位到的狀態存儲到variableName變量中,如果該元素出現返回true,否則返回false,可同斷言一同使用。
3、斷言(assertion)
驗證應用程序的狀態是否同所期望的一致。
常見的斷言包括:驗證頁面內容,如標題是否為X或當前位置是否正確,或是驗證該復選框是否被勾選。
常用斷言如下:
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對話框)
waitForElementPresent (等待檢驗某元素的存在,為真時,則執行)
使用斷言的注意點:
①不要使用斷言作為公共方法的參數檢查,公共方法的參數永遠都要執行;
②斷言語句不可以有任何邊界效應,不要使用斷言語句去修改變量和改變方法的返回值;