Есть несколько вариантов генерации случаных значений. Самый просто способ - это использовать встроенные функции JMeter __Random и __RandomString. Первая функция генерирует рандомное значение в указанном диапазоне с в возможностью указания имени переменной для дальнейшего использования сгенерированного значения (${__Random(1,100,myRandom)}). Вторая функция генерирует рандомную строку указанной длины с использованием указанных символов также с возможностью указания имени(${__RandomString(5,abcdefghijk12345,myRandom)}).
В JMeter есть встроенная утилита для генерирования подобных функций (Option->Function Helper Dialog), в которой необходимо выбрать нужный тип, ввести входные значения и нажать кнопку [Generate].
Но у этих функий есть один минус. Если мы в User Defined Variables объявим переменную и в качестве значения укажем __Random или __RandomString, то это рандомное значение сгенерится один раз на весь тест план и для всех пользователей. То есть если мы запускаем Thread Group для 10 юзеров и каждый обращается к рандомной переменной, то все они получат одно и то же значение. Поэтому для этих целей лучше использовать Random Variable (Add->Config Element->Random Variable).
Теперь при использовании нашей переменной myRandom мы всегда будем получать новое значение.
В JMeter есть встроенная утилита для генерирования подобных функций (Option->Function Helper Dialog), в которой необходимо выбрать нужный тип, ввести входные значения и нажать кнопку [Generate].
Добавляем Random Variable и указываем в нем следующие параметры:
- имя переменной для дальнейшего обращения (Variable Name)
- формат (Output Format) (значение формата может состоять только из нулей, указывающих разрядность, или же с содержанием символов как перед нулями так и после)
- минимальное значение (Minimum Value)
- максимальное значение (Maximum Value)
- основу для генерации рандомных значений, которой по умолчанию является текущее время в миллисекундах ( Seed for Rundom function)
Параметр "Per Thread (User)": если значение параметра False, то генератор общий для всех Thread Group, если значение True, то генератор свой для каждого пользователя.
Теперь при использовании нашей переменной myRandom мы всегда будем получать новое значение.
${__RandomString(5,abcdefghijk12345,myRandom)} будет генерить разные значения для нескольких Thread если не запихивать в User Defined Variables, а использовать напрямую в реквесте.
ОтветитьУдалитьИ кстати значение сохраняется в переменную myRandom и её можно использовать в дальнейшем.