#selenium grid2 初探html
##0 what is selenium grid?java
簡單說grid是一個分佈式的應用,經過註冊不一樣的節點(hub),提升用例執行效率。node
##1 when to use selenium grid?python
+不一樣瀏覽器,不一樣版本,不一樣操做系統下執行用例git
+減小用例執行時間,提升執行效率github
##2 selenium grid1 VS. selenium grid2web
##3 Hub and nodechrome
##4 Starting Selenium-Grid 接下來如何啓動Selenium-Grid並註冊節點呢?windows下我用的批處理實現,如下未經說明,代碼均爲批處理。shell
###4.1 start Grid Hubwindows
@echo off echo "now start selenuim grid hub server" c:/apps/jdk1.7.0_55/bin/java -jar c:/apps/selenium-server/selenium-server.jar -role hub -port 4200 PAUSE
###4.2 register Grid Node with default
@echo off echo "now register selenuim grid node server" c:/apps/jdk1.7.0_55/bin/java -jar c:/apps/selenium-server/selenium-server.jar -role node -hub http://127.0.0.1:4200/grid/register -port 5555 PAUSE ``` ###4.3 register Grid node with self-settings ``` @echo off echo "now register selenuim grid node Chrome browser server" c:/apps/jdk1.7.0_55/bin/java -jar c:/apps/selenium-server/selenium-server.jar -role node -hub http://127.0.0.1:4200/grid/register -port 5557 -Dwebdriver.chrome.driver="c:/apps/selenium-server/chromedriver.exe" PAUSE ``` **Dwebdriver.chrome.driver** 參數容許你指定對應的chrome或者IE browser驅動。 ###4.4 check and view grid status you can visit this url to check grid status `http://localhost:4200/grid/console` ##5 總結 這裏只是完成了基本的Grid hub啓動和註冊,接下來看如何結合selenium實現具體需求。 附上一個用python寫的啓動腳本 ``` #!/usr/bin/env python # -*- coding: utf-8 -*- # @Date : 2016-03-03 16:48:31 # @Author : Jeff.Sui # @Link : http://jeffsui.github.io # @Version : $Id$ import os from subprocess import Popen import sys import urllib2 import printTm DEBUG = True hubStartStr="c:/apps/jdk1.7.0_55/bin/java -jar c:/apps/selenium-server/selenium-server.jar -role hub -port 4200" html='' try: response=urllib2.urlopen('http://127.0.0.1:4200/wd/hub') html=response.read() if 'Browsers' in html: printTm('already running') exit else: Popen(hubStartStr,shell=True) exit except urllib2.URLError as e: Popen(hubStartStr,shell=True) exit except urllib2.HTTPError: printTm('HTTPError') exit ```