如何在docker中运行Maven硒项目(Maven + Selenium + java + TestNg + docker)

问题描述 投票:0回答:1

我需要将硒测试用例运行到docker中。我提到多篇文章都尝试过相同。我可以在仅设置了硒的docker中运行测试用例。但是我的项目是要在docker中运行的Maven构建。

项目设置:

  1. 带有Java的Selenium webdriver
  2. Maven作为构建工具
  3. TestNg框架
  4. 通过maven运行配置运行测试用例,该配置运行在testng.xml中更新的测试用例

我从一些有用的文章中了解到的内容:

  • 需要创建测试用例jar
  • 创建映像并在docker中运行该映像。

但是我无法使该设置正常工作。

java maven docker jar
1个回答
0
投票

我没有使用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命令运行测试,这是一个重要的考虑因素。

© www.soinside.com 2019 - 2024. All rights reserved.