最新的selenium測試平臺大概有這麼幾個組件java
Selenium Standalone Server: 用來搭建遠程測試平臺以及分佈式測試。node
Selenium WebDriver: 最基礎的用來建立測試腳本以及用來和上面的server進行交互的客戶端的驅動。這個針對不一樣的開發語言有不一樣的版本,好比java的,python的,還有C#, Ruby, JavaScript。這個也是Selenium和其餘測試工具比比較強大的地方。客戶端的腳本你能夠選擇任一喜歡的語言進行實現,同一個server端均可以執行。python
Selenium IDE:錄製的plugin,沒啥說的,針對不一樣的瀏覽器有不一樣的plugin.能夠錄製回放,編輯,等等,功能相對webdriver比較弱。值得說的是Selenium IDE也有導出功能,最新版本3.6.0的Firefox上,目前只支持導出Java代碼,後續會有其餘的代碼吧,比較雞肋,估計支持比較晚。git
ThirdParty Driver:這個是用來鏈接webdriver腳本和瀏覽器的。好比Firefox上的是Gecko.做用是提供webdriver的HTTP API用於和瀏覽器通訊。最直接的做用就是沒有它,你就沒法啓動瀏覽器,更別說其餘功能。至關因而用來執行webdriver上的API操做到瀏覽器裏。這是一個exe文件。github
搭建分佈式測試有這些好處:web
1. 能夠把測試用例分發到不一樣的機器上,並行運行。這樣能夠節省大量的時間。windows
2. 能夠搭建不一樣的測試平臺,好比Linux, windows,還有不一樣的瀏覽器平臺。瀏覽器
3. 就我測試的經驗看,有些測試用例必須使用多個機器一塊兒才能實現。好比多用戶在線審批流程。併發
4. 分佈式的多併發的測試平臺也是一種對系統的壓力測試過程,有些問題在單個機器上不會出現,可是多平臺一塊兒運行,就會有。分佈式
Standalone Server裏面有兩個基本角色, 這個和交換機很是類似
1. Hub: 相似交換機,拿到client requesit,而後分發
2. Node: 客戶端,提交request.
Server搭建有這麼幾個步驟, server須要機器上已經安裝好了java,由於這是一個jar package.
1. 下載selenium-server-standalone-4.0.0-alpha-1.jar.
2. 而後java 啓動執行。這裏都使用默認值
java -jar selenium-server-standalone-4.0.0-alpha-1.jar -role hub
能夠在瀏覽器訪問http://localhost:4444/grid/console
2.把client server加入到hub 裏面
1. 下載selenium-server-standalone-4.0.0-alpha-1.jar.
2. 而後java 啓動執行。這裏都使用默認值
java -jar selenium-server-standalone-4.0.0-alpha-1.jar -role node -hub http://localhost:4444/grid/register
刷新下剛纔的http://localhost:4444/grid/console 就能看見Node已經加進去了, 最簡單的Grid就搭建完畢了。
使用Grid運行測試用例(python代碼)
from selenium import webdriver from selenium.webdriver.common.desired_capabilities import DesiredCapabilities driver = webdriver.Remote( command_executor='http://127.0.0.1:4444/wd/hub', desired_capabilities=DesiredCapabilities.CHROME) driver = webdriver.Remote( command_executor='http://127.0.0.1:4444/wd/hub', desired_capabilities=DesiredCapabilities.OPERA) driver = webdriver.Remote( command_executor='http://127.0.0.1:4444/wd/hub', desired_capabilities=DesiredCapabilities.HTMLUNITWITHJS)
配置Node以及Hub
有兩種方式能夠配置Node
1. 使用命令行方式
2. 使用JSON文件
具體的參看下面的link