软件测试|Selenium Grid作用是什么? Selenium Grid 的使用过程?

举报
霍格沃兹测试开发 发表于 2023/01/05 16:33:53 2023/01/05
【摘要】 问题Selenium Grid作用是什么? Selenium Grid 的使用过程? 考察点面试官想了解:Selenium Grid是否使用过Selenium Grid对应组件流转 技术点涉及的技术点:Selenium Grid 回答 SeleniumGrid 作用Selenium Grid 是 Selenium 的三大组件之一,它可以在多台机器上并行运行测试,集中管理不同的浏览器版本和浏...

问题

Selenium Grid作用是什么? Selenium Grid 的使用过程?

考察点

面试官想了解:

  • Selenium Grid是否使用过
  • Selenium Grid对应组件流转

技术点

涉及的技术点:

  • Selenium Grid

回答

SeleniumGrid 作用

Selenium Grid 是 Selenium 的三大组件之一,它可以在多台机器上并行运行测试,集中管理不同的浏览器版本和浏览器配置。通过将客户端命令发送到远程浏览器的实例, Selenium Grid 允许在远程计算机 (虚拟或真实) 上执行 WebDriver 脚本. 它提供一种在多台计算机上并行运行测试的简便方法。

使用场景

场景一: 实现分布式执行测试,提高执行效率
比如:我们有 1000 条用例执行,如果在本机执行,一条用例耗时 100 秒,执行完成则需要大约 27 小时 1000*100/60/60=27个小时。如果让这些用例并发执行,比如分配 6 台计算机,每个计算机执行 1000/6 大约 166 条用例,那时间大约节省了 6 倍,原来需要大约 27 个小时,现在可能只需要 4.5 个小时左右就基本完成了, 分布式并发执行可以让我们用例的执行总时长指数级的缩小,从而效率得到很大的提升。

场景二: 解决浏览器兼容性问题

比如还是 1000 条用例,需要分别在 Chrome、Firefox、Edge、Safari 这些浏览器上都执行一遍,保证每个浏览器上都能正常执行,测试浏览器的兼容性。这时也可以使用 Selenium Grid,通过 Selenium Grid 将这些请求分发到不同的系统、不同浏览器中执行。这些浏览器可以分别布署在不同的计算机中比如可以布署在 Linux 、Windows、Mac 上都可以,作为它的 Node 结点,从而解决兼容性测试的问题

执行过程

在这里插入图片描述

Client是本地IDEA要执行的测试用例。

  • 1.Client的测试用例通过HTTP协议发送请求给路由Router

RouterSelenium Grid 内的一个处理器/组件,也是Selenium Grid的入口。

  • 2.Router接受请求并立即进行分发。

    创建一个新的Session会话同时分配对应的Node节点机器。

Router作用把请求从路由Router发送到Node的机器节点。

  • 3.路由Router进行请求分发。

新请求

接收是一个新请求时,路由Router此时不知往哪个Node节点上发送该请求。

  • 3.1.1 新请求时,路由Router将请求发送给分发器Distributor

分发器 Distributor 读取Client脚本的DesiredCapability属性,从中获取用例的 操作系统Platform浏览器browserName 属性。

  • 3.1.2 Distributor根据属性值把请求发送给符合的 Node节点 ,同时 创建session会话对象 Session Map

Session会话创建时会产生一个Session ID分发器 Distributor会把Session ID与对应的Node节点URI地址一一对应存储在 Session Map 中。

  • 3.1.3 Session Map会把Session ID与对应的Node发送给Router路由,Router路由再发送给客户端Client

会话的职责就是创建一个简单的映射,其中包含正在执行的测试用例的Session会话ID及其执行的物理机器Node的地址

已存在的请求

接收是一个已存在的请求时,路由Router直接从Session Map中根据对应的Session ID查找到Node节点的URI地址,把用例请求发送到对应节点上直接运行即可。

  • 3.2.1 已存在的请求时,路由Router将请求根据Session Map中对应关系直接把请求发送给Node节点。

以上是SeleniumGrid的各个组件之间的执行过程。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。