Проведение теста jmeter с помощью Blazemeter Taurus и Jenkins

У меня проблемы с тестом jmeter.

Я использую Blazemeter Taurus (команда bzt) для его запуска и запускаю как задание Дженкинса. Моя проблема: я создал пользовательские значения, которые я установил как свойства Jmeter, чтобы я мог передавать их параметры из командной строки: пример для свойства, которое я установил

Проблема возникает, когда я передаю число: bzt -o modules.jmeter.properties.profileId=413 -o modules.jmeter.properties.lab=8050

они анализируются как 8050.0 и 413.0. Поскольку параметр "lab" вставляется в URL, он нарушает URL.

При запуске через командную строку с командой jmeter это работает нормально.

Я попытался обойти это с помощью сэмплера bean shell, который выполняет следующие действия:

int a = Integer.parseInt(vars.get(${lab}));
String raw = String.ValueOf(a);
String processed = raw.substring(0,5);    


vars.putObject("lab" ,new String(processed));
props.put("lab", lab);
log.info("this is the new " + ${lab});

но это не удается. любая помощь будет оценена.

1 ответ

  1. Относительно проблемы Тельца - сообщите об этом через форум поддержки Тельца.
  2. Что касается обходного пути Beanshell - ваш код не очень корректен, вам нужно изменить его следующим образом:

    int lab = (int)Double.parseDouble(props.get("lab"));
    int profileId = (int)Double.parseDouble(props.get("profileId"));
    
    props.put("lab", String.valueOf(lab));
    props.put("profileId", String.valueOf("profileId"));
    
    log.info("lab=" + lab);
    log.info("profileId=" + profileId);
    

как материал прошел через -o modules.jmeter.properties должен быть доступен через props стенография, а не vars

Демо-версия:

Beanshell реквизит манипуляция Демо

См. Как использовать BeanShell: Руководство по использованию любимых встроенных компонентов JMeter для получения дополнительной информации об использовании JMeter и Java API из тестовых элементов Beanshell в вашем тесте JMeter.

Другие вопросы по тегам