test runner 模式
Selenium test runner 指令碼,也稱測試案例(test case),是用 HTML 語言通過一個簡單的表布局編寫的,如下代碼:
Selenium 測試案例的結構
table border="1"> tr> td>First commandtd> td>Targettd> td>Valuetd> tr> tr> td>Second commandtd> td>Targettd> td>Valuetd> tr> table>
test runner 指令碼通常與所測試的應用程式(AUT)部署在同一個伺服器上。
這是因為 browser bot 使用 JavaScript 來類比使用者操作。
這些指令碼在一個受限制的沙箱環境中運行。
如果需要繞過這些限制,可以使用一個代理。
test runner 指令碼使用與 xUnit 架構相同的測試套件(test suite)和測試案例概念。測試案例和命令按照它們在測試套件和測試案例中出現的順序依次執行。
在 以上代碼 中:
- 第一列包含命令 或斷言。
- 第二列包含命令或斷言的目標(target)。這裡可以用多種受支援的組件定位器中的一種來指定目標。通常使用的是組件的 ID 或名稱,但 XPath 和 DOM 定位器也是受支援的。
- 第三列包含用於為命令或斷言指定參數的值。例如,當使用
type 命令時,這一列可能就是一個文本域所期望的值。
即使對於非技術人員來說,test runner 指令碼也易於閱讀和編寫。當在一個瀏覽器中開啟 上面的代碼 中的例子時,將得到類似這樣的一個表:
| First command |
Target |
Value |
| Second command |
Target |
Value |
|
|
測試案例執行個體
執行 如下的測試指令碼時,它將執行以下操作:
- 通過進入 TestSelenium2.html 開啟變更地址頁面。
- 在 ID 為
q 的文字框中輸入 Betelgeuse state prison。
- 單擊名為 'btnZzk' 的輸入區。注意,這裡使用 XPath 找到 Submit 按鈕,這導致表單資料被發送到伺服器。
- 驗證頁面是否包含文本
Address change successful。
table> tr> td>opentd> td>TestSelenium2.htmltd> td>td> tr> tr> td>typetd> td>//input[@id='q']td> td>Betelgeuse state prisontd> tr> tr> td>clicktd> td>//input[@id='btnZzk']td> td>td> tr> tr> td>verifyTextPresenttd> td>Address change successfultd> td>td> tr> table>
感覺這裡的代碼跟使用Selenium RC 測試時,代碼似乎很相似,不同就是RC是用我們平常使用的進階程式設計語言來測試,而Test Runner是用HTML來表示的。
我的TestSelenium2.html頁面內容很簡單:
input type="text" id="q"/>input type="button" id="btnZzk" onclick="zzk()" text="找找看"/>div id="div1">div>script> function zzk() { document.getElementById("div1").innerHTML="Address change successful"; }script>
點擊右側“運行選定的測試”開始測試:
運行全部是綠色的,表示通過.
1Run,1Passed,運行測試通過。
在頁面的下方,出現了我們要測試的頁面TestSelenium2.html,也正是我們期望的現實內容。