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


```
相关文章
相关标签/搜索