Selenium_Grid

Posted yinjia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Selenium_Grid相关的知识,希望对你有一定的参考价值。

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
 1 #!/usr/bin/env python
 2 # _*_ coding:utf-8 _*_
 3 __author__ = YinJia
 4 
 5 
 6 from selenium.webdriver import Remote
 7 
 8 #定义主机与浏览器
 9 lists = {http://127.0.0.1:4444/wd/hub: chrome,
10          http://192.168.31.230:6666/wd/hub: internet explorer,
11          http://127.0.0.1:5555/wd/hub: firefox}
12 
13 #通过不同的浏览器执行脚本
14 for host, browser in lists.items():
15     print(host,browser)
16     driver = Remote(command_executor=host,
17                     desired_capabilities={platform: ANY,
18                                           browserName: browser,
19                                           version: ‘‘,
20                                           javascriptEnabled: True
21                                           }
22                     )
23     driver.get("http://www.baidu.com")
24     driver.find_element_by_id("kw").send_keys(browser)
25     driver.find_element_by_id("su").click()
26     driver.quit()

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

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

技术分享图片

以上是关于Selenium_Grid的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段——CSS选择器

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

片段和活动之间的核心区别是啥?哪些代码可以写成片段?

VSCode自定义代码片段——.vue文件的模板

VSCode自定义代码片段6——CSS选择器

VSCode自定义代码片段——声明函数