分布式selenium grid 搭建方法:
https://testdriven.io/blog/distributed-testing-with-selenium-grid/
https://blog.csdn.net/liwei_721/article/details/105109798
SeleniumHQ/docker-selenium github code:
https://github.com/SeleniumHQ/docker-selenium
基于Docker compose Selenium Grid 搭建分布式測試環(huán)境
https://techblog.dotdash.com/setting-up-a-selenium-grid-with-docker-containers-for-running-automation-tests-c43aceccd5d9
https://nitinbhardwaj6.medium.com/selenium-grid-with-debug-docker-containers-23eceb6ab17f
version: "3"
services:
hub:
image: selenium/hub:3.141.59
ports:
- "4444:4444"
environment:
GRID_MAX_SESSION: 16
GRID_BROWSER_TIMEOUT: 3000
GRID_TIMEOUT: 3000
chrome:
image: selenium/node-chrome-debug
container_name: web-automation_chrome
depends_on:
- hub
environment:
HUB_PORT_4444_TCP_ADDR: hub
HUB_PORT_4444_TCP_PORT: 4444
NODE_MAX_SESSION: 4
NODE_MAX_INSTANCES: 4
volumes:
- /dev/shm:/dev/shm
ports:
- "9001:5900"
links:
- hub
firefox:
image: selenium/node-firefox-debug
container_name: web-automation_firefox
depends_on:
- hub
environment:
HUB_PORT_4444_TCP_ADDR: hub
HUB_PORT_4444_TCP_PORT: 4444
NODE_MAX_SESSION: 2
NODE_MAX_INSTANCES: 2
volumes:
- /dev/shm:/dev/shm
ports:
- "9002:5900"
links:
- hub
Docker Selenium Grid Setup:增加 node number and session number
https://dev.to/automationbro/docker-selenium-grid-setup-1lg4
Increasing the MAX_INSTANCES & MAX_SESSIONS for the Grid
So far we just have 1 instance of Chrome & Firefox, however, if you need to run multiple tests together, you'll need more instances spun up. You can do that quite easily by adding the parameters when running the docker container for Chrome and Firefox.
docker run -d --net grid -e HUB_HOST=selenium-hub -e NODE_MAX_INSTANCES=3 -e NODE_MAX_SESSION=3 -v /dev/shm:/dev/shm selenium/node-chrome-debug:3.141.59–20210422
You can pass NODE_MAX_INSTANCES and NODE_MAX_SESSION environment variables to add multiple instances of the browsers.
- NODE_MAX_INSTANCES: number of instances of the same version of the browser
- NODE_MAX_SESSION: number of browsers (any versions) that can run in parallel
Once you do that, you will see something like this below?:
https://testdriven.io/blog/distributed-testing-with-selenium-grid/
騰訊官網(wǎng)的doc:
https://cloud.tencent.com/developer/article/1634286
如何安裝制定版本額docker-compose
1.查找到響應(yīng)版本
https://github.com/docker/compose/releases
2.安裝的cmd
https://docs.docker.com/compose/install/
清除(關(guān)閉全部容器) :docker kill (docker ps -a -q)
再次查看容器情況狠轻,運(yùn)行:docker ps –a 發(fā)現(xiàn)整個世界都清凈了礁蔗。
清除(關(guān)閉全部容器) :docker kill (docker ps -a | grep selenium)
再次查看容器情況,運(yùn)行:docker ps –a 發(fā)現(xiàn)整個世界都清凈了蚤霞。
Selenium Grid and Docker:
https://nazarkhimin.medium.com/selenium-grid-and-docker-25a79f0b9007
# To execute this docker-compose yml file
# use `docker-compose -f docker-compose.yml up --build --abort-on-container-exit --scale chrome=2 --scale firefox=2`
version: "3"
services:
firefox:
image: selenium/node-firefox-debug
volumes:
- /dev/shm:/dev/shm
- /home/admin/selenium/files/Certificate:/home/admin/selenium/files/Certificate
ports:
- "5556:5900"
depends_on:
- hub
environment:
- TZ="UT"
- http_proxy=http://web-proxy.us.softwaregrp.net:8080
- https_proxy=http://web-proxy.us.softwaregrp.net:8080
- HUB_HOST=hub
networks: ['selenium-grid']
chrome:
image: selenium/node-chrome-debug
volumes:
- /dev/shm:/dev/shm
- /home/admin/selenium/files/Certificate:/home/admin/selenium/files/Certificate
ports:
- "5557:5900"
depends_on:
- hub
environment:
- TZ="UT"
- http_proxy=http://web-proxy.us.softwaregrp.net:8080
- https_proxy=http://web-proxy.us.softwaregrp.net:8080
- HUB_HOST=hub
networks: ['selenium-grid']
hub:
image: selenium/hub:3.141.59
ports:
- "4444:4444"
networks: ['selenium-grid']
networks: {selenium-grid: {}}
如何使用docker-compose mount:
https://code.visualstudio.com/remote/advancedcontainers/add-local-file-mount
-
Docker Compose: Update (or extend) your
docker-compose.yml
with the following for the appropriate service:version: '3' services: your-service-name-here: volumes: - /local/source/path/goes/here:/target/path/in/container/goes/here:cached - ~:/host-home-folder:cached - ./data-subfolder:/data:cached # ...
If you've already built the container and connected to it, run Remote-Containers: Rebuild Container from the Command Palette (F1) to pick up the change. Otherwise run Remote-Containers: Open Folder in Container... to connect to the container.
設(shè)置proxy in the container:
https://stackoverflow.com/questions/50149133/how-can-i-setup-a-proxy-in-a-selenium-chrome-container
如何使用K8S 搭建分布式 selenium:
https://github.com/alcounit/selenosis/issues/47
https://github.com/alcounit/selenosis#run-yout-tests
如何使用工具portainer監(jiān)控host主機(jī)的container 狀態(tài):
https://levelup.gitconnected.com/portainer-the-easy-way-to-manage-docker-a982a17146c1