如何在运行集成测试之前启动spring-boot应用程序

时间:2017-02-05 14:50:47

标签: maven gatling

我在我的spring-boot应用程序中使用Gatling插件来对作为应用程序的一部分公开的REST API进行性能测试,因此需要我的应用程序在gatling测试运行之前启动。

由于Gatling执行默认情况下与集成测试阶段相关联,所以我尝试分别使用启动 - 停止目标进行预集成阶段和集成后阶段,但同样低于错误:

  

[[错误]无法执行目标   org.springframework.boot:弹簧启动了Maven插件:1.5.1.RELEASE:启动   关于项目的(预集成测试):Spring应用程序没有启动   在配置的超时之前(30000ms - > [帮助1]]

只是补充一点,当应用程序启动时,运行的gatling目标mvn gatling:execute运行正常,但我想将其作为maven阶段的一部分运行。

1 个答案:

答案 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()
  })

}