我正在使用failafe插件进行集成测试,这在测试失败期间运行良好。执行post-integration-test
阶段,调用spring-boot:stop
。使用相同的模式,我想用Gatling进行性能测试。似乎gatling-maven-plugin
没有相同的功能,integration-test
阶段失败并不能保证post-integration-test
被调用。因此,spring-boot应用程序仍在运行,后续运行将无法启动。
我已经在互联网上搜索了几个小时寻找解决方案,但他们都只采取了一半的方式。它们展示了如何执行加特林测试,但没有说明如何在失败期间恢复。
使用gatling插件可以实现此功能吗?如果没有,我怎样才能在maven构建失败后直接调用post-integration-test
阶段?
答案 0 :(得分:0)
一个充分的解决方法是将spring-boot-maven-plugin
配置为不分叉。我的应用程序在构建失败期间(由于gatling断言失败)和构建成功期间按预期停止。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring.boot.version}</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
<execution>
<phase>pre-integration-test</phase>
<goals>
<goal>start</goal>
</goals>
</execution>
<execution>
<phase>post-integration-test</phase>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profile>
<id>performance</id>
<properties>
<skip.integration.tests>true</skip.integration.tests>
<skipTests>true</skipTests>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>false</fork>
</configuration>
</plugin>
<plugin>
<groupId>io.gatling</groupId>
<artifactId>gatling-maven-plugin</artifactId>
<version>${gatling-plugin.version}</version>
<executions>
<execution>
<goals>
<goal>execute</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>