selenium grid2 初探

#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

  • Hub:總控節點,鏈接調用Node,負責分配用例到對應的Node節點所在的執行器上Node
  • Node:負責執行TestCase,啓動瀏覽器

##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


```
相關文章
相關標籤/搜索