2012-07-31 64 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月)確保你閱讀文檔: