Selenium-Grid2 配置
為什么要使用Selenium Grid ?
- 分布式運(yùn)行大規(guī)模的Test
- 能夠通過(guò)一個(gè)中央點(diǎn),很容易的運(yùn)行不同OS上的不同browser
- 最小化對(duì)Grid的維護(hù)時(shí)間,并能充分利用虛擬設(shè)備
Selenium Grid 部署與啟動(dòng)
Hub :總控節(jié)點(diǎn),連接調(diào)用Node。
Node: 負(fù)責(zé)執(zhí)行Tests,調(diào)用瀏覽器。
下面以selenium-server-standalone-2.27.0.jar版本為例:
使用這樣3臺(tái)機(jī)器:
- 10.81.14.170
- 10.81.14.180
- 10.81.14.190
啟動(dòng)Hub(10.81.14.180):
java -jar selenium-server-standalone-2.27.0.jar -role hub在瀏覽器內(nèi)打開(kāi):http://10.81.14.180:4444/grid/console可以查看Hub狀態(tài)。也就是說(shuō)Grid默認(rèn)啟動(dòng)端口是4444,如果想切換為其他端口,則加-port參數(shù)。比如要切換為8888:
java -jar selenium-server-standalone-2.27.0.jar -role hub -port 8888啟動(dòng)Node(10.81.14.170):
java -jar selenium-server-standalone-2.27.0.jar -role node -hub http://10.81.14.180:8888/grid/register同樣的,也可以使用-port切換node端口,默認(rèn)端口是5555.
此處的node節(jié)點(diǎn),也可以作為一個(gè)單機(jī)的遠(yuǎn)程節(jié)點(diǎn)存在,并同時(shí)支持RC,WebDriver。瀏覽器輸入http://10.81.14.180:8877/wd/hub可以看到session信息。
然后,同樣的啟動(dòng)10.81.14.180、10.81.14.190上的Node節(jié)點(diǎn)。
打開(kāi)瀏覽器http://10.81.14.180:8888/grid/console,可以看到如下的界面:
至此,Selenium Grid2已經(jīng)配置成功了。
使用Grid運(yùn)行Tests
Selenium Grid2是向后兼容的,同時(shí)支持RC,WebDriver。如果使用RC,即Selenium1,使用以下的方法:
Selenium selenium = new DefaultSelenium(“10.81.14.180”, 8888, “*firefox”, “http://www.baidu.com”);使用WebDriver的話,使用以下的方法:
DesiredCapabilities capability = DesiredCapabilities.firefox(); WebDriver driver = new RemoteWebDriver(new URL("http://10.81.14.180:8888/wd/hub"), capability);可以看出所有的請(qǐng)求都發(fā)給了Hub,然后由Hub分配給匹配的節(jié)點(diǎn)來(lái)執(zhí)行。
那么,Hub是如何來(lái)分配的呢?往下看
Node配置
默認(rèn),Node會(huì)啟動(dòng)11個(gè)瀏覽器實(shí)例:5 Firefox,5 Chrome, 1 Internet Explorer. 從Grid Console界面看出來(lái),為什么每個(gè)機(jī)器上有22個(gè)實(shí)例呢?是這樣的,Node為了同時(shí)支持RC與WebDriver兩種協(xié)議,所以就是2*11了。把鼠標(biāo)放到各個(gè)瀏覽器圖標(biāo)上,就可以看出里面的配置區(qū)別了。
內(nèi)容類似:
或者
{"browserName": "firefox","maxInstances": 5,"seleniumProtocol": "WebDriver"}其中,seleniumProtocol就是定義的不同協(xié)議了。
如何修改Driver配置呢?可以從啟動(dòng)參數(shù)里操作。
-browser browserName=firefox,version=3.6,maxInstances=5,platform=LINUX那Node默認(rèn)啟動(dòng)的配置是什么呢?
由于如果從啟動(dòng)參數(shù)里,配置這個(gè)多東西,很難寫(xiě)的。因此,官方很人性化的提供了JSON文件來(lái)配置。也就是說(shuō)默認(rèn)啟動(dòng)的配置如下:
http://code.google.com/p/selenium/source/browse/trunk/java/server/src/org/openqa/grid/common/defaults/DefaultNode.json
http://code.google.com/p/selenium/source/browse/trunk/java/server/src/org/openqa/grid/common/defaults/DefaultHub.json
如果想自定義配置,直接對(duì)json文件修改,啟動(dòng)時(shí),指定配置文件就可以了。
java -jar selenium-server-standalone.jar -role hub -hubConfig hubconfig.json僅僅就這樣就行了?從博文http://www.shenyanchao.cn/blog/2012/10/12/selenium-multiple-browser-support/知道,瀏覽器的啟動(dòng)是要制定一些driver位置的,否則Node不知道怎么啟動(dòng)瀏覽器實(shí)例。因此需要進(jìn)行指定:
java -jar selenium-server-standalone-2.27.0.jar -port 8877 -role node -hub http://10.81.14.180:8888/grid/register -nodeConfig nodeconfig.json -Dwebdriver.chrome.driver="E:/selenium/chromedriver.exe" -Dwebdriver.ie.driver="E:/selenium/IEDriverServer.exe"參考文檔:
http://code.google.com/p/selenium/wiki/Grid2
總結(jié)
以上是生活随笔為你收集整理的Selenium-Grid2 配置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: C# PDF操作之-PDF转TXT
- 下一篇: 计算机应用基础成绩单样板,陕西 : 西安