• 使用docker搭建selenium grid 分布式环境


      本文章只做docker搭建selenium grid 分布式环境步骤说明,对于selenium grid中的参数、流程、原理等不做说明。selenium grid的详细情况可查看官方文档https://wizardforcel.gitbooks.io/selenium-doc/official-site/selenium-grid.html

      Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 是一个用于开发,交付和运行应用程序的开放平台。Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助 Docker,您可以与管理应用程序相同的方式来管理基础架构。通过利用 Docker 的方法来快速交付,测试和部署代码,您可以大大减少编写代码和在生产环境中运行代码之间的延迟。
      使用docker 可以自动执行自动化测试用例和持续集成、发布。

    1、安装docker
      windows安装使用阿里云的镜像来下载docker toolbox,下载地址:http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/
      下载后安装默认安装即可。

     

      安装完成后会出现Oracle VM Virtualbox、Docker QuickStart she和Kitematic三个文件。

    Kitematic :这是 Docker 的 GUI 版本。
    Docker QuickStart shell :这是一个已经配置好Docker的命令行环境。
    Oracle VM Virtualbox:虚拟机。

     

    2、获取docker镜像
      打开 Docker QuickStart shell,可以看到启动后docker使用的Ip:192.168.99.100


    获取docker-selenium镜像,在github上有现成的镜像: https://github.com/SeleniumHQ/docker-selenium
    例如获取 selenium/hub 、 selenium/node-chrome、 selenium/node-chrome-debug 三个镜像。其中selenium/node-chrome-debug启动后会启动一个VNC Server,在脚本执行过程中,本地可以连上VNC Server,通过界面查看服务器的脚本执行情况。使用命令:

    $ docker pull selenium/hub
    $ docker pull selenium/node-chrome
    $ docker pull selenium/node-chrome-debug

     获取 selenium/hub 镜像:

      获取 selenium/node-chrome 镜像:

     

      获取 selenium/node-chrome-debug 镜像:

     

     

    3、运行docker镜像

      1、启动hub

    $ docker run -d -p 4444:4444 -e GRID_MAX_SESSION=100 --name hub selenium/hub


    参数说明:
    run:运行一个镜像,创建出一个容器。
    -p 5555:4444 :映射容器里端口。
    -d: 后台运行
    --name:容器名称,这里我就直接把这个容器成为hub

     

      2、启动node
      在hub节点中注册node节点

    $ docker run -d -p 5555:5555 -e NODE_MAX_INSTANCES=5 -e NODE_MAX_SESSION=5 --shm-size=2g --link hub:hub --name node1 selenium/node-chrome

      --link 是链接别名为hub的容器

      

      3、启动chrome-debug
      开启debug模式

    $ docker run -d -p 5900:5900 --link hub:hub selenium/node-chrome-debug

     

    4、查看运行的容器
    使用命令:docker ps -a

     

    5、访问hub节点查看配置
    ip为自己的docker的ip,也就是hub节点所在的服务器ip
    http://192.168.99.100:4444/grid/console

     

    4、安装VNC Viewer

      VNC (Virtual Network Console)是虚拟网络控制台的缩写。是一款优秀的远程控制工具软件,在基于 UNIX 和 Linux 操作系统的免费的开源软件,远程控制能力强大,高效实用。
      下载地址:https://www.realvnc.com/en/connect/download/viewer/

      打开后输入访问的机器IP,会要求输入密码,默认密码为 secret

     

    5、脚本运行
    编写python自动化脚本

    from time import sleep
    from selenium import webdriver
    
    
    driver = webdriver.Remote(
    command_executor='http://192.168.99.100:4444/wd/hub',
    desired_capabilities={'browserName': 'chrome'}
    )
    
    driver.get('https://www.baidu.com')
    print("start run")
    
    driver.find_element_by_id("kw").send_keys("docker selenium")
    driver.find_element_by_id("su").click()
    
    sleep(1)
    
    driver.quit()
    print("end...")

    运行脚本,运行后在VNC Viewer中可以观看到执行过程

  • 相关阅读:
    将python的代码文件打包成可执行文件
    SpringBoot整合JdbcTemplate连接Mysql
    Golang开发环境搭建
    java中的Lamdba表达式和Stream
    MySQL 优化1
    MySQL you *might* want to use the less safe log_bin_trust_function_creators variable
    MySQL mysqlbinlog
    MySQL 事件调度器
    MySQL 忘记密码解决办法
    MySQL 创建自定义函数(2)
  • 原文地址:https://www.cnblogs.com/tynam/p/12713506.html
Copyright © 2020-2023  润新知