当前位置: 首页 > news >正文

Docker+Selenium Grid搭建自动化测试平台

安装docker
yum install -y yum-utils
device-mapper-persistent-data
lvm2
yum-config-manager
–add-repo
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce -y
Create a Docker Network
docker network create grid
下载镜像
hub
docker pull selenium/hub:latest
chrome
selenium/node-chrome:latest
运行镜像
docker run -d -p 4442-4444:4442-4444 --net grid --restart: always --name selenium-hub selenium/hub:latest
docker run -d -p 5900:5900 --net grid -e SE_EVENT_BUS_HOST=selenium-hub
–restart: always
–shm-size=“2g”
-e SE_EVENT_BUS_PUBLISH_PORT=4442
-e SE_EVENT_BUS_SUBSCRIBE_PORT=4443
-e SE_NODE_SCREEN_WIDTH=1280
-e SE_NODE_SCREEN_HEIGHT=800
-e SE_NODE_MAX_SESSIONS=5
selenium/node-chrome:latest
VNC登录:
在这里插入图片描述
Vnc Server:IP:5900
password:secret
在这里插入图片描述
在这里插入图片描述

test

import time
from selenium.webdriver.chrome.options import Options
from selenium import webdriver# 定义远程浏览器的地址
remote_url = "http://10.1.2.218:4444"# 定义浏览器配置
chrome_options = Options()# 添加所需的浏览器选项
#chrome_options.add_argument('--headless')  # 设置无头模式
chrome_options.add_argument('--disable-gpu')  # 禁用 GPU 加速# 创建远程浏览器实例
driver = webdriver.Remote(command_executor=remote_url, options=chrome_options)# 将浏览器窗口最大化
driver.maximize_window()# 打开指定的网页
driver.get("https://www.baidu.com")
time.sleep(2)
driver.save_screenshot('screenshot1.png')
print("截图完成")# 关闭浏览器
driver.quit()

docker-compose.yml文件:

version: '3'
services:selenium-hub:image: selenium/hub:latestports:- 4442-4444:4442-4444networks:- gridrestart: alwaysselenium-node-chrome:image: selenium/node-chrome:latestenvironment:- SE_EVENT_BUS_HOST=selenium-hub- SE_EVENT_BUS_PUBLISH_PORT=4442- SE_EVENT_BUS_SUBSCRIBE_PORT=4443- SE_NODE_SCREEN_WIDTH=1280- SE_NODE_SCREEN_HEIGHT=800- SE_NODE_MAX_SESSIONS=5shm_size: 2gports:- 5900:5900networks:- gridrestart: alwaysnetworks:grid:

在这里插入图片描述

说明:
这个Docker Compose文件定义了两个服务:selenium-hub和selenium-node-chrome。selenium-hub服务使用selenium/hub:latest镜像,并将端口4442-4444映射到主机的相同端口。selenium-node-chrome服务使用selenium/node-chrome:latest镜像,并设置了事件总线主机、事件发布和订阅端口、屏幕宽度和高度以及最大会话数等环境变量。它还将共享内存大小设置为2GB(shm_size: 2g)。
这两个服务都连接到grid网络,以允许容器之间的通信。
在与docker-compose.yml文件相同的目录中运行docker-compose up -d,容器将在后台启动,您将拥有一个具有指定配置的Selenium Grid环境。
注意:在使用此YAML文件之前,请确保已在系统上安装了Docker Compose。

http://www.lryc.cn/news/128519.html

相关文章:

  • Django图书商城系统实战开发-总结经验之后端开发
  • LeetCode[1288]删除被覆盖区间
  • QT connect使用简单介绍
  • 【云原生】kuberneter中Helm入门到实践
  • 编译鸿蒙codelabs安装时报错
  • 设计模式
  • 用gdal库读取tif影像并填充边缘,并根据窗口大小滑动裁剪裁剪(包含gdal转PIL)
  • sqlserver数据库导出到mysql
  • 【抓包工具】whistle抓包工具分享
  • docker可视化工具Portainer
  • 售后服务管理系统哪家好?云部署的售后服务软件有什么优势?
  • laravel-admin之 解决上传图片不显示 $form->image(‘image‘); 及 $grid->column(‘image‘);
  • 运营商三要素 API:构建安全高效的身份验证系统
  • 使用 BERT 进行文本分类 (01/3)
  • layui第三方组件cron的使用
  • Linux 信号的基本概念
  • 神经网络基础-神经网络补充概念-31-参数与超参数
  • C# Linq源码分析之Take (二)
  • FPGA控制RGB灯WS2812B
  • 【Linux】【驱动】应用层和驱动层传输数据
  • 【第二阶段】kotlin函数引用
  • sip网络号角喇叭 sip音柱 POE供电广播音箱 ip网络防水对讲终端 sip网络功放
  • 【网络】传输层——TCP(滑动窗口流量控制拥塞控制延迟应答捎带应答)
  • Electron教程_编程入门自学教程_菜鸟教程-免费教程分享
  • LVS负载均衡DR(直接路由)模式
  • 14 anaconda+pycharm环境管理以及源管理
  • 【C语言程序设计】C语言基本数据类型与表达式(思考题)
  • Linux 网络发包流程
  • Python web实战之Django的AJAX支持详解
  • spring boot实现实体类参数自定义校验