2009年10月19日 星期一

Selenium Docs (2) - Remote Control (RC)

Selenium RC 組成
  • Selenium Server:負責打開/關閉瀏覽器、接受並執行指令,就像一個 HTTP proxy。在打開瀏覽器時會在這個瀏覽器中綁上 Selenium-Core, 這個 Selenium-Core 其實就是一堆 JavaScript 函式,幫你把 client 端傳來的指令換成瀏覽器可以執行的 JavaScript 指令。(目前 Selenium Server 是 .jar 檔案,因此要執行它必須有 JVM。)
  • Client libraries:提供一些 API 讓你可以用自己的程式語言與 Server 溝通。目前提供 Java、Python、C#、Ruby、PHP、Perl 等六個語言的 API。

回報結果
Selenium 沒有特別提供這種機制,但可與其它 Test Framework Reporting 工具結合。例如 Java 有 JUnit、TestNG...等。(參考支援的 Testing Frameworks)
題外話:Selenium IDE 有個很不錯的測試環境:Bromine,特別被 Selenium 支援。可以設定 test case 要做什麼事情、在哪些平台上執行、甚至分開到多個 server 同時執行,並且實際執行後回報結果。

在測試程式中執行 JavaScript
getEval(JavaScriptCode) 可以執行一段 JavaScript 程式,並得到它的回傳結果。例如可以用在取得動態網頁元素的 id、或者網頁上的圖片數目(有例子)。另外 JavaScript code 中記得用 window 物件來取得 dom,以免拿到不是測試視窗的內容。
(... 閱讀「Selenium Docs (2) - Remote Control (RC)」全文)