У меня просто была эта проблема, и я решил ее так, что мне кажется более привлекательным. Это в основном ответ winstaan74, но с дополнительными битами, необходимыми для его работы.
У вас есть файл groovy вашей функции с именем скажем: MyJmeterFunctions.groovy:
package My.JmeterFunctions
public class MyHelloClass {
public void hello() {
println("Hello!");
}
}
Затем вы компилируете это из терминала:
$ groovyc -d myJmeterFunctions myJmeterFunctions.groovy
и превратите его в файл .jar в папке / lib вашей установки jmeter со всеми остальными файлами .jar, поставляемыми с jmeter
$ jar cvf /<>/apache-jmeter-2.8/lib/myJmeterFunctions.jar -C myJmeterFunctions.
Теперь перезапустите jmeter. Он не узнает о вашем новом .jar, пока вы не узнаете.
Наконец, у вас есть скрипт, из которого вы хотите запустить функцию hello (), на которую указывает / слушает ваше BSF-утверждение jmeter:
import My.JmeterFunctions.*
def my_hello_class_instance = new MyHelloClass();
my_hello_class_instance.hello();
И это то, что сработало для меня. Если вы предпочитаете организовать .jar в другую папку, чем jmeter / lib, я думаю, вы можете запустить jmeter используя (из здесь ):
$ jmeter -Jsearch_paths = / path / to / yourfunction.jar
Но я сам не пробовал.