Selenium Grid 工作原理

Grid是一种分布式测试工具,整个结构由一个hub主节点和若干个node代理节点组成。 hub用来管理各个代理节点的注册和状态信息,并且接收远程客户端代码请求调用,然后把请求的命令再转发给代理代点来执行。针对验证不同的测试环境比如(操作系统、浏览器),得到不同环境下执行结果。可在主机上配置搭建多台虚拟机操作系统环境用于代理节点,在本机分发测试用例脚本至各台虚拟机代理节点运行。

下面在同一台主机上启动一个hub主节点和两个node分支节点,如下所示:

  • 启动本机hub主机:java -jar selenium-server-standalone-2.53.0.jar -role hub [默认4444端口]
  • 启动本机node分支节点:java -jar selenium-server-standalone-2.53.0.jar -role node -port 5555         java -jar selenium-server-standalone-2.53.0.jar -role node -port 6666

可通过浏览器访问Grid控制台:http://127.0.0.1:4444/grid/console,可查看到启动节点信息:

Remote应用

Remote作用是在配置测试用例在远程分机节点上执行,也就是相当于主机用例自动分发到远程主机执行用例,不需要copy代码过去。

下面在一台主机上启动一个hub主节点和一个node分支节点,另一台主机启动一个node分支节点如下所示:

  • 启动本机hub主机:java -jar selenium-server-standalone-2.53.0.jar -role hub [默认4444端口]
  • 启动本机node分支节点:java -jar selenium-server-standalone-2.53.0.jar -role node -port 5555
  • 在远程主机启动node分支节点:java -jar selenium-server-standalone-2.53.0.jar -role node -port 6666 -hub http://192.168.31.210:4444/grid/register
 #!/usr/bin/env python
# _*_ coding:utf-8 _*_
__author__ = 'YinJia' from selenium.webdriver import Remote #定义主机与浏览器
lists = {'http://127.0.0.1:4444/wd/hub': 'chrome',
'http://192.168.31.230:6666/wd/hub': 'internet explorer',
'http://127.0.0.1:5555/wd/hub': 'firefox'} #通过不同的浏览器执行脚本
for host, browser in lists.items():
print(host,browser)
driver = Remote(command_executor=host,
desired_capabilities={'platform': 'ANY',
'browserName': browser,
'version': '',
'javascriptEnabled': True
}
)
driver.get("http://www.baidu.com")
driver.find_element_by_id("kw").send_keys(browser)
driver.find_element_by_id("su").click()
driver.quit()

执行脚本,可看到远程主机192.168.31.230被执行用例。

还可以通过VisGrid工具来启动和管理节点,如下图所示:

Selenium_Grid的更多相关文章

  1. Selenium Grid分布式测试入门详解

    本文对Selenium Grid进行了完整的介绍,从环境准备到使用Selenium Grid进行一次完整的多节点分布式测试. 运行环境为Windows 10,Selenium版本为 3.5.0,Chr ...

  2. 配置selenium grid

    本文对Selenium Grid进行了完整的介绍,从环境准备到使用Selenium Grid进行一次完整的多节点分布式测试. 运行环境为Windows 10,Selenium版本为 3.5.0,Chr ...

随机推荐

  1. js复选框插件

    <div class="selectList selectQgClass" id="selectQgClass"> <div class=&q ...

  2. 洛谷 P3768 简单的数学题 解题报告

    P3768 简单的数学题 题目描述 由于出题人懒得写背景了,题目还是简单一点好. 输入一个整数\(n\)和一个整数\(p,\)你需要求出\((\sum_{i=1}^n\sum_{j=1}^n ijgc ...

  3. linux-----遇到的问题----tab键不补全sh文件不能运行

    在linux上部署tomcat,进入bin目录后 遇到了tab键不补全sh文件不能运行的情况. 如果自己输入sh文件名后也会报错: [x@web bin]$ ./startup.shbash: ./s ...

  4. 【loj6179】Pyh的求和

    Portal -->loj6179 Solution ​  这题其实有一个式子一喵一样的版本在bzoj,但是那题是\(m\)特别大然后只有一组数据  这题多组数据== ​    首先根据\(\v ...

  5. PhpStorm 快速查找文件 `Ctrl`+`Shift`+`N`

    PhpStorm 快速查找文件 `Ctrl`+`Shift`+`N`

  6. 前端PHP入门-032-异常处理-应用级别

    禁止显示错误 在php.ini配置文件中.我们可以控制php的错误显示状态. php.ini中有一个专门的配置项: display_errors 这个选项设置是否将错误信息输出到网页,或者对用户隐藏而 ...

  7. [DeeplearningAI笔记]序列模型3.1基本的 Seq2Seq /image to Seq

    5.3序列模型与注意力机制 觉得有用的话,欢迎一起讨论相互学习~Follow Me 3.1基础模型 [1] Sutskever I, Vinyals O, Le Q V. Sequence to Se ...

  8. 816B. Karen and Coffee 前缀和思维 或 线段树

    LINK 题意:给出n个[l,r],q个询问a,b,问被包含于[a,b]且这样的区间数大于k个的方案数有多少 思路:预处理所有的区间,对于一个区间我们标记其(左边界)++,(右边界+1)--这样就能通 ...

  9. elasticsearch ik中文分词器的安装配置使用

    安装步骤  https://github.com/medcl/elasticsearch-analysis-ik 以插件形式安装: [elsearch@localhost elasticsearch- ...

  10. PHP扩展--vld查看opcode代码

    vld安装 wget http://pecl.php.net/get/vld-0.13.0.tgz tar zxvf vld-0.13.0.tgz cd vld-0.13.0 /usr/local/p ...