JMeter Loop Count - PullRequest
       12

JMeter Loop Count

14 голосов
/ 03 февраля 2012

Я хочу запустить тест JMeter с несколькими параллельными потоками, каждый поток отправляет запрос каждые 10 секунд.

Это свойства моего потока.

Количество потоков: 10

Период разгона: 10

Количество циклов: 1

Результат: 10 запросов разделеныболее 10 секунд, поэтому каждую секунду запрос и именно то, что я хочу.

Теперь я хочу запустить этот тест в 3 раза (30 секунд).Поэтому я установил счетчик циклов на 3.

Но результат: 30 запросов за 10 секунд.Это странно, потому что я ожидал бы запустить это в течение 30 секунд и получать 1 запрос в секунду.

Как мне добиться этого с помощью JMeter?

Моя конечная цель - запустить этот тест в течение длительного периода, а также увеличить количество потоков.

Как это сделатьс JMeter?

Ответы [ 6 ]

12 голосов
/ 21 декабря 2012

Я исследовал это сегодня и пришел к такому выводу: Значение Loop Count является полным неправильным числом .На самом деле он не loop в каком-либо хронологическом смысле, даже если в вашем плане тестирования Проверено выполнение групп потоков последовательно .Что он делает, так это умножает вашу группу потоков и запускает все умножения одновременно.Следовательно, период нарастания соблюдается только один раз , а НЕ один раз за "цикл" - временного цикла нет!

Объяснение с графиками может бытьнаходится здесь: http://pro -programmers.blogspot.com / 2009/07 / jmeter-max-threads-with-rump-up-and.html

5 голосов
/ 03 февраля 2012

Похоже, что самый простой способ управления пропускной способностью в ваших тестах - это использовать либо стандартный стандартный Таймер постоянной пропускной способности , либо пользовательский Таймер формирования пропускной способности из Коллекция jmeter-плагинов .


В обоих случаях структура теста будет выглядеть следующим образом:

<b>Thread Group</b>
<i>Number of Threads = N</i>
<i>Ramp-up Period = N</i>
<i>Loop Count = 1</i>
    <b>Constant Throughput Timer</b>
    <i>Target Throughput = 60</i>
    <i>Calculate Throughput based on = "all active threads in current thread group"</i>
    . . .
    <b>Loop Controller</b>
    <i>Loop Count = M</i>
        . . .
        <b>HTTP Request</b>
        . . .

Здесь Loop Controller определяет количество итераций.


Похоже, что оба таймера не совсем точны, а также они немного по-разному конфигурируются:

CTT

TST


Вот также практический пример , как изменить пропускную способность.

2 голосов
/ 07 мая 2015

По моему опыту с Jmeter, если вы установите

Количество потоков: 10

Период разгона: 10

Количество циклов: 1

вы создаете 10 потоков за 10 секунд, поэтому вы создаете 1 поток каждую секунду.С числом циклов 1 вы повторяете это один раз. Но если вы увеличите количество циклов, я думаю, что вы не создаете новые потоки, а повторяете процедуру элементов jmeter в группе потоков, поэтому время между запросами не 30 секунд, аболее 10 с.Если вы хотите создать 30 потоков в течение 30 секунд, вы должны установить

Количество потоков: 30

Период разгона: 30

Количество циклов: 1

Если вы хотите повторить 10 потоков 3 раза с увеличением на 10 секунд, вы должны вставить Timert-> Constant Timer с задержкой потока10000 мс, так что вы получите 30 запросов за 30 секунд (на самом деле вы должны учитывать время выполнения задачи)

1 голос
/ 19 декабря 2013

Мое понимание Ramp-Up заключается в том, что значение 0 будет запускать все потоки одновременно (одновременно).

Вы можете достичь желаемого, установив следующее:

  • Количество потоков: 10
  • Период запуска: 0
  • Количество циклов: N

, а затем с помощью контроллера определить, когда заканчивать каждый цикл.

0 голосов
/ 14 мая 2018

ссылка: http://www.testingjournals.com/5-must-know-features-thread-group-jmeter/

сценарий 1:

number of threads = 20
Ramp-up period =100
loop count=1

Каждые 5 секунд (100/20) 1 запрос / поток будет попадать на сервер, выполнение будет начинаться с 1 запроса за раз

сценарий 2:

number of threads = 20
Ramp-up period =100
loop count=4

Каждые 5 секунд (100/20) 4 запрос / поток попадет на сервер, после завершения 1-го запроса / потока он начнет 2-й цикл, выполнив тот же HTTP-запрос. Выполнение продолжается до тех пор, пока все 20 потоков не выполнят все HTTP-запросы 4 раз

0 голосов
/ 31 октября 2016

Да, параметр Loop Count не является интуитивно понятным.Из того, что я понял, на самом деле количество раз, которое поток / пользователь выполняет определенный тест

Так что, если я правильно понимаю ваше намерение, что вы хотите:

  • для запуска N числа одновременных потоков / пользователей
  • каждый из них отправляет запрос каждые 10 секунд
  • вы хотите запустить этот сценарий в течение примерно 30 секунд

Конфигурация должна быть следующей:

Количество потоков: N

Период запуска: 0

Количество циклов: 3

И в Таймере постоянной пропускной способности (в группе потоков) вы должны установить Целевая пропускная способность (выборок в минуту) = 6 , что означает запрос каждыесекунд

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