Size: a a a

QA — Load & Performance

2021 November 13

VS

Vladimir Sitnikov in QA — Load & Performance
сделать несколько тред-групп, и ненужные выключать через «scheduler=0» и т.п.
источник

VS

Vladimir Sitnikov in QA — Load & Performance
Нее, в JMeter с этими Property муть какая-то.
Похоже, всё должно быть Property, иначе ${..} не будет работать.

По-моему, можно было сделать без Property, но сейчас уже переделывать тяжеловато.

Поэтому очень часто, когда какое-нибудь простое поле меняют на Property.

——

Общее правило такое: если что-то конфигурируется (например, через UI), то это должно 100% храниться в Property, чтобы поддерживать ${..} переменные
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
Я попробовал использовать Property вида Runnable, они работают без контекста.

Вот тут:
https://github.com/apache/jmeter/blob/v5.4.1-rc2/src/components/src/main/java/org/apache/jmeter/control/IncludeController.java#L83-L85

Написал вот такой сложный код:
ReplaceStringWithFunctions replacer = new ReplaceStringWithFunctions(new CompoundVariable(), new HashMap<>());
try{
   JMeterProperty prop = replacer.transformValue(new StringProperty(INCLUDE_PATH,jmxfile));
   prop.setRunningVersion(true);
   this.setProperty(prop);
} catch (InvalidVariableException e) {
   this.setProperty(INCLUDE_PATH,jmxfile);
}
Сделал неоптимальность - еще до работы PreCompile указал, что у IncludeController нужное свойство функциональное. И оно не требует контекста, так как оно Running.
В общем - так работает вычисление функций и все такое. Но есть два минуса.

1. При открытии скрипта значение с функцией, заменяется на результат выполнения функции. Так как стоит
prop.setRunningVersion(true);
2. Если функция вычислилась с ошибкой, например, нет файла, на который указывает Property или результат вычисления jexl3, то тогда дерево не загружается - непонятная ошибка. Такое все для опытных и сильных духом, кто точно понимает что делает.
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
1. Выражается так. Изначально было написано, что путь такой:
${__jexl3(var a = '1'; var b = "C:\\\\" + a + ".jmx",)}
А при открытии скрипта в GUI мы уже видим
C:\1.jmx
И при сохранении такого скрипта теряем начальную формулу jexl3
источник
2021 November 14

VG

Viktor Ganeles in QA — Load & Performance
Круто ты закопался

А при запуске в консоли тоже заменяется?
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
Думаю, что нет
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
Получилось сделать. Обработка функций вызывается только при начале загрузки файла.
https://github.com/polarnik/jmeter/commit/3b0ddabdab1ea1d0bc5f7029e082c7f4f383b347
Оформлю PR на неделе
источник

RR

R R in QA — Load & Performance
Добрый день! Реализовал java request, но в коде выполняется не один реквест, а несколько в цикле - число зависит от предыдущего респонса сервера.

Хочется в результатах в джиметре видеть все реквесты/респонсы - подскажите плиз, как это правильно сделать?
источник

RR

R R in QA — Load & Performance
Видимо нужен addSubResult
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
В возврвращаемом SampleResult, да, добавить дочерние SampleResult
источник

RR

R R in QA — Load & Performance
ага, спасибо!
источник

VG

Viktor Ganeles in QA — Load & Performance
Слава, ТЫ МОЙ ГЕРОЙ!
Спасибо!
источник

VS

Vladimir Sitnikov in QA — Load & Performance
Надо посмотреть, но почти наверняка ручное использование ReplaceStringWithFunctions это неправильно.
Оно же само должно. Почему вручную требуется-то?
источник

VS

Vladimir Sitnikov in QA — Load & Performance
Такой вопрос: а в JMeter кто-нибудь пользовался режимом «run in validation mode»?
источник

VG

Viktor Ganeles in QA — Load & Performance
А что это?
источник

VG

Viktor Ganeles in QA — Load & Performance
Типа проверка xml и исправление ошибок?
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
Использую для отдельных Thread Group часто
Validate
источник

VS

Vladimir Sitnikov in QA — Load & Performance
Ну смотри: вот допустим ты заюзал хитроумную тредгруппу.
И указал там rate(1/hour) random_arrivals(1 hour) rate(1/hour)

Внимание, вопрос: как ты проверять будешь, что sampler’ы внутри вообще норм написаны?
Запускать и ждать час?
источник

VS

Vladimir Sitnikov in QA — Load & Performance
чувствую, на доклад инфы точно набирается )
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
PreCompile и вызовы ReplaceStringWithFunctions делается при старте сценария.
А Include срабатывает до старта, просто при открытии, при сохранении
источник