zalenium是一种以容器方式来动态创建和管理本地Selenium Grid的扩展。它使用docker-selenium在本地运行基于Firefox和Chrome的测试。
前提条件
1、安装Docker Engin,版本 > = 1.11.1(可能适用于早期版本,尚未测试)。
2、docker daemon 正在运行(例如,docker info可以正常工作)。
准备
1、拉取 docker-selenium镜像。
docker pull elgalu/selenium
注:这里拉取的是非官方的docker-selenium镜像。
2、拉取zalenium镜像。
docker pull dosel/zalenium
运行
zalenium 用docker来动态按需扩展浏览器容器实例,所以我们需要将主机的docker.sock挂载到zalenium容器中。
--privileged 为可选项,建议运行zalenium的privileged参数,通过Haveged增加熵(entropy)水平节点注册过程的速度。因为它可以提高其性能。
docker run --rm -ti --name zalenium -p 4444:4444 -v /var/run/docker.sock:/var/run/docker.sock -v /tmp/videos:/home/seluser/videos --privileged dosel/zalenium start
停止运行
docker stop zalenium
快速测试
使用selenium.Remote连接云服务http://localhost:4444/wd/hub:
from selenium import webdriver import time caps = { 'platform': 'ANY', 'browserName': 'chrome', 'version': '', # 'zal:name': '测试百度搜索', # 指定zelenium中会话的名称 # 'zal:tz': 'Asia/Shanghai', # 设置zelenium中的时区 } dr = webdriver.Remote('http://localhost:4444/wd/hub', desired_capabilities=caps) dr.get('https://www.baidu.com') dr.find_element('id', 'kw').send_keys('2021') dr.find_element('id', 'su').click() dr.quit()
其他功能
Dashboard控制面板,在测试完成后,可以查看所有的测试的视频回放和日志。
可以在浏览器中访问:http://localhost:4444/dashboard查看。
注意:视频录制,默认在/tmp/videos文件夹可以找到保存的视频。
更多功能:https://opensource.zalando.com/zalenium/#docker