zoukankan      html  css  js  c++  java
  • selenium2学习:Selenium Grid2&Remote

    1       Selenium Grid2

    1.1     Selenium Grid2安装下载

    下载、配置并运行selenium Grid2。

    l  步骤1:下载slenium server

    下载地址:https://www.seleniumhq.org/download/

    成功下载:(FQ下载的)

     

    l  下载java8并配置java8(不再赘述)

    l  在cmd页面中进入slenium server所在目录,并执行如下命令进行启动

    java -jar selenium-server-standalone-3.12.0.jar

     

    Gird适用于设计帮忙进行分布式测试的工具,其整个结构由1个hub主节点和N个node代理节点组成。Hub永联管理各个代理节点的注册和状态信息,并且接收远程客户端代码的请求调用,然后再把请求的命令转发给代理节点来执行。

    l  启动hub

    java -jar selenium-server-standalone-3.12.0.jar -rode hub

    l  启动node

    java -jar selenium-server-standalone-3.12.0.jar -rode node

    hub默认端口号为4444,node默认端口号5555,若是同一台主机上要启动多个node,则需要注意指定端口号,可以通过下面方式来启动多个node节点。

    指定端口号命令:

    java -jar selenium-server-standalone-3.12.0.jar -rode node -port 5556

    java -jar selenium-server-standalone-3.12.0.jar -rode node -port 5557

    Grid可以根据用例中指定的平台配置信息把用例转发给符合匹配要求的测试代理。例如:你的用例中指定了要在linux上用firefox版本进行测试,那么Grid会自动匹配注册信息为linux且安装了firefox的代理节点,如果匹配成功,则转发测试请求,如果匹配失败则拒绝请求。

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

     

    1.2     Remote

    1.2.1      指定任一hub或node执行

    from selenium.webdriver import Remote
    from time import sleep
    
    #调用remote方法,可以指定任一hub或node执行
    driver = Remote(command_executor='http://127.0.0.1:5556/wd/hub', 
                    desired_capabilities={'platform': 'ANY',
                                          'browserName': 'chrome',
                                          'version': '',
                                          'javascriptEnabled': True
                                          }
                    )
    driver.get('http://www.baidu.com')
    driver.find_element_by_id("kw").send_keys("remote")
    driver.find_element_by_id("su").click()
    sleep(3)
    driver.quit()

    1.2.2      指定hub和多个node执行

    from selenium.webdriver import Remote
    
    #定义主机与浏览器
    lists={'http://127.0.0.1:4444/wd/hub':'chrome',
           'http://127.0.0.1:45933/wd/hub':'firefox',
           'http://127.0.0.1:5556/wd/hub':'internet explorer'
          }
    
    #通过不同浏览器执行脚本
    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.close()

    执行结果:3个浏览器依次执行

    1.1     远程Remote

    启动远程node的条件:

    l  本地hub和远程的node可ping通;

    l  远程主机必须安装有用例执行的浏览器和驱动,并且驱动要放在环境变量path的目录下

    l  远程主机必须安装java环境(需要运行selenium server)

    执行步骤:

    l  启动本机hub

    java -jar selenium-server-standalone-3.12.0.jar -rode hub

    l  在本机启动远程node

    java -jar selenium-server-standalone-3.12.0.jar -rode node -port 5555  -hub http://172.16.10.66:4444/grid/register

    注:172.16.10.66为本机地址

    执行文件修改为:

    lists={'http://127.0.0.1:4444/wd/hub':'chrome',

           'http://127.0.0.1:45933/wd/hub':'firefox',

           'http://1.2.2.1:5556/wd/hub':'internet explorer'

          }

    注:172.16.10.61为远程机器的地址。

     

     
  • 相关阅读:
    JAVA 大数据基本操作
    C++ set 基本操作
    JVM 线上故障排查基本操作
    Git基本常用命令
    Git 入门:概念、原理、使用
    30分钟学会如何使用Shiro
    做个男人,做个成熟的男人,做个有城府的男人
    Nginx的最基本功能以及简单配置
    博客网站
    单点登录原理与简单实现
  • 原文地址:https://www.cnblogs.com/jxba/p/9064062.html
Copyright © 2011-2022 走看看