天天看點

Selenium大家族介紹(selenium RC,selenium IDE, selenium Grid, selenium Webdriver)

Selenium

selenium 是當下非常流行的自動化測試架構,selenium是開源項目。

selenium是一個大家族,這個家族中的主要成員有如下所示:

Selenium大家族介紹(selenium RC,selenium IDE, selenium Grid, selenium Webdriver)

selenium RC:

selenim RC是selenium家族的核心,selenium RC支援多種不同的語言編寫自動化測試腳本,通過seleniumRC的伺服器作為代理伺服器通路應用進而達到測試的目的。

Selenium大家族介紹(selenium RC,selenium IDE, selenium Grid, selenium Webdriver)

selenium RC 分為Client Libraries和selenium Server,Client Libraries庫主要用于編寫測試腳本,用來控制selenium Server的庫,selenium Server有launcher、Http Proxy和Core組成。Launcher用于啟動浏覽器,把selnium Core加載到浏覽器頁面當中,并把浏覽器的代理設定為Selenium Server 的Http Proxy。

selenium IDE:

selneium IDE 是 Selenium Suite下的開源Web自動化測試工具,selenium IDE可作為浏覽器插件進行安裝,它無需使用任何程式設計邏輯來編寫測試基本,而隻需記錄與浏覽器的互動以建立測試用例。 之後,可以使用播放選項重新運作測試用例。

selenium IDE 工具如圖所示:

Selenium大家族介紹(selenium RC,selenium IDE, selenium Grid, selenium Webdriver)

selenium Grid:

selenium Grid是一種自動化測試輔助工具,通過利用現有的計算機基礎設施,能加快Web-app的功能測試,利用Grid,可以很友善同時在多台機器上和異構環境中并行運作多個測試事例。其特點是:

  • 并行執行
  • 通過一個主機控制用例在不同環境、不同浏覽器下運作
  • 靈活添加變動測試機

selenium Webdriver:

selenium Webdriver 是selenium2.0之後的核心,Webdriver通過原生浏覽器支援或者浏覽器擴充直接控制浏覽器。webdriver針對各個浏覽器而開發,取代了嵌入到被測Web應用中的JavaScript。與浏覽器的緊密內建支援建立更進階的測試,避免了JavaScript安全模式導緻的限制。除了來自浏覽器廠商的支援,webdriver還利用作業系統級的調用模拟使用者輸入。

使用webdriver需要給浏覽器安裝驅動,chrome浏覽器驅動是chromedriver,IE浏覽器驅動是IEDriver,firefox浏覽器驅動是geckodriver,其中浏覽器與驅動有對應的版本要求。

selenium2.0以上支援多語言的測試腳本編寫,因為使用webdriver,webdriver是基于JSON Wire Protocol協定,JSON Wire protocol是在http協定基礎上,對http請求及響應的body部分的資料的進一步規範。在WebDriver中請求封包和響應封包資料都是以JSON的形式存在并進行傳送的,是以在Client和Server之間,隻要是基于JSON Wire Protocol來傳遞資料,就與具體的腳本語言無關了,這樣同一個浏覽器的驅動就即可以處理Java語言的腳本,也可以處理Python語言的腳本。

繼續閱讀