2015-05-29 24 views
1

我已經編寫了一個用於JMeter的Java類,將該項目打包爲.jar文件,並將該文件移動到jmeter目錄中的lib/ext文件夾中。我已經看過關於如何進行的文件,但他們給出了矛盾的答案。使用JMeter(Bean Shell)運行Java類

第一種方法是使用BeanShell Sampler導入我的包和類,創建一個類的對象並以這種方式運行這些方法。我使用這個方法使用了比我想運行的類更簡單的文件結構的示例類。示例類使用以下BeanShell腳本。

import tools.JmeterTools; 
JmeterTools jt = new JmeterTools(); 
jt.foo(); 

當我嘗試使用此方法,因爲我要運行的類,它指出變量聲明是一個錯誤,類不能被發現。我認爲這是因爲我不明白要輸入什麼,因爲我的項目中的文件結構有點奇怪。

第二個使用BeanShell預處理器將jar添加到類路徑。這種方法我一直無法工作,但已經閱讀了許多其他人發現成功的說法。其工作原理如下:

addClassPath("directory path to jar\lib\ext\foo.jar"); 
JMeterTest jtm = new JMeterTest(); 
jmt.test(); 

會有人有哪種方式會更好地工作或就如何解決進口任何想法任何知識呢?

我一直使用BeanShell的腳本進口如下:

import client.JMeterTest; 

在我班上的第一名包線以下

import com.x.foo.client; 

回答

1

對於任何未來有此問題的人。其他人給出的答案是正確的。它不適合我,因爲我忘了Maven在製作jar時沒有在測試目錄中打包文件。

這個鏈接可能會有幫助,如果有人在將來做這個。 「找不到命令:MyItem(Java Generate test-jar along with jar file in test package

1

你需要讓你的罐子文件夾在JMETER_HOME/lib文件夾中。

lib/ext是JMeter的擴展/插件等,

一旦放置在您的罐子,你可能需要重新啓動JMeter的。

+0

當我把在/ lib文件夾JMeter的jar文件,當我在jmeter.bat批處理文件 – drpogue

1

從BeanShell中運行外部類應該正常工作給予以下先決條件滿足

  1. 你有依賴性測試位於JMeter classpath
  2. 需要重新啓動JMeter才能啓動新的庫文件
  3. 您需要提供完整的軟件包名稱和完整的類名稱(或通配符)才能導入。

    要麼

    import com.x.foo.client.JMeterTest; 
    

    import com.x.foo.client.*; 
    
  4. 最後,建議使用JSR223 Sampler並使用 「常規」 作爲語言。 Beanshell解釋器有嚴重的性能問題,因此將它用於非常「輕鬆」的變量修改,將變量轉換爲屬性等。爲了生成真正的負載,使用JSR223和groovy,因爲它實現了Compilable接口,因此可以實現類似於本機Java碼。請參閱Beanshell vs JSR223 vs Java JMeter Scripting: The Performance-Off You've Been Waiting For!指南,獲取有關安裝Groovy腳本引擎支持的詳細說明,基準和指導。

+0

單擊我下面的步驟,我越來越不再運行。 lang.String,java.lang.String)「爲構造函數,」試圖解決方法:getDescription()在未定義變量...「方法。我可以正確地導入模塊並聲明變量correclty,但我不能調用構造函數或方法。 –