有没有办法通过我的 docker 镜像在硒网格上运行我的 python 测试?



我正在尝试运行我的python应用程序,该应用程序通过将测试用例捆绑到docker映像中来由测试用例组成。然后在Chrome和Firefox节点上的硒网格上运行它们。

我无法通过为我的 python 应用程序构建 docker 映像来成功运行我的应用程序。

1-我尝试构建我的映像,将其推送到我的docker中心,并通过将所有服务(Selenium网格,节点,应用程序(一起使用的docker-compos文件检索它。

2 - 我尝试将我的映像与 docker 撰写文件分开构建。在组成(硒网格和节点(之后;我手动为 python 应用程序构建我的 docker 映像,并使用 {docker run [image-name]} 来运行应用程序。

以上两种方法都不适合我。

Dockerfile for python app

FROM python: latest
WORKDIR /app
COPY ./myapp /app
RUN pip install -r /app/requirements.txt
CMD ["pytest","-n2","-s"]

Docker-compose 文件

我需要网络吗? 如果没有我在这个 docker-compose 文件中创建的网络,我能实现我想要的吗?

version: '3.7'
services:
hub:
image: selenium/hub:3.141.59
networks:
q2cnw: {}
environment:
- GRID_MAX_SESSION=50
- GRID_BROWSER_TIMEOUT=60000
- GRID_TIMEOUT=60000
- GRID_NEW_SESSION_WAIT_TIMEOUT=60000
- GRID_MAX_INSTANCES=3
ports:
- 4444:4444
chrome:
image: selenium/node-chrome-debug
depends_on:
- hub
networks:
q2cnw: {}
environment:
- HUB_PORT_4444_TCP_ADDR=hub
- HUB_PORT_4444_TCP_PORT=4444
ports:
- "9001:5900"
links:
- hub

firefox:
image: selenium/node-firefox-debug
depends_on:
- hub
networks:
q2cnw: {}
environment:
- HUB_PORT_4444_TCP_ADDR=hub
- HUB_PORT_4444_TCP_PORT=4444
ports:
- "9002:5900"
links:
- hub
app:
container_name: demo_pytest_app
image: {docker-image-from-repository}
networks:
q2cnw: {}
ports:
- "8080"
networks:
q2cnw:
driver: bridge

我的 conftest.py 文件

根据上面的docker-compose,URL是否有任何更改?

driver = webdriver.Remote(
command_executor="http://127.0.0.1:4444/wd/hub",
desired_capabilities=DesiredCapabilities.FIREFOX
)

预期成果: (这表明它运行了我的浏览器和抛出预期错误的应用程序;我很好(

try:
driver.find_element_by_xpath("//div[@class='alert alert-danger alert-dismissible']")
>           raise Exception("ERROR MESSAGE BANNER PROBLEM")
E           Exception: ERROR MESSAGE BANNER PROBLEM

实际结果:

(我使用此命令运行 pytest 映像 -> [docker run -it pytest-image](

以下错误表示由于主机 URL 导致连接被拒绝。有谁知道当我们尝试通过 docker 映像将我们的应用程序连接到硒网格 + 节点时发生的此错误?

E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='127.0.0.1', port=4444): Max retries exceeded with url: /wd/hub/session (Caused by NewConnect
ionError('<urllib3.connection.HTTPConnection object at 0x7f29f02f2a10>: Failed to establish a new connection: [Errno 111] Connection refused'))

你能试试这个图像吗 - https://hub.docker.com/repository/docker/benjose22/selenium_pytest_remote

如何运行 -
第 1 步:按 https://github.com/SeleniumHQ/docker-selenium#via-docker-compose
旋转 Docker 撰写 第 2 步:docker run --network="host" -it -v ~/host_scripts:/src benjose22/selenium_pytest_remote:v1.0 test_sample.py

conftest.py可以像——

caps = {'browserName': os.getenv('BROWSER', 'firefox')}<br/>
self.browser = webdriver.Remote(command_executor='http://localhost:4444/wd/hub', desired_capabilities=caps)

相关内容

  • 没有找到相关文章

最新更新