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并发进行了

  • 相关阅读:
    SQL Server 错误(待补充)
    PageLayoutControl的基本操作
    C#:MapControl基本操作代码整理
    ArcGis10.0常见错误
    TocControl控件图层无法显示问题
    ArcGIS 10 安装程序及破解文件
    C# 中运行exe程序
    MySQL触发器更新本表数据异常:Can't update table 'tbl' in stored function/trigger because it
    使用ZBar来读取条形码和二维码的方法
    初识MongoDB
  • 原文地址:https://www.cnblogs.com/nieliangcai/p/13570232.html
Copyright © 2011-2022 走看看