使用哪个Maven插件来进行JMeter测试?jmeter-maven-plugin还是chronos-jmeter-maven-plugin?

10
我需要设置性能测试,这些测试会由CI系统自动触发。为此,我想使用JMeter,因为已经存在一些脚本和经验,并且我想将其与Maven结合使用。
在寻找合适的插件时,我发现存在两个插件:
  1. jmeter-maven-plugin: http://wiki.apache.org/jmeter/JMeterMavenPlugin
  2. chronos-jmeter-maven-plugin: http://mojo.codehaus.org/chronos/chronos-jmeter-maven-plugin/usage.html

哪一个更好用?两个插件都似乎在目前得到维护和开发。有没有使用经验?甚至配置也很相似。

我希望能够获得一些提示,以便在不用玩弄这两个插件几天的情况下做出决定。


2
jmeter-maven-plugin不需要安装任何东西(除了显然的maven)。它从Maven中央库中获取所有要求,因此基本上是一个纯maven实现。 - Ardesco
4个回答

3

我还没有使用过.mvn文件和你提到的那些插件。

但是,如果我需要的话,我可以想出一种方法来做。

所以请考虑以下内容:您可以在无GUI模式下执行jmeter测试。

  1. 创建一个shell脚本包装器,它将以无GUI模式执行jmeter测试,例如(jmeter_exe.sh):

$JMETER_HOME/bin/jmeter.sh -n -t MY_LOAD_TEST.jmx -l resultFile.jtl

这将执行给定的脚本并将结果存储在.jtl文件中,您可以使用它来显示测试结果,也许这篇文章对您有用,目前不在话题范围内。

完成第一步后。

2.然后,您可以在项目根目录中创建目录scripts。接下来,您可以将以下内容放入pom.xml中:

<plugin>
  <artifactId>exec-maven-plugin</artifactId>
  <groupId>org.codehaus.mojo</groupId>
  <executions>
    <execution>
      <id>Run load Test</id>
      <phase>generate-sources</phase>
      <goals>
        <goal>exec</goal>
      </goals>
      <configuration>
        <executable>${basedir}/scripts/jmeter_exe.sh</executable>
      </configuration>
    </execution>
  </executions>
</plugin>

看,你的测试在生成源代码阶段执行了。使用你提到的插件可能会更容易,但我对那些没有了解,这是我能想到的。


感谢您的回答。我和我的同事想要在JMeter中准备和运行测试。一旦它们能够正常工作并且稳定,我们希望将它们放入Maven中以实现自动化。为了调试,我们希望再次在JMeter中运行这些测试。我想最好使用JMX文件来完成这个任务。 - Rick-Rainer Ludwig

2

关于 Apache 插件(lazerycode)的警告:

  • 该插件默认会禁止 JMeter 输出信息,需添加以下配置设置以避免此问题:
<configuration>  
    <suppressJMeterOutput>false</suppressJMeterOutput>  
    <!-- to override debug logging from the plugin (although also in jmeter.properties) -->  
    <overrideRootLogLevel>debug</overrideRootLogLevel>  
    <jmeterLogLevel>DEBUG</jmeterLogLevel>  
</configuration>
  • 查看源代码(版本1.8.1),似乎-Xms和Xmx被限制为512。

  • 插件会吞噬异常,因此您的测试可能会失败,但您不知道原因。看起来它们已经完成了,但没有提供结果。

  • jmeter mojo启动jmeter作为新的Java进程,但不提供任何参数以执行此操作的能力。因此,如果异常被吞噬(请参见上文),并且日志记录不足(可能不足),则很难调试该过程以查明问题所在。我们(我的同事)向进程执行添加了调试参数,并调试了jmeter调用以找出问题所在。

  • 直接运行jmeter以进行开发目的可以获得信息输出。我认为在jmeter UI输出中甚至更加详细。

我没有使用Chronos Mind。


版本1.9.0应该解决了您的一些问题。-Xms和-Xmx现在可配置。您还可以向JVM进程添加其他参数,以启动JMeter。我不确定您所说的“插件吞噬异常”是什么意思。 - Ardesco
@Ardesco,感谢您的更新。我们会检查一下...我得在机会出现时回顾一下异常被吞噬的情况。 - wmorrison365

2
使用jmeter-maven-plugin:http://wiki.apache.org/jmeter/JMeterMavenPlugin。这是事实上的标准,而且(如@Ardesco所提到的)它不需要安装任何东西,这使得你可以抽象出JMeter可执行文件的安装位置和所有这些问题...

0

JMeter Maven Plugin由@Ardesco更新,每次发布新版本时都会进行更新。它的文档非常完善,功能也非常完美。

它易于设置,并允许轻松添加插件,如JMeter-Plugins或商业插件,只要所需的库存在即可。

您可以阅读一个完整的博客,展示旧版本1.1.10的设置:

请确保您阅读了最新版本2.5.1(截至2017年11月)的文档:


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接