我需要将硒测试用例运行到docker中。我提到多篇文章都尝试过相同。我可以在仅设置了硒的docker中运行测试用例。但是我的项目是要在docker中运行的Maven构建。
项目设置:
我从一些有用的文章中了解到的内容:
但是我无法使该设置正常工作。
我没有使用TestNg的经验,但是我使用以下配置通过docker中的maven运行了Selenium测试:
docker-compose.yml(这将允许您连接到单独的硒docker容器)
image: selenium/standalone-firefox
volumes:
- /dev/shm:/dev/shm
ports:
- "4444:4444"
expose:
- 4444
maven_container:
build: . # uses Dockerfile
links:
- remote-webdriver
volumes:
- <your local volume>:<container volume>
stdin_open: true
tty: true
entrypoint: /bin/sh
在“ maven_container”的pom.xml中,请确保包括硒依赖性(请参见下文)。
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>${selenium.version}</version>
</dependency>
最后,是“ maven_container”的docker映像。请注意,如果要运行mvn build等,则需要在生成的通用pom.xml上复制本地pom.xml,然后才能在docker-compose中装载卷。
FROM zenika/alpine-maven
RUN apk update \
&& apk add ca-certificates wget \
&& update-ca-certificates
RUN apk add vim
RUN mvn archetype:generate -B \
-DarchetypeGroupId=net.alchim31.maven -DarchetypeArtifactId=<intended artifact ID> -DarchetypeVersion=1.7 \
-DgroupId=com.myproject -DartifactId=MyProject -Dversion=0.1-SNAPSHOT -Dpackage=com.scalascrape
WORKDIR /usr/src/app/MyProject
RUN rm pom.xml
COPY pom.xml .
注意!您必须在硒服务器上等待启动才能连接。如果要使用docker-compose up
命令运行测试,这是一个重要的考虑因素。