And*_*ayi 4 selenium docker yarnpkg
在尝试使用 selenium docker 映像“selenium/standalone”进行 dockerise selenium End2End 测试时,我收到错误:从 selenium 服务器检索新会话时出错连接被拒绝!硒服务器启动了吗?是的,selenium 服务器根据控制台输出启动......有什么想法吗?
FROM selenium/standalone-chrome
USER root
# installing node
RUN apt-get update
RUN apt-get install -y curl
RUN curl -sL https://deb.nodesource.com/setup_7.x | bash
RUN apt-get install -y nodejs
RUN node -v
RUN npm -v
# Installing Yarn
#RUN rm -r /usr/local/bin/yarn
RUN npm install -g -y yarn
ENV PATH $PATH:/usr/local/bin/yarn
#copying files
WORKDIR /app
COPY . .
# debug
RUN ls -alh .
#installing yarn
RUN yarn install
EXPOSE 4444
RUN yarn
CMD yarn test
Run Code Online (Sandbox Code Playgroud)
问题是你解决这个问题的方法。查看您继承的图像,selenium/standalone-chrome该图像应该运行 Selenium 浏览器。现在,您正在此图像中添加测试并指定 CMD 来运行测试。
当您构建并启动此映像时,您不会获得任何浏览器,因为您已覆盖 CMD 来运行测试。当我们在 docker 中构建时,我们将依赖的服务保存在不同的容器中。大多数情况下,最好每个容器运行 1 个服务/进程。在您的情况下,当测试运行时,浏览器服务器进程丢失,因此这就是连接被拒绝的原因。
所以你需要在这里运行两个容器。一份用于测试selenium/standalone-chrome,一份用于您的测试。
此外,您的图像应该继承自 node: 而不是来自 selenium chrome 图像。在构建图像时,您不应该同时使用node -v和npm -v命令。它们会在您的最终图像中创建额外的图层
FROM node:7
USER root
# installing node
RUN apt-get update && apt-get install -y curl
# Installing Yarn
RUN npm install -g -y yarn
ENV PATH $PATH:/usr/local/bin/yarn
#copying files
WORKDIR /app
COPY . .
# debug
#installing yarn
RUN yarn install
RUN yarn
CMD yarn test
Run Code Online (Sandbox Code Playgroud)
现在您需要创建一个 docker-compose 文件来运行包含测试和 chrome 的组合
version: '3'
services:
chrome:
image: selenium/standalone-chrome
tests:
build: .
depends_on:
- chrome
Run Code Online (Sandbox Code Playgroud)
安装docker-compose并运行docker-compose up命令来运行上述组合。另外,在您的测试中,请确保使用 URL 作为http://chrome:4444/wd/hub并使用远程网络驱动程序,而不是本地驱动程序。
| 归档时间: |
|
| 查看次数: |
5272 次 |
| 最近记录: |