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
-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(里面还有工作内推机会,毕竟我们是关系社会。)
复制代码 软件测试口试文档
我们学习必然是为了找到高薪的工作,下面这些口试题是来自阿里、腾讯、字节等一线互联网大厂最新的口试资料,而且有字节大佬给出了权威的解答,刷完这一套口试资料信赖各人都能找到满足的工作。
口试文档获取方式:
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |