Как я могу установить условие в jmeter для шага, что 80% пользователей выполнят его, а 20% пользователей не будут. Пожалуйста, помогите мне в этом. У меня есть http-сэмплер, и я хочу, чтобы он выполнялся только для 80% пользователей в тесте, поэтому, когда количество пользователей (потоков) изменится, процент выполненных запросов для этого сэмплера останется прежним.
Как я могу установить условие для выполнения некоторых шагов только для определенного количества пользователей
Ответы (2)
Если у вас есть семплеры, с которыми вы хотите работать только в некоторых потоках, а не во всех, проще всего добавить их в If Controller, а в Condition добавить что-то вроде:
${__Random(1,100)} <= 80
В этом случае запросы в этом контроллере будут выполняться с вероятностью 80% (срабатывает только тогда, когда random меньше или равно 80). Конечно, он не идеален, так как иногда он может работать с +-5% запросов, но это самый быстрый и простой способ, который я знаю. И с такой случайностью это больше похоже на реальный жизненный опыт.
Я добавлю его как другой ответ, так как это еще один подход к этой проблеме. Вы можете добавить счетчик в свой план тестирования (Добавить -> Элемент конфигурации -> Счетчик) и установить его как Start: 1, Increment: 1, Max: 10, Reference name: count
. Когда вы это сделаете, вы можете изменить условие вашего контроллера If на ${count} <= 8
. Он выполнит сэмплер в контроллере всего 8 раз, а последние два цикла этого не сделают.
Конечно, вы можете параметризовать его и в качестве значения добавить количество циклов/потоков, которые вы используете, и отрегулировать максимальное число в условии из пропорции, но если вы используете только 10 циклов, этот подход будет в порядке.
Единственное, что не так приятно, как в предыдущем ответе, это то, что сэмплер будет запускаться заданное количество раз, а затем останавливаться (так что никакой случайности).
И просто дополнительное примечание о параметрах для этого случая и о том, как я установил их простым способом (с этой настройкой количество потоков не имеет значения - он всегда будет работать правильно):
- Счетчик с началом: 1, приращение: 1, справочное имя: счетчик и выбрано поле «Отслеживать счетчик независимо для каждого пользователя».
- Группа потоков с числом циклов, заданным переменной loopCount, которая также используется для подсчета количества сэмплеров, необходимых для покрытия надлежащего процента.
- Если контроллер с условием установлен как
${Count} <= (${loopCount}*0.8)
(это 0,8 также может быть установлено с некоторой переменной для более легкого управления)