如何在docker中运行maven selenium项目(maven+;selenium+;java+;TestNg+;docker)

如何在docker中运行maven selenium项目(maven+;selenium+;java+;TestNg+;docker),java,maven,docker,jar,Java,Maven,Docker,Jar,我需要在docker中运行selenium测试用例。我引用的多篇文章都是同样尝试过的。我可以在docker中运行测试用例,docker只设置了selenium。但我的项目是maven build,我想在docker中运行它 项目设置: 使用Java的seleniumwebdriver Maven作为构建工具 TestNg框架 通过maven run config运行测试用例,该配置运行testng.xml中更新的测试用例 我从几篇有用的文章中了解到: 需要创建测试用例jar吗 创建映像并在do

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

项目设置:

  • 使用Java的seleniumwebdriver
  • Maven作为构建工具
  • TestNg框架
  • 通过maven run config运行测试用例,该配置运行testng.xml中更新的测试用例
  • 我从几篇有用的文章中了解到:

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

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

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

    docker-compose.yml(这将允许您连接到单独的selenium docker容器)

    图像:selenium/standalone firefox
    卷数:
    -/dev/shm:/dev/shm
    端口:
    - "4444:4444"
    揭露:
    - 4444
    maven_容器:
    建造:。#使用Dockerfile
    链接:
    -远程网络驱动程序
    卷数:
    - :
    标准开放:正确
    tty:是的
    入口点:/bin/sh
    
    在“maven_容器”中的pom.xml中,确保包含selenium依赖项(见下文)

    
    org.seleniumhq.selenium
    硒爪哇
    ${selenium.version}
    
    最后是“maven_容器”的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 .
    
    来自zenika/alpine maven的
    
    运行apk更新\
    &&apk添加ca证书wget\
    &&更新ca证书
    运行apk添加vim
    运行mvn原型:生成-B\
    -DarchetypeGroupId=net.alchim31.maven-DarchetypeArtifactId=-DarchetypeVersion=1.7\
    -DgroupId=com.myproject-DartifactId=myproject-Dversion=0.1-SNAPSHOT-Dpackage=com.scalascrape
    WORKDIR/usr/src/app/MyProject
    运行rmpom.xml
    复制pom.xml。
    
    注意!在连接到selenium服务器之前,您必须等待selenium服务器启动。如果要使用
    docker compose up
    命令运行测试,这是一个重要的考虑因素

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>${selenium.version}</version>
    </dependency>
    
    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 .