Selenium 模式
可以按兩種模式來使用 Selenium:test runner 和 driven。這兩種模式在復雜性和編寫方式方面有所不同。driven 測試腳本編寫起來往往要更復雜一些,因為它們是用編程語言編寫的。但是如果使用 Python 或 Ruby 之類的高級動態編程語言,那么這種復雜性方面的差異就很小。
兩種模式之間最大的不同點在于,如果使用 driven 腳本,測試有一部分在瀏覽器之外運行,而如果使用 test runner 腳本的話,測試是完全在瀏覽器中運行的。
不管是 test runner 還是 driven 測試用例,都可以與持續集成工具集成。
test runner 模式
Selenium test runner 腳本,也稱測試用例(test case),是用 HTML 語言通過一個簡單的表布局編寫的,如 清單 1 所示。
清單 1. Selenium 測試用例的結構
<table border="1"> <tr> <td>First command</td> <td>Target</td> <td>Value</td> </tr> <tr> <td>Second command</td> <td>Target</td> <td>Value</td> </tr> </table> |
test runner 腳本通常與所測試的應用程序(AUT)部署在同一個服務器上。這是因為 browser bot 使用 JavaScript 來模擬用戶操作。這些腳本在一個受限制的沙箱環境中運行。如果需要繞過這些限制,可以使用一個代理。
test runner 腳本使用與 xUnit 框架相同的測試套件(test suite)和測試用例概念。測試用例和命令按照它們在測試套件和測試用例中出現的順序依次執行。在 清單 1 中:
第一列包含命令 或斷言。
第二列包含命令或斷言的目標(target)。這里可以用多種受支持的組件定位符中的一種來指定目標。通常使用的是組件的 ID 或名稱,但 XPath 和 DOM 定位符也是受支持的。
第三列包含用于為命令或斷言指定參數的值。例如,當使用 type 命令時,這一列可能就是一個文本域所期望的值。
即使對于非技術人員來說,test runner 腳本也易于閱讀和編寫。當在一個瀏覽器中打開 清單 1 中的例子時,將得到類似這樣的一個表:
First command | Target | Value |
Second command | Target | Value |
接下來,我將描述如何使用命令和斷言編寫一個簡單但是完整的測試用例。
原文轉自:http://www.anti-gravitydesign.com