Selenium分布式自动化测试平台 Standalone Server 4.0 搭建

最新的selenium测试平台大概有这么几个组件java

Selenium Standalone Server: 用来搭建远程测试平台以及分布式测试。node

Selenium WebDriver: 最基础的用来建立测试脚本以及用来和上面的server进行交互的客户端的驱动。这个针对不一样的开发语言有不一样的版本,好比java的,python的,还有C#, Ruby, JavaScript。这个也是Selenium和其余测试工具比比较强大的地方。客户端的脚本你能够选择任一喜欢的语言进行实现,同一个server端均可以执行。python

Selenium IDE:录制的plugin,没啥说的,针对不一样的浏览器有不一样的plugin.能够录制回放,编辑,等等,功能相对webdriver比较弱。值得说的是Selenium IDE也有导出功能,最新版本3.6.0的Firefox上,目前只支持导出Java代码,后续会有其余的代码吧,比较鸡肋,估计支持比较晚。git

ThirdParty Driver:这个是用来链接webdriver脚本和浏览器的。好比Firefox上的是Gecko.做用是提供webdriver的HTTP API用于和浏览器通讯。最直接的做用就是没有它,你就没法启动浏览器,更别说其余功能。至关因而用来执行webdriver上的API操做到浏览器里。这是一个exe文件。github

 

搭建分布式测试有这些好处:web

1. 能够把测试用例分发到不一样的机器上,并行运行。这样能够节省大量的时间。windows

2. 能够搭建不一样的测试平台,好比Linux, windows,还有不一样的浏览器平台。浏览器

3. 就我测试的经验看,有些测试用例必须使用多个机器一块儿才能实现。好比多用户在线审批流程。并发

4. 分布式的多并发的测试平台也是一种对系统的压力测试过程,有些问题在单个机器上不会出现,可是多平台一块儿运行,就会有。分布式

 

Standalone Server里面有两个基本角色, 这个和交换机很是类似

1. Hub: 相似交换机,拿到client requesit,而后分发

2. Node: 客户端,提交request.

 

Server搭建有这么几个步骤, server须要机器上已经安装好了java,由于这是一个jar package.

1. 下载selenium-server-standalone-4.0.0-alpha-1.jar.

2. 而后java 启动执行。这里都使用默认值

java -jar selenium-server-standalone-4.0.0-alpha-1.jar -role hub

 

能够在浏览器访问http://localhost:4444/grid/console

2.把client server加入到hub 里面

1. 下载selenium-server-standalone-4.0.0-alpha-1.jar.

2. 而后java 启动执行。这里都使用默认值

java -jar selenium-server-standalone-4.0.0-alpha-1.jar -role node -hub http://localhost:4444/grid/register

 

 

 刷新下刚才的http://localhost:4444/grid/console 就能看见Node已经加进去了, 最简单的Grid就搭建完毕了。

使用Grid运行测试用例(python代码)

 

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

driver = webdriver.Remote(
   command_executor='http://127.0.0.1:4444/wd/hub',
   desired_capabilities=DesiredCapabilities.CHROME)

driver = webdriver.Remote(
   command_executor='http://127.0.0.1:4444/wd/hub',
   desired_capabilities=DesiredCapabilities.OPERA)

driver = webdriver.Remote(
   command_executor='http://127.0.0.1:4444/wd/hub',
   desired_capabilities=DesiredCapabilities.HTMLUNITWITHJS)

 

配置Node以及Hub

有两种方式能够配置Node

1. 使用命令行方式

 2. 使用JSON文件

具体的参看下面的link

来源参考https://github.com/SeleniumHQ/selenium/wiki/Grid2

相关文章
相关标签/搜索