Maven/Spring未正确运行jmeter测试

Maven/Spring未正确运行jmeter测试,spring,maven,spring-boot,jmeter,spring-boot-maven-plugin,Spring,Maven,Spring Boot,Jmeter,Spring Boot Maven Plugin,我正在尝试为spring应用程序自动执行jmeter性能测试 如果我运行应用程序,然后在一切正常后执行jmeter测试 但是如果我在不单独启动应用程序的情况下运行mvn-e-X verify,则会发生以下情况: 2016-12-20 14:01:17.303 INFO 2024 --- [lication.main()] com.nttdata.iam.Application : Started Application in 12.102 seconds (JVM r

我正在尝试为spring应用程序自动执行jmeter性能测试

如果我运行应用程序,然后在一切正常后执行jmeter测试

但是如果我在不单独启动应用程序的情况下运行
mvn-e-X verify
,则会发生以下情况:

2016-12-20 14:01:17.303  INFO 2024 --- [lication.main()] com.nttdata.iam.Application              : Started Application in 12.102 seconds (JVM running for 31.259)
[DEBUG] Spring application is not ready yet, waiting 500ms (attempt 26)
[DEBUG] Spring application is not ready yet, waiting 500ms (attempt 27)
这导致了

[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.4.2.RELEASE:start (start-app-before-jmeter) on project iam-demo-microservice: Spring application did not start before the configured timeout (30000ms -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.4.2.RELEASE:start (start-app-before-jmeter) on project iam-demo-microservice: Spring application did not start before the configured timeout (30000ms
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoExecutionException: Spring application did not start before the configured timeout (30000ms
    at org.springframework.boot.maven.StartMojo.waitForSpringApplication(StartMojo.java:176)
    at org.springframework.boot.maven.StartMojo.runWithMavenJvm(StartMojo.java:150)
    at org.springframework.boot.maven.AbstractRunMojo.run(AbstractRunMojo.java:234)
    at org.springframework.boot.maven.AbstractRunMojo.execute(AbstractRunMojo.java:170)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
    ... 20 more
[ERROR] 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
2016-12-20 15:17:38.820  INFO 1284 --- [       Thread-5] ationConfigEmbeddedWebApplicationContext : Closing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@5fa74304: startup date [Tue Dec 20 15:17:08 CET 2016]; root of context hierarchy
2016-12-20 15:17:38.820  INFO 1284 --- [       Thread-5] o.s.j.e.a.AnnotationMBeanExporter        : Unregistering JMX-exposed beans on shutdown
2016-12-20 15:17:38.820  INFO 1284 --- [       Thread-5] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'
我已经在谷歌上搜索了一段时间,试图找出答案,但我很困惑为什么它不起作用

my pom.xml的构建部分:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <executions>
                <execution>
                    <id>start-app-before-jmeter</id>
                    <goals>
                        <goal>start</goal>
                    </goals>
                    <phase>pre-integration-test</phase>
                    <configuration>
                        <fork>false</fork>
                    </configuration>
                </execution>
                <execution>
                    <id>post-integration-test</id>
                    <goals>
                        <goal>stop</goal>
                    </goals>
                    <phase>post-integration-test</phase>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>com.lazerycode.jmeter</groupId>
            <artifactId>jmeter-maven-plugin</artifactId>
            <version>2.0.3</version>
            <executions>
                <execution>
                    <id>jmeter-tests</id>
                    <phase>integration-test</phase>
                    <goals>
                        <goal>jmeter</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <testResultsTimestamp>false</testResultsTimestamp>
                <testFilesIncluded>
                    <jMeterTestFile>SimpleCustomerTestPlan.jmx</jMeterTestFile>
                </testFilesIncluded>
            </configuration>
        </plugin>
    </plugins>
</build>

org.springframework.boot
springbootmaven插件
在jmeter之前启动应用程序
开始
预集成测试
假的
整合后测试
停止
整合后测试
com.lazerycode.jmeter
jmetermaven插件
2.0.3
jmeter测试
集成测试
性能测试
假的
SimpleCustomerTestPlan.jmx

您缺少集成测试元素,这是我的:

<plugin>
                <groupId>com.lazerycode.jmeter</groupId>
                <artifactId>jmeter-maven-plugin</artifactId>
                <version>2.0.3</version>
                <executions>
                    <execution>
                        <id>execute-jmeter-tests</id>
                        <goals>
                            <goal>jmeter</goal>
                        </goals>
                        <phase>integration-test</phase>
                    </execution>
                </executions>
            </plugin>

com.lazerycode.jmeter
jmetermaven插件
2.0.3
执行jmeter测试
性能测试
集成测试

不,我不这么认为。它只是写在上面而不是下面。对于spring boot maven插件,您是否尝试使用false。或者,您的jmeter似乎有一个“wait timer”配置,可以在该等待计时器之后启动测试,如此行所示:起因:org.apache.maven.plugin.MojoExecutionException:Spring应用程序在配置的超时之前未启动(30000msI表示为true)