selenium關於斷言的使用

基本介紹:css

Selenium工具專門爲WEB應用程序編寫的一個驗收測試工具。python

Selenium的核心:browser bot,是用JAVASCRIPT編寫的。瀏覽器

Selenium工具備4種:Selenium IDE, Selenium Control, Selenium Core服務器

這兒咱們主要總結了Selenium-IDE工具app

Selenium-IDE只限於firefox瀏覽器中使用。框架

 

Selenium命令分紅三類:工具

操做(action)、輔助(accessors)和斷言(assertion):單元測試

操做action:測試

模擬用戶與 Web 應用程序的交互。通常用於操做應用程序的狀態。this

如點擊連接,選擇選項的方式進行工做。若是一個動做執行失敗,或是有錯誤,當前的測試將會中止執行。

操做中常見命令有:open(打開頁面)

click(點擊)

clickAndWait(點擊並等待)

type(文本類型)

select(選擇下拉菜單)

selectWindow(選擇彈出窗口)

pause(等待指定時間,以毫秒爲單位,即要睡眠的時間)

setSpeed(設定執行速度。以毫秒延遲間隔長度。默認沒有延遲,即爲0)

setTimeout(指定等待動做完成的等待時間。默認爲30秒。

須要等待的動做包括了OPEN 和WAITFOR)

goBack(模擬用戶點擊其瀏覽器上的「back」按鈕)

close(模擬用戶點擊彈出窗體或表單標題欄上的」關閉」按鈕)

click與clickAndWait的區別:

例如對比錄製腳本:

Comand      Target

click             css=input[type=submit]           //句一

clickAndWait  css=input[type=submiit]          //句二

轉成PHPUNIT後代碼爲:

$this->click(「css=input[type=submit]「);        //此句對應上面的 句一

$this->click(「css=input[type=submit]「);        //此句和下一句,對應上面的 句二

$this->waitForPageToLoad(「30000″);

區別在於:clickAndWait後會有一個默認的頁面等待時間爲30秒;而click沒有等待時間;

Andwait這個後綴,告訴咱們,該命令將使瀏覽器向服務器產生一個請求,使Selenium等待加載一個新的頁面。

 

輔助accessors:

這是輔助工具。用於檢查應用程序的狀態並將結果存儲到變量中。

如:storeElementPresent(locator,variableName)

其中參數:locator 表示元素定位器;variableName 用於存儲結果的變量名。

即將locator定位到的狀態存儲到variableName變量中。

若是該元素出現返回true,不然返回false

可同斷言一同使用。

 

斷言assertion:

驗證應用程序的狀態是否同所指望的一致。

常見的斷言包括:驗證頁面內容,如標題是否爲X或當前位置是否正確,或是驗證該複選框是否被勾選。

 

斷言被用於三種模式: assert、verify、waitfor

Assert 失敗時,該測試將終止。

Verify 失敗時,該測試將繼續執行,並將錯誤記入日顯示屏。也就是說容許此單個 驗證經過。確保應用程序在正確的頁面上。

Waitfor用於等待某些條件變爲真。可用於AJAX應用程序的測試。

若是該條件爲真,他們將當即成功執行。若是該條件不爲真,則將失敗並暫停測試。直到超過當前所設定的超時時間。 通常跟setTimeout時間一塊兒用

 

斷言經常使用的有

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 (等待檢驗某元素的存在。爲真時,則執行。)

基本介紹:

Selenium工具專門爲WEB應用程序編寫的一個驗收測試工具。

Selenium的核心:browser bot,是用JAVASCRIPT編寫的。

Selenium工具備4種:Selenium IDE, Selenium Control, Selenium Core

這兒咱們主要總結了Selenium-IDE工具

Selenium-IDE只限於firefox瀏覽器中使用。

 

Selenium命令分紅三類:

操做(action)、輔助(accessors)和斷言(assertion):

操做action:

