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

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

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

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

ThirdParty Driver:这个是用来连接webdriver脚本和浏览器的。比如Firefox上的是Gecko.作用是提供webdriver的HTTP API用于和浏览器通信。最直接的作用就是没有它,你就无法启动浏览器,更别说其他功能。相当于是用来执行webdriver上的API操作到浏览器里。这是一个exe文件。

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

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

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

最新文章

  1. linux 系统服务
  2. delphi中获取调用堆栈信息
  3. oracle视图索引
  4. 配置pyqt5环境 for python3.4 on Linux Mint 17.1
  5. 安装配置rsync服务端
  6. Linux的五种I/O模式
  7. 前端包管理工具 yarn
  8. matlab读取cvs文件的几种方法
  9. onkeyup+onafterpaste 只能输入数字和小数点
  10. MySQL - COUNT关键字
  11. pyinstaller spec
  12. Splay-Tree总结一:模拟队列
  13. mysql 5.6 datetime 保存精确到秒
  14. 关于Python IDLE reload(sys)后无法正常执行命令的原因
  15. 动态规划(dp)专题
  16. 【转】Android思维导图
  17. Easyui 页面设置加载完成之后,满屏
  18. keepalived的log
  19. The Ph.D. Grind
  20. [转载]jsonp详解

热门文章

  1. 【javaScript基础】异常处理
  2. Java高级特性 第7节 多线程
  3. 我发起了一个 用 C# 写 的 浏览器 开源项目 HtmlCore
  4. sql server数据库入门
  5. 页面滚动图片等元素动态加载插件jquery.scrollLoading.js
  6. CentOS7.3安装Go运行和开发环境
  7. net use远程重启服务器
  8. [android]adb 模拟双击 快速点击屏幕
  9. 文件下载及header方法介绍
  10. Ubuntu16.04主题美化