【问题标题】:How to run maven selenium project in docker (Maven + Selenium + java + TestNg + docker)如何在 docker 中运行 maven selenium 项目(Maven + Selenium + java + TestNg + docker)
【发布时间】:2020-01-26 01:35:39
【问题描述】:

我需要在 docker 中运行 selenium 测试用例。我提到的多篇文章都试过了。我可以在只设置了 selenium 的 docker 中运行测试用例。但我的项目是 maven build,我想在 docker 中运行。

项目设置:

  1. 带有 Java 的 Selenium 网络驱动程序
  2. Maven 作为构建工具
  3. TestNg 框架
  4. 通过 maven run config 运行测试用例,它运行在 testng.xml 中更新的测试用例

我从几篇有用的文章中了解到:

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

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

【问题讨论】:

    标签: java maven docker jar


    【解决方案1】:

    我没有使用 TestNg 的经验,但我使用以下配置在 docker 中通过 maven 运行 Selenium 测试:

    docker-compose.yml(这将允许您连接到单独的 selenium 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 中,确保包含 selenium 依赖项(见下文)。

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>${selenium.version}</version>
    </dependency>
    

    最后,“maven_container”的 docker 镜像。请注意,如果我们想在 docker-compose 中安装卷之前运行 mvn build 等,我们需要将本地 pom.xml 复制到生成的通用 pom.xml 上。

    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 .
    

    注意!在连接到它之前,您必须等待 selenium 服务器启动。如果您想使用 docker-compose up 命令运行测试,这是一个重要的考虑因素。

    【讨论】:

      猜你喜欢
      • 2021-10-02
      • 2018-04-06
      • 1970-01-01
      • 2021-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-11
      相关资源
      最近更新 更多