2012-07-31 66 views
10

我需要设置由CI系统自动运行的性能测试。为此我想使用JMeter,因为一些脚本和经验已经存在,我想将它与Maven结合起来。什么maven插件将被用于JMeter? jmeter-maven-plugin或chronos-jmeter-maven-plugin?

在我的研究进行合理的插件,我发现两个插件是现有的:

  1. JMeter的,Maven的插件: http://wiki.apache.org/jmeter/JMeterMavenPlugin
  2. 克罗诺斯-JMeter的,Maven的插件: http://mojo.codehaus.org/chronos/chronos-jmeter-maven-plugin/usage.html

哪一个更好用?两者似乎都在维持和发展中。有没有这方面的经验?即使配置是相似的。

我会很高兴得到一些提示,以帮助我放弃一些日子而不玩两个插件。

+2

jmeter-maven-plugin不需要安装任何东西(除了maven显然)。它将Maven中心的所有需求拉下来,所以它基本上是一个纯粹的Maven实现。 – Ardesco 2013-03-08 09:01:03

回答

3

我还没有使用带有maven的.jmx文件,特别是您提到的那些插件。

但我可以想出一个办法,如果我需要的话。

所以考虑这个,你可以在无gui模式下执行jmeter测试。

  1. 创建一个shell脚本,将在没有GUI模式下执行JMeter测试,例如(jmeter_exe.sh):

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

因此,这将执行给定的脚本和存储结果在.jtl文件中,您可以使用该文件来显示您的测试结果,可能this后将对您有用,现在关闭该主题。

完成第一步。

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> 

,瞧你的测试过程中会产生来源阶段执行。这可能是你提到的插件更容易,但我不知道这些,这是我刚才想到的。

+0

感谢您的回答。我和我的同事们想在JMeter中准备和运行测试。只要他们工作稳定,我们想把它们放到Maven中让它们自动化。对于调试,我们希望再次在JMeter中运行这些测试。我猜,这最好用JMX文件完成。 – 2012-08-02 08:03:42

2

使用jmeter-maven-plugin:http://wiki.apache.org/jmeter/JMeterMavenPlugin

这是事实上的(和@Ardesco上面提到的一样)它不需要安装任何东西,它可以抽象出JMeter可执行文件的安装位置以及所有这些类型的问题。

2

的Apache插件提醒一句(S)(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作为一个新的java进程启动jmeter,但没有提供为此执行提供任何参数的能力。因此,如果吞下异常(见上文),并且日志记录不够(它可能不是这样),调试过程以找出错误是不容易的。我们(我的同事)将调试参数添加到流程执行中,并调试jmeter调用以查明结果。

  • 您可以直接获得信息性输出,直接运行jmeter用于开发目的。我会说它在jmeter UI输出中更具信息性。

我没有使用chronos的头脑。

+0

版本1.9.0应该已经消除了您的一些担忧。 -Xms和-Xmx现在可配置。您现在也可以将其他参数添加到启动JMeter的JVM进程中。我不确定您的意思是“插件吞下异常”。 – Ardesco 2014-01-16 09:02:49

+0

@Ardesco,感谢您的更新。我们会检查出来......当机会出现时,我将不得不重新检查异常是否被吞噬。 – wmorrison365 2014-01-16 09:23:47

0

@Ardesco的JMeter Maven Plugin每次发布JMeter版本时都会更新。 这是非常有据可查的,完美的作品。

它很容易设置,只要需要的库,就可以轻松添加插件,如JMeter-Plugins或商业插件。

你可以阅读完整的博客显示了旧版本1.1.10的设置:

对于较新版本2.5.1(2017年11月)确保你阅读文档: