網站自動化測試簡介 “Selenium”
這篇文章主要介紹 Selenium的 WebDriver 為什麼在網站自動化測試占有一席之地,什麼是 Selenium WebDriver, IDE, GRID, RC?
除了這是免費 OpenSource的工具之外,WebDriver 成為各種程式語言與各種瀏覽器溝通的橋梁。
因此,Selenium WebDriver 被普及的運作在網站的 End to End Testing. 真實的模擬人對於瀏覽器的操作行為。
Selenium WebDriver 可以
Selenium WebDriver 可以模擬人對於瀏覽器”所有”的操作行為!
可以處理 IE, FireFox, Safari, Chrome等..
可以處理 Browser Windows, popup, JavaScript alerts, frames 等
可以做進階的使用者行為,例如 drag and drop,例如按 Ctrl + Mouse Click、例如 Mouse move Over
可以處理 AJAX 的 UI
可以支援各式各樣的程式語言,例如 Python, Java, C#, Ruby..
Programming Language (Java, Python ) <===> Selenium Web Driver <====> IE, FireFox, Chrome
Selenium IDE
那什麼是 Selenium IDE? Selenium為了讓開發方便,提供一個 FireFox 的套件,
不需要寫程式就可以完成 Selenium的自動化,同時自動輸出 Java or Python 的程式碼。是不是很方便呢?
Selenium GRID
什麼是 Selenium GRID呢?
Selenium GRID 提供一個讓Selenium可以同時執行在多台不同電腦環境的架構
如下圖,Selenium將程式佈署在 node 1~Node 4執行,並且最後會整測試結果在 Hub
Selenium RC
那麼什麼是 Selenium RC 或是 Selenium Server都是上一代的 Selenium
目前已經被現有 Selenium WebDriver 的架構取代。
Selenium 範例
最後,Selenium WebDriver 支援各種程式語言,這裡用 Java 為例子。
這個例子執行後,就會啟動 FireFox 並且瀏覽 Google.com
最後會將瀏覽 Google.com的 Window Title 印出。
[pastacode lang=”java” message=”Selenium Code Sample” highlight=”” provider=”manual” manual=”package%20com.sayem.webdriver.basic.part2%3B%0Aimport%20org.openqa.selenium.By%3B%0Aimport%20org.openqa.selenium.firefox.FirefoxDriver%3B%0Aimport%20org.testng.annotations.Test%3B%0A%0Apublic%20class%20VisitGoogle%7B%0A%0A%20%20%20%20%40Test%0A%20%20%20%20public%20void%20testBBC()%7B%0A%20%20%20%20%20%20%20%20FirefoxDriver%20driver%20%3D%20new%20FirefoxDriver()%3B%0A%20%20%20%20%20%20%20%20driver.get(%22http%3A%2F%2Fwww.google.com%22)%3B%0A%20%20%20%20%20%20%20%20System.out.println(driver.getTitle())%3B%0A%0A%0A%20%20%20%20%7D%0A%7D”/]