• 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为远程机器的地址。

     

     
  • 相关阅读:
    现在的代码,贴一下
    2014年七月写过的代码,现在看来,还有待改进呀
    第一次做技术论坛发博文,不知道说点啥
    04-树6. Huffman Codes--优先队列(堆)在哈夫曼树与哈夫曼编码上的应用
    04-树5. File Transfer--并查集
    04-树4. Root of AVL Tree-平衡查找树AVL树的实现
    03-树3. Tree Traversals Again (25)将先序遍历和中序遍历转为后序遍历
    03-树2. List Leaves (25) 二叉树的层序遍历
    二叉树的遍历:先序中序后序遍历的递归与非递归实现及层序遍历
    最大子序列和问题之算法优化
  • 原文地址:https://www.cnblogs.com/jxba/p/9064062.html
Copyright © 2020-2023  润新知