2013-04-18 84 views
1

我曾嘗試在jmeter中運行java類。
我已經在BSF預處理器中放置了java代碼。
但是發生下列錯誤:如何在jmeter中使用java類?

ERROR - org.apache.bsf.BSFManager: Exception : java.lang.ClassNotFoundException: org.apache.bsf.engines.java.JavaEngine 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190 

我已經試過這link爲包括jar文件。 但我不知道我需要包含哪個jar文件。

有人能告訴我哪個jar文件包含在jmeter中運行java類嗎?

+0

你正在使用maven?如果不是隻有一個jar進入BSF [zip文件](http://ftp.unicamp.br/pub/apache//commons/bsf/binaries/bsf-bin-2.4.0.zip) –

+0

Thanks preis.I沒有使用maven.I已經將此jar複製到apache-jmeter/lib文件夾中,但沒有運氣。再次出現同樣的錯誤。 – Ami

+0

你能告訴你BSFSampler的代碼和配置嗎? –

回答

1

最好使用Beanshell而不是Java。

似乎是在BSF包裝問題,請參閱

在此期間,你可以得到所有BSF引擎 對BSF 2.4二進制分發(如以及來自 http://wi.wu-wien.ac.at/rgf/rexx/bsf4rexx/current/BSF4Rexx_install.zip的稍微高級的BSF 2.4)。 解壓縮該zip壓縮文件後,您會發現一個名爲 「bsf-v244-20080704.jar」的jar文件。只需將官方BSF 2.4替換爲 版本(其中包含所有官方引擎以及「BSF_Log」和 「BSF_LogFactory」)。

被提及的jar也有一些問題。

反正性能和最新的代碼,它是更好地使用JSR223採樣+的Groovy +填寫編譯緩存鍵

1

您正在使用哪個versoin JMeter的嗎?使用java語言的2.9 jsr 223預處理器對我來說工作得很好。我認爲jsr223- *元素正在取代beanchell- *和BSF- *元素,所以你可以試試看。

java和beanshell btw被聲稱緩慢,如果你有它執行了很多。你可以使用groovy和JSR223預處理器。您可以在JSR223 sampler文檔中看到有關緩存編譯後的代碼的信息。

Beanshell和groovy大多是java代碼兼容,所以你可以使用java代碼,但不是完全的。純java中任何更復雜的東西都可能無法在groovy和/或beanshell中編譯。

如果您使用純java,那麼使用Java Request採樣器代替預處理器是有意義的。如果技術上很難實現,最快的選擇似乎使用jsr223預處理器的groovy並緩存編譯的代碼。

希望這會有所幫助。