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