zoukankan      html  css  js  c++  java
  • 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工具来启动和管理节点,如下图所示:

  • 相关阅读:
    Python3之命令行参数处理
    基于 Laradock 环境 Project 的总结
    Typora功能新发现-自动复制图片到指定目录下
    ubuntu 18.04 设置静态ip方法
    vscode 同时编辑多处,多个光标 快捷键
    nginx和ftp搭建图片服务器
    Centos 6.5出现yum安装慢的情况
    Linux中的CentOS 6克隆之后修改
    springMVC-文件上传CommonsMultipartFile
    Spring和mybatis整合 org.mybatis.spring.mapper.MapperScannerConfigurer
  • 原文地址:https://www.cnblogs.com/yinjia/p/9503351.html
Copyright © 2011-2022 走看看