2015-05-29 1 views
1

Я написал Java-класс для использования в JMeter, упаковал проект как .jar-файл и переместил его в папку lib/ext в каталоге jmeter. Я видел документацию о том, как действовать, но они дают противоречивые ответы.Запуск Java-класса с JMeter (Bean Shell)

Первый способ использования BeanShell Sampler - импортировать мой пакет и класс, создать объект класса и запустить методы таким образом. Я использовал этот метод, используя примеры классов с более простыми файловыми структурами, чем класс класса, который я хочу запустить. Примеры классов работают со следующим скриптом BeanShell.

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

Когда я пытаюсь использовать этот метод для класса я хочу бежать, он утверждает, что объявление переменной является ошибкой и класс не может быть найден. Я предполагаю, что это потому, что я не понимаю, что именно импортировать, поскольку файловая структура в моем проекте немного странная.

Второй использует BeronShell PreProcessor, чтобы добавить банку в путь класса. Этот метод, с которым я вообще не смог работать, но прочитал много сообщений о том, что другие находят успех. Она работает следующим образом:

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 не упаковывает файлы в тестовый каталог, когда была создана банка.

Эта ссылка может помочь, если кто-либо сделает это в будущем. не Generate test-jar along with jar file in test package

1

Вы должны иметь свой кувшин файл в папке JMETER_HOME/lib.

lib/ext для расширения JMeter/плагины и т.д.

После того, как вы разместили свой кувшин, вы, возможно, придется перезапустить JMeter.

+0

Когда я поместить файл банку в/Lib папку JMeter больше не работает, когда я нажимаю на 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, поскольку она реализует компилируемый интерфейс и, следовательно, вы можете добиться производительности, аналогичной собственной Java код. См. Beanshell vs JSR223 vs Java JMeter Scripting: The Performance-Off You've Been Waiting For! руководство для подробного объяснения, бенчмаркинга и инструкций по установке поддержки строгих скриптовых двигателей.

+0

я после этих шагов, и я получаю: «Команда не найдена: MyItem (Java. lang.String, java.lang.String) "для конструктора и" ttempt для решения метода: getDescription() для неопределенной переменной ... "для методов. Я могу правильно импортировать модуль и объявлять переменные correclty, но я не могу вызвать конструкторы или методы. –

Смежные вопросы