Генерация случайного числа для одновременного запроса без дублирования - PullRequest
0 голосов
/ 07 мая 2020

В данный момент я выполняю нагрузочный тест с одновременным запуском jmeter 300 запросов в секунду. Моему приложению необходимо генерировать неповторяющееся случайное число, но с таким количеством запросов оно не работает. Я не могу сохранить его в наборе Map, чтобы предотвратить дублирование, так как для вычисления требуется больше времени.

До сих пор я пробовал

  1. System.currentTimeMillis () ;

  2. System.nanoTime ()

  3. ThreadLocalRandom

Все эти реализации обеспечивают дублирование в некоторых точка.

Ответы [ 2 ]

0 голосов
/ 07 мая 2020
  1. Каждый поток JMeter (виртуальный пользователь) имеет свой номер, доступный с помощью функции __ threadNum () . Итерация группы потоков может быть получена с помощью комбинации функций __ V () и __ threadGroupName () , например:

    ${__V(__jm__${__threadGroupName}__idx,)}
    

    , поэтому конструкция вида:

    ${__threadNum}${__V(__jm__${__threadGroupName}__idx,)} 
    

    должен предоставить вам уникальные номера, которые не будут повторяться во время выполнения одного теста.

    enter image description here

  2. Если вам нужно повторить проверьте несколько раз, и подход из пункта 1 будет «известен» системе - вы можете предварительно сгенерировать уникальный список действительно случайных чисел где-нибудь в setUp Thread Group и сохранить его в файле CSV и в основной группе потоков вы сможете ссылаться на сгенерированные данные, используя обычную конфигурацию набора данных CSV
0 голосов
/ 07 мая 2020

Вы можете использовать функцию JMeter __ Random .

Go для своего помощника по функциям из меню, а затем выберите свою функцию Random из раскрывающегося списка. Вы можете очень легко сгенерировать и скопировать свою случайную функцию.

Вот пример: ${__Random(000000100,999999999,)}

Дополнительные ссылки вы можете проверить: Функции и переменные

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...