我试过在jmeter中运行java类 我已将java代码放在BSF预处理器中 但是发生了以下错误:
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文件。
有人可以告诉我在jmeter中运行java类时包含哪个jar文件?
答案 0 :(得分:1)
最好使用Beanshell而不是Java。
BSF似乎存在包装问题,请参阅
与此同时,您可以获得所有BSF引擎的二进制分发版 对于BSF 2.4(以及稍微高级版本的BSF 2.4)来自 http://wi.wu-wien.ac.at/rgf/rexx/bsf4rexx/current/BSF4Rexx_install.zip。 解压缩zip-archive后,您会找到一个名为的jar文件 " BSF-v244-20080704.jar&#34 ;.用这个替换官方的BSF 2.4 版本(包含所有官方引擎以及" BSF_Log"和 " BSF_LogFactory"。)
提到的jar也有一些问题。
无论如何,对于性能和最新代码,最好使用JSR223 Sampler + Groovy +填写编译缓存键
答案 1 :(得分:1)
你使用的是jmeter的哪个版本?用2.9 jsr 223预处理器使用java语言对我来说很好。我认为jsr223- *元素正在取代beanchell- *和BSF- *元素,所以你可以尝试一下。
java和beanshell顺便说一句,如果你执行了很多,声称它很慢。您可以使用groovy和JSR223预处理程序。您可以在JSR223 sampler文档中看到有关缓存已编译代码的信息。
Beanshell和groovy主要是java代码兼容的,所以你可以使用java代码但不完全。纯java中任何更复杂的东西都无法在groovy和/或beanshell中编译。
如果您使用纯java,那么如果您可以使用Java Request采样器而不是预处理器,那么它是有意义的。如果技术上很难实现,最快的选择似乎是使用常规的jsr223预处理器并缓存已编译的代码。
希望这有帮助。