从Maven插件

时间:2016-09-21 06:58:07

标签: maven jmeter jmeter-maven-plugin

我正在尝试使用Maven插件为JMeter测试设置属性。我从this question的答案中按照pom.xml文件中的建议设置进行了操作,但是在运行测试时我的属性没有被提取。

pom.xml的相关部分:

<profiles>
    <profile>
        <id>jmeter-test</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>com.lazerycode.jmeter</groupId>
                    <artifactId>jmeter-maven-plugin</artifactId>
                    <version>2.0.3</version>
                    <executions>
                        <execution>
                            <id>jmeter-tests</id>
                            <goals>
                                <goal>jmeter</goal>
                            </goals>
                            <configuration>
                                <propertiesUser>
                                    <threadCount>5</threadCount>
                                    <environment>test</environment>
                                </propertiesUser>
                                <testResultsTimestamp>false</testResultsTimestamp>
                                <proxyConfig>
                                    <host>localhost</host>
                                    <port>8888</port>
                                </proxyConfig>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>

我正在尝试使用:${__P(threadCount)}${__P(environment)}访问我的JMeter测试中的变量。

运行时,我正在使用

mvn clean verify -Pjmeter-tests

我可以看到正在从输出中选择和使用代理配置:

[INFO] -------------------------------------------------------
[INFO]  P E R F O R M A N C E    T E S T S
[INFO] -------------------------------------------------------
[INFO] Invalid value detected for <postTestPauseInSeconds>.  Setting pause to 0...
[INFO]
[INFO] Proxy Details:

Host: localhost:8888


[INFO]
[INFO] Executing test: JMeterTests.jmx

不幸的是,propertiesUser值未被使用。我也可以使用命令行运行器,它按预期工作:

jmeter -n -t JMeterTests.jmx -Jenvironment=test -JthreadCount=5

关于为什么这不起作用的任何想法?

更多信息: 我一直在使用example project进行测试,看到预期的行为是<propertiesUser>下的配置应该填充文件target/jmeter/bin/user.properties。这没有发生,根本没有创建文件。

1 个答案:

答案 0 :(得分:0)

请参阅此常见问题:

https://github.com/jmeter-maven-plugin/jmeter-maven-plugin/wiki/FAQ

将配置移到执行块之外可以解决您的问题:

<profiles>
    <profile>
        <id>jmeter-test</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>com.lazerycode.jmeter</groupId>
                    <artifactId>jmeter-maven-plugin</artifactId>
                    <version>2.0.3</version>
                    <executions>
                        <execution>
                            <id>jmeter-tests</id>
                            <goals>
                                <goal>jmeter</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <propertiesUser>
                            <threadCount>5</threadCount>
                            <environment>test</environment>
                        </propertiesUser>
                        <testResultsTimestamp>false</testResultsTimestamp>
                        <proxyConfig>
                            <host>localhost</host>
                            <port>8888</port>
                        </proxyConfig>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>