模擬用戶與 Web 應用程序的交互。通常用於操做應用程序的狀態。

如點擊連接,選擇選項的方式進行工做。若是一個動做執行失敗,或是有錯誤,當前的測試將會中止執行。

操做中常見命令有:open(打開頁面)

click(點擊)

clickAndWait(點擊並等待)

type(文本類型)

select(選擇下拉菜單)

selectWindow(選擇彈出窗口)

pause(等待指定時間,以毫秒爲單位,即要睡眠的時間)

setSpeed(設定執行速度。以毫秒延遲間隔長度。默認沒有延遲,即爲0)

setTimeout(指定等待動做完成的等待時間。默認爲30秒。

須要等待的動做包括了OPEN 和WAITFOR)

goBack(模擬用戶點擊其瀏覽器上的「back」按鈕)

close(模擬用戶點擊彈出窗體或表單標題欄上的」關閉」按鈕)

click與clickAndWait的區別:

例如對比錄製腳本:

Comand      Target

click             css=input[type=submit]           //句一

clickAndWait  css=input[type=submiit]          //句二

轉成PHPUNIT後代碼爲:

$this->click(「css=input[type=submit]「);        //此句對應上面的 句一

$this->click(「css=input[type=submit]「);        //此句和下一句,對應上面的 句二

$this->waitForPageToLoad(「30000″);

區別在於:clickAndWait後會有一個默認的頁面等待時間爲30秒;而click沒有等待時間;

Andwait這個後綴,告訴咱們,該命令將使瀏覽器向服務器產生一個請求,使Selenium等待加載一個新的頁面。

 

輔助accessors:

這是輔助工具。用於檢查應用程序的狀態並將結果存儲到變量中。

如:storeElementPresent(locator,variableName)

其中參數:locator 表示元素定位器;variableName 用於存儲結果的變量名。

即將locator定位到的狀態存儲到variableName變量中。

若是該元素出現返回true,不然返回false

可同斷言一同使用。

 

斷言assertion:

驗證應用程序的狀態是否同所指望的一致。

常見的斷言包括:驗證頁面內容,如標題是否爲X或當前位置是否正確,或是驗證該複選框是否被勾選。

 

斷言被用於三種模式: assert、verify、waitfor

Assert 失敗時,該測試將終止。

Verify 失敗時,該測試將繼續執行,並將錯誤記入日顯示屏。也就是說容許此單個 驗證經過。確保應用程序在正確的頁面上。

Waitfor用於等待某些條件變爲真。可用於AJAX應用程序的測試。

若是該條件爲真,他們將當即成功執行。若是該條件不爲真,則將失敗並暫停測試。直到超過當前所設定的超時時間。 通常跟setTimeout時間一塊兒用

 

斷言經常使用的有

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 (等待檢驗某元素的存在。爲真時,則執行。)

異常類型

 

  • AssertionError:assert語句失敗
  • AttributeError:試圖訪問一個對象沒有的屬性
  • IOError:輸入輸出異常,基本是沒法打開文件
  • ImportError:沒法引入模塊或者包,基本是路徑問題
  • IndentationError:語法錯誤,代碼沒有正確的對齊
  • IndexError:下標索引超出序列邊界
  • KeyError:試圖訪問字典裏不存在的鍵
  • KeyboadrInterrupt:Ctrl+c被按下
  • NameError:使用一個還未賦值對象的變量
  • SyntaxError:python代碼邏輯語法錯誤,不能執行
  • TypeError:傳入的對象類型與要求不符
  • UnboundLocalError:試圖訪問一個還未設置的全局變量,基本上是因爲另有一個同名的全局變量,致使你覺得在訪問
  • ValueError:傳入一個不被指望的值,即便類型正確

 

 

 

UnitTest框架中的斷言

 

(在unittest單元測試框架中,TestCase類提供了一些方法來檢查並報告故障)

 

 

相關文章
相關標籤/搜索