在docker中分发CuCumber junit5测试

在docker中分发CuCumber junit5测试,cucumber,cucumber-jvm,Cucumber,Cucumber Jvm,我有一个cucumber项目正在azure构建和发布管道上运行 我已经安装了docker和docker compose,我可以通过docker compose 我想分发黄瓜测试,有点像。但在该链接中,使用testng对其进行了解释,我使用的是junit5和cucumber。我将如何做到这一点,特别是下面的链接部分,结合我们所知道的 据我所知,如果我在junit platform.properties中提到cucumber.execution.parallel.enabled=true,它将在每个

我有一个cucumber项目正在azure构建和发布管道上运行

我已经安装了docker和docker compose,我可以通过
docker compose

我想分发黄瓜测试,有点像。但在该链接中,使用
testng
对其进行了解释,我使用的是
junit5
和cucumber。我将如何做到这一点,特别是下面的链接部分,结合我们所知道的

据我所知,如果我在junit platform.properties中提到cucumber.execution.parallel.enabled=true,它将在每个功能文件中并行运行,我如何在下面提到
端口

  • 在一个容器中运行每个功能
  • 有没有办法在单独的容器中分发不同功能文件的每个场景

  • 通常,您会让CI运行。这个测试矩阵已经可以并行运行不同的作业。 矩阵中的每个作业都可以执行所有测试或一部分测试。您可以使用标记包括或排除某些作业配置上的某些测试。这可确保浏览器和操作系统特定的问题立即显现出来

    这也在某种程度上简化了问题。当您不使用不同的浏览器类型启动Selenium网格时,您不必找到一种聪明的方法将每个测试连接到正确的浏览器

    相反,每个作业只需启动具有一种浏览器类型的Selenium网格。网格启动后,每个作业都可以使用多个远程WebDriver并行运行测试。 然后,您需要注意的是确保您的测试不会尝试使用比网格可用的浏览器更多的浏览器。这可以通过设置一些配置参数来实现:

    cucumber.execution.parallel.enabled=true
    cucumber.execution.parallel.config.strategy=fixed
    cucumber.execution.parallel.config.fixed.parallelism=4 
    
    您必须在测试执行中使用这些。实现这一点的一种方法是使用maven概要文件,但还有许多其他方法:

    
    相似
    org.apache.maven.plugins
    maven故障保护插件
    cumber.execution.parallel.enabled=true
    cumber.execution.parallel.config.strategy=fixed
    cumber.execution.parallel.config.fixed.parallelism={env.CONCURRENT_TESTS}
    
    你可以这样把它绑在一起:

    测试:
    阶段:测试
    脚本:
    -./start selenium grid$BROWSER$并发测试
    -mvn测试-并行性
    平行:
    矩阵:
    -操作系统:Windows
    操作系统版本:10
    浏览器:[Chrome、Firefox、Edge]
    并行测试:4
    -OS:OSX
    OS_版本:大苏尔
    浏览器:[Chrome、Firefox、Edge、Safari]
    并行测试:2
    

    总而言之。首先为不同的浏览器并行运行构建作业。然后在每个作业中,对多个web驱动程序并行运行测试。

    您正在混合来自
    cucumber-junit
    cucumber-junit平台引擎的指令。他们完全不同。一个用于JUnit4,另一个用于JUnit平台(junit5)。我们如何实现上述任务?如果让我们在矩阵中为一个浏览器打开一个容器。在这个作业中,我们如何控制在哪个容器上运行哪个功能文件。如果有一种方法可以控制场景,那就更好了。这就是标签的用途。
    
    cucumber.execution.parallel.enabled=true
    cucumber.execution.parallel.config.strategy=fixed
    cucumber.execution.parallel.config.fixed.parallelism=4