Ubuntu下安装Docker
安装Docker命令
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
也可以使用国内 daocloud 一键安装命令:
curl -sSL https://get.daocloud.io/docker | sh
验证Docker
在/etc/下存在docker目录
创建 Hub 网络
docker network create hub
创建 Hub 容器
docker run --name hub -d --net hub -p 5442-5444:4442-4444 selenium/hub:4.0.0-rc-2-prerelease-20210923
--name:给启动的容器命名一个别名。
5442-5444:hub 与 node 的通信服务。
5444:提供 hub 的 web 图形界面服务。
创建chrome node
docker run -d --name nodeChrome --net hub -e SE_EVENT_BUS_HOST=hub --shm-size="2g" -e SE_EVENT_BUS_PUBLISH_PORT=4442 -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -v /dev/shm:/dev/shm selenium/node-chrome
创建firefox node
docker run -d --name nodeFirefox --net hub -e SE_EVENT_BUS_HOST=hub --shm-size="2g" -e SE_EVENT_BUS_PUBLISH_PORT=4442 -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -v /dev/shm:/dev/shm selenium/node-firefox
创建edge node
docker run -d --name nodeEdge --net hub -e SE_EVENT_BUS_HOST=hub --shm-size="2g" -e SE_EVENT_BUS_PUBLISH_PORT=4442 -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -v /dev/shm:/dev/shm selenium/node-edge
解释
-e SE_EVENT_BUS_HOST:主机A的IP地址
-e SE_EVENT_BUS_PUBLISH_PORT:总线publish端口(4442)
-e SE_EVENT_BUS_SUBSCRIBE_PORT:总线subscribe端口(4443)
–shm-size=“2g” :来使用主机的共享内存,防止容器崩溃,这是避免浏览器在 docker 容器内崩溃的已知解决方法,这里是 Chrome和Firefox的记录问题。2gb 的 shm 大小是任意的,但已知效果很好,您的特定用例可能需要不同的值,建议根据您的需要调整此值。
-v /dev/shm:/dev/shm:挂载数据卷前操作
代码
#coding = utf-8
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
import unittest,time
from selenium.webdriver.common.by import By
class grid(unittest.TestCase):
def setUp(self):
#CHROME浏览器
#capabilities = DesiredCapabilities.CHROME
#FIREFOX浏览器
#capabilities = DesiredCapabilities.FIREFOX
#Edge浏览器
capabilities = DesiredCapabilities.EDGE
self.driver = webdriver.Remote(command_executor="http://192.168.0.140:5444/wd/hub",desired_capabilities=capabilities)
self.driver.implicitly_wait(3)
self.driver.get("https://www.baidu.com")
def test_grid(self):
self.driver.find_element(By.ID, "kw").send_keys("大数据")
self.driver.find_element(By.ID,"su").click()
time.sleep(3)
self.assertEqual(self.driver.title,"大数据_百度搜索",msg="标题不对")
def tearDown(self):
self.driver.quit()
if __name__=="__main__":
unittest.main()
在浏览器中输入http://192.168.0.140:5444/ui/index.html#/
192.168.0.140为Hub的IP地址
其他参数:
1)–scale chrome=num
docker-compose up -d --scale chrome=num
num是要启动节点的数量,chrome是docker-compose文件中节点的名称
2)VNC_NO_PASSWORD=1
没有密码验证的情况下运行 VNC
3)VNC_VIEW_ONLY=1
仅查看模式下运行 VNC
4)-e SE_NODE_MAX_SESSIONS=10
增加每个容器的会话并发性
5)-e SE_OPTS= “–log-level FINE”
可以通过将环境变量传递给容器来增加日志输出
6)docker logs -f <容器 ID | 容器名称>
所有输出都发送到标准输出,因此可以通过运行检查
7)-e JAVA_OPTS=-Xmx512m
告诉节点事件总线在哪里,以便它可以注册自己。
8)-e SE_EVENT_BUS_SUBSCRIBE_PORT=4443
-e SCREEN_WIDTH=1366
-e SCREEN_HEIGHT=768
-e SCREEN_DEPTH=24
-e SCREEN_DPI=74
设置屏幕分辨率
9)-e SE_NODE_SESSION_TIMEOUT
网格URL和会话超时,默认300秒
10)-e E_SESSION_REQUEST_TIMEOUT=500
超时为 500 秒
11)-e SE_SESSION_RETRY_INTERVAL=2
重试间隔为 2 秒
12)-e SE_NODE_OVERRIDE_MAX_SESSIONS true
启用视频录制
13)-e START_XVFB=false
以无头模式运行,默认是true
Docker相关操作
显示当前所有docker镜像
r
oot@ubuntu:/home/jerry# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
selenium/node-firefox 4.0.0-rc-2-prerelease-20210923 92c3021e3c6c 18 months ago 1.08GB
selenium/node-chrome 4.0.0-rc-2-prerelease-20210923 65bf42806285 18 months ago 1.19GB
selenium/hub 4.0.0-rc-2-prerelease-20210923 1400a1793745 18 months ago 362MB
显示所有docker进程
root@ubuntu:/home/jerry# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b7878962f286 selenium/node-firefox:4.0.0-rc-2-prerelease-20210923 "/opt/bin/entry_poin…" 3 hours ago Up 3 hours 5900/tcp node5
e5ac0ab85e3d selenium/node-chrome:4.0.0-rc-2-prerelease-20210923 "/opt/bin/entry_poin…" 3 hours ago Up 3 hours 5900/tcp node4
793546faef29 selenium/hub:4.0.0-rc-2-prerelease-20210923 "/opt/bin/entry_poin…" 3 hours ago Up 3 hours 0.0.0.0:5442->4442/tcp, :::5442->4442/tcp, 0.0.0.0:5443->4443/tcp, :::5443->4443/tcp, 0.0.0.0:5444->4444/tcp, :::5444->4444/tcp hub4
停止docker
docker stop 前3个数字
删除docker
docker rm [-f] 前3个数字
-f:强制
有些stop后就被删除,有些stop后就需要rm掉。
删除镜像
root@ubuntu:/home/jerry# docker rmi 65b
Error response from daemon: conflict: unable to delete 65bf42806285 (must be forced) - image is being used by stopped container e5ac0ab85e3d
root@ubuntu:/home/jerry# docker rm e5a
e5a
root@ubuntu:/home/jerry# docker rmi 65b
Untagged: selenium/node-chrome:4.0.0-rc-2-prerelease-20210923
Untagged: selenium/node-chrome@sha256:6bda96feb8f3079558b2045c4fa8cfd7e15b87706aec33eba9ed58cbe685e396
Deleted: sha256:65bf428062856707a50a548a9d9949b74e427baadc7e0a98e8ab7dffda7ff64e
Deleted: sha256:85424fdd6cd791e1cfa32caa023ea358c3200cc56d2fc218e28be223ed1ea5f9
…
root@ubuntu:/home/jerry# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
建立Docker网络
root@ubuntu:/home/jerry# docker network create 网络名
显示Docker网络
root@ubuntu:/home/jerry# docker network ls
删除Docker网络
root@ubuntu:/home/jerry# docker network rm 网络ID
最后: 下方这份完整的软件测试视频学习教程已经整理上传完成,朋友们如果需要可以自行免费领取【保证100%免费】
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!
软件测试技术交流群社:786229024(里面还有工作内推机会,毕竟我们是关系社会。)
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。