最新的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