Проведение теста 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 ответ
- Относительно проблемы Тельца - сообщите об этом через форум поддержки Тельца.
Что касается обходного пути 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: Руководство по использованию любимых встроенных компонентов JMeter для получения дополнительной информации об использовании JMeter и Java API из тестовых элементов Beanshell в вашем тесте JMeter.