Selenium工具集html
如圖所示, Selenium工具集的呈現。編程
1. Selenium IDE瀏覽器
Selenium IDE (集成開發環境) 是一個建立測試腳本的工具,如圖所示。它是一個FireFox 插件,實現瀏覽器的錄製與回放功能,提供建立自動化測試的建議接口。Selenium IDE 有一個記錄功能,能記錄人工的操做,而且能選擇多種語言把它們導出到一個可重用的腳本中用於後續執行。若是沒有編程經驗,能夠經過Selenium IDE來熟悉Selenium的命令。實際自動化測試腳本開發過程當中Selenium IDE使用並很少。服務器
2. Selenium RCide
Selenium RC 是Selenium 家族的核心工具,Selenium RC 支持多種不一樣的語言(Python 、Java、Ruby、PHP)編寫自動化測試腳本,經過Selenium RC 服務器做爲代理服務器去訪問被測應用從而達到測試的目的。函數
Selenium RC 分爲Client Libraries 和Selenium Server。工具
v Client Libraries 庫主要用於編寫測試腳本,用來控制Selenium Server 的庫;性能
v Selenium Server 負責控制瀏覽器行爲, Selenium Server 主要包括3 部分:Launcher、Http Proxy、Core。其中,Selenium Core是被Selenium Server嵌入到瀏覽器頁面中。SeleniumCore就是衆多JavaScript函數的集合,即經過這些JavaScript函數,咱們才能夠實現用程序對瀏覽器進行操做。Launcher用於啓動瀏覽器,把Selenium Core加載到瀏覽器頁面當中,並把瀏覽器的代理設置爲SeleniumServer的HttpProxy。測試
Selenium引入了Remote Control Server 來代理 Server,JavaScript 腳本注入和與 Server 通信都經過這個代理Server 來進行。引入這Remote Control Server 是由於「同源策略」的限制,經過代理服務器來「欺騙」遠程Server,達到使其覺得是從同一個地方 load 代碼以正確返回請求數據的效果。如圖所示,Selenium RC的流程爲:編碼
(1) 測試用例經過Http請求創建與 Selenium-RC server 的鏈接;
(2) Selenium RC Server 驅動一個瀏覽器,把Selenium Core加載入瀏覽器頁面當中,並把瀏覽器的代理設置爲Selenium Server的Http Proxy;
(3) 執行用例向Selenium Server發送Http請求,Selenium Server對請求進行解析,而後經過Http Proxy發送JS命令通知Selenium Core執行操做瀏覽器的動做並注入 JS 代碼;
(4) Selenium Core執行接受到的指令並操做;
(5) 當瀏覽器收到新的請求時,發送http請求;
(6) Selenium Server接收到瀏覽器發送的Http請求後,本身重組Http請求,獲取對應的Web頁面;
(7) Selenium Server中的Http Proxy把接受到的頁面返回給瀏覽器。
3. Selenium Grid
Selenium Grid 使得Selenium RC 解決方案能提高針對大型的測試套件或者哪些須要運行在多環境的測試套件的處理能力。Selenium Grid 能夠並行測試用例,也就是說,不一樣的測試用例能夠同時跑在不一樣的遠程機器上。這樣作有兩個優點,首先,若是有一個大型的測試套件,或者一個跑的很慢的測試套件,可使用Selenium Grid 將該測試套件劃分紅幾份,同時在幾個不一樣的機器上運行,這樣可以顯著的提高性能。同時,若是必須在多環境中運行測試套件,能夠得到多個遠程機器的支持,它們將同時運行測試套件。在不一樣的狀況下,Selenium Grid 都能經過並行處理顯著的縮短測試套件的處理時間。
4. Selenium WebDriver
當人們談論Selenium時,通常所指的就是Selenium WebDriver。WebDriver 是Selenium 2 主推的工具,事實上WebDriver是Selenium RC的替代品,由於Selenium須要保留向下兼容性的緣由,在Selenium 2 中, Selenium RC沒有被完全的拋棄,若是使用Selenium開發一個新的自動化測試項目,那麼咱們強烈推薦使用Selenium2 的WebDriver進行編碼。而在Selenium 3 中,Selenium RC 被移除了。
1.1.2 Selenium3.0的新特性
2016年7月,Selenium3.0發佈第一個beta版,當前的版本是3.141,Selenium3的版本特性有:
v 去掉了對Selenium RC的支持;
v 全面擁抱Java 8;
v 支持macOS (Sierra or later),支持官方的safaridriver;
v 經過ms官方的WebDriverserver支持Edge瀏覽器;
v 只支持ie 9.0版本以上;
v 經過Mozilla官方的geckodriver來支持FireFox;
v Selenium IDE支持Chrome插件;
v 支持微軟的Edge瀏覽器。