Объявление типизированной переменной Jmeter: вызов метода

У меня проблема при использовании препроцессора Jmeter BeanShell. Сценарий вызывает jar-файлы, которые я поместил в каталог «D: \ Software \ apache-jmeter-3.0 \ lib \ ext». введите здесь описание изображения

вот мой код BeanShell:

import com.evergrande.api.test.JsonClientUtil;
import com.evergrande.common.utils.JsonUtil;
import com.fasterxml.jackson.databind.node.ObjectNode;

JsonClientUtil jcu=new JsonClientUtil();
ObjectNode node = JsonUtil.createObjectNode();//when I try to use the method in JsonUtil(Class),it came out error

Ошибка:

2016/09/24 22:48:06 ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval   Sourced file: inline evaluation of: ``import com.evergrande.api.test.JsonClientUtil; import com.evergrande.common.util . . . '' : Typed variable declaration : Method Invocation JsonUtil.createObjectNode 
2016/09/24 22:48:06 WARN  - jmeter.modifiers.BeanShellPreProcessor: Problem in BeanShell script org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval    Sourced file: inline evaluation of: ``import com.evergrande.api.test.JsonClientUtil; import com.evergrande.common.util . . . '' : Typed variable declaration : Method Invocation JsonUtil.createObjectNode 

Я могу вызвать метод createObjectNode в своем Java-коде. Итак, как я могу исправить эту проблему? Спасибо вам всем.


person TavisD    schedule 24.09.2016    source источник


Ответы (1)


  1. Не помещайте jar-файлы в папку lib/ext, ее следует использовать только для основных компонентов и плагинов JMeter. Поместите свои библиотеки .jar в папку "lib" в другом месте, они просто должны быть в JMeter's Claspath. Альтернативный вариант - использовать параметр Add directory or jar to classpath на уровне плана тестирования

    дополнительные банки к пути к классам

  2. Требуется перезапуск JMeter, чтобы поднять фляги.
  3. Вы можете получить более читаемое сообщение об ошибке Beanshell, заключив в коде try / catch заблокировать лайк

    import com.evergrande.api.test.JsonClientUtil;
    import com.evergrande.common.utils.JsonUtil;
    import com.fasterxml.jackson.databind.node.ObjectNode;
    
    try {
        JsonClientUtil jcu=new JsonClientUtil();
        ObjectNode node = JsonUtil.createObjectNode();
    }
    catch (Throwable ex) {
        log.error("Beanshell failure: ", ex);
        throw ex;
    }
    

    Так что, если ваш скрипт завершится неудачно, вы сможете увидеть детали трассировки стека в файле jmeter.log. Другой способ разобраться с ошибкой сценария Beanshell - добавить debug (); в начало вашего скрипта. Это вызовет подробный вывод на консоль. Ознакомьтесь со статьей Как отлаживать скрипт Apache JMeter для получения дополнительной информации о методах отладки JMeter.

person Dmitri T    schedule 26.09.2016
comment
Спасибо! Я решил эту проблему. Это из-за отсутствия пакета Jar. - person TavisD; 08.12.2016