我在我的spring-boot应用程序中使用Gatling插件来对作为应用程序的一部分公开的REST API进行性能测试,因此需要我的应用程序在gatling测试运行之前启动。
由于Gatling执行默认情况下与集成测试阶段相关联,所以我尝试分别使用启动 - 停止目标进行预集成阶段和集成后阶段,但同样低于错误:
[[错误]无法执行目标 org.springframework.boot:弹簧启动了Maven插件:1.5.1.RELEASE:启动 关于项目的(预集成测试):Spring应用程序没有启动 在配置的超时之前(30000ms - > [帮助1]]
只是补充一点,当应用程序启动时,运行的gatling目标mvn gatling:execute
运行正常,但我想将其作为maven阶段的一部分运行。
答案 0 :(得分:7)
我使用下面的代码。下面的代码将在您想要的配置文件中启动spring应用程序,然后继续运行您的测试。 ShutdownHook将关闭服务。
class MicroserviceServiceSimulation extends Simulation {
System.setProperty("spring.profiles.default", System.getProperty("spring.profiles.default", "it"));
val app: ConfigurableApplicationContext = SpringApplication.run(classOf[YourApplication])
Runtime.getRuntime.addShutdownHook(new Thread() {
override def run(): Unit = app.stop()
})
}