zoukankan      html  css  js  c++  java
  • docker Selenium-Grid环境搭建

    原理可以自行了解:

    总的来说 ,就是主节点和子节点,主节点发送任务request到子节点上,子节点收到命令并且执行

    那么怎么搭建这套环境呢,他们又是如何连接起来的呢

    一、主节点hub

    首先可以查看和selenium相关的镜像,找到我们需要启动的镜像

    这里使用 docker search selenium 可以查看

     这里我们选择selenium/hub镜像

    开启镜像,selenium/hub,命令如下:

    sudo docker run -d -p 4444:4444 -e GRID_MAX_SESSION=200 --restart=always --name hub selenium/hub

    docker run 可以直接运行镜像, 首先它会去docker中查看是否有镜像selenium/hub,如果没有则进入docker hub下载(docker pull selenium/hub),然后启动;反之,直接启动

    镜像启动成功:http://localhost:4444/grid/console 查看是否有启动,并且可以查看子节点

    二、子节点启动

    这里我使用的是docker search selenium找到的selenium/node-chrome和selenium/node-chrome-debug;

    debug中自带vnc server 可以共开发者调试

    开启debug镜像:

    sudo docker run -d -e NODE_MAX_INSTANCES=1 -e NODE_MAX_SESSION=1 --shm-size=5g -p 5900:5900 --link hub:hub --name node4 selenium/node-chrome-debug

    这里的5900端口暴露出来,才可以连接,否则会连接被拒:The connection was refused by the computer

    打开之后,需要输入密码:secret

    成功运行后,可以看到界面:

     三、运行脚本查看效果

    脚本:

    from selenium import webdriver
    
    # 连接到主节点
    driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub',
                              desired_capabilities={'browserName': 'chrome'})
    
    driver.get('https://www.baidu.com/')
    
    driver.find_element_by_id("kw").send_keys("小心走火")
    driver.find_element_by_id("su").click()

    运行脚本:内容如下

    注意: 只运行一个case时,docker按顺序选择node节点运行一次该case。这样开多个node节点,然后使用多线程运行,即可将case并发进行了

  • 相关阅读:
    mapx 32位在win8 64位上使用
    ora01940 无法删除当前连接的用户
    powerdesigner操作
    iis7文件夹 首页设置
    安装vs2013以后,链接数据库总是报内存损坏,无法写入的错误
    【ASP.NET】 中 system.math 函数使用
    Android Bundle类
    android intent 跳转
    vs2012 webservice创建
    Linux中的日志分析及管理
  • 原文地址:https://www.cnblogs.com/nieliangcai/p/13570232.html
Copyright © 2011-2022 走看看