selenium-grid是由一個hub節(jié)點和若干個代理節(jié)點組成。hub用來管理 各個代理節(jié)點的注冊和狀態(tài)信息,并且接受遠程客戶端代碼的請求調(diào)用,然后把請求的命令再轉(zhuǎn)發(fā)給代理節(jié)點來執(zhí)行。使用selenium-grid遠程執(zhí)行測 試的代碼與直接調(diào)用Selenium-Server是一樣的[只是環(huán)境啟動的方式不一樣,需要同時啟動一個hub和至少一個node
java -jar selenium-server-standalone-x.xx.x.jar -role hub
java -jar selenium-server-standalone-x.xx.x.jar -role node
上面是啟動一個hub和一個node,若是同一臺機器要啟動多個node則要注意端口分配問題,可以這樣來啟動多個node:
java -jar selenium-server-standalone-x.xx.x.jar -role node -port 5555
java -jar selenium-server-standalone-x.xx.x.jar -role node -port 5556
java -jar selenium-server-standalone-x.xx.x.jar -role node -port 5557
selenium-grid可以根據(jù)你用例中啟動測試的類型來相應(yīng)的把用例轉(zhuǎn)發(fā)給符合匹配要求的測試代 理。例如你的用例中指定了要在Liunux上FF的3.6版本進行測試,那么selenium-grid會自動匹配注冊信息為Linux、且安裝了 FF3.6的代理節(jié)點,如果匹配成功則轉(zhuǎn)發(fā)測試請求,如果失敗則拒絕請求。使用selenium-grid的遠程兼容性測試的代碼同上。其調(diào)用的基本結(jié)構(gòu) 圖如下: