Jmeter: Почему мой поток не перезапускается после завершения цикла? - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть следующий план тестирования в Jmeter:

  • Группа потоков
    • Пользовательские параметры
    • Csv DataSource
    • Пока контроллер
      • Один только контроллер
        • http-сэмплер
      • http-сэмплер
        • RegEx extractor (Находит переменную, которая является условием в то время как l oop)
    • Если контроллер
      • Http-сэмплер
      • Сохранить ответ в файл
    • BeanShell Post Processor (очищает используемые переменные)

Теперь моя проблема заключается в том, что при выполнении условия контроллера If после выполнения потока он зацикливается, как и ожидалось , Но когда условие контроллера не выполнено, после завершения потока выполнение останавливается, и l oop не происходит.

В настройках группы потоков у меня есть "L oop = 50" и «Действие при ошибке: запустить следующий цикл»

В системном журнале ошибок вообще нет.

Есть идеи?

1 Ответ

0 голосов
/ 22 апреля 2020

Если условие не выполняется, дочерние элементы контроллера не будут выполнены, и вы не увидите их в файле результатов jtl.

Если вы добавите, например, Dummy Sampler после If Controller, вы увидите, что Dummy Sampler будет выполнен 50 раз для каждого виртуального пользователя.

Еще несколько рекомендаций:

  1. Начиная с JMeter 3.1 вы должны использовать тестовые элементы JSR223 и Groovy язык для сценариев
  2. Согласно Правила JMeter Scoping Ваш постпроцессор BeanShell будет выполняться после каждого сэмплера , я не знаю, что именно он делает, но в настоящее время он выполняется после каждого сэмплера так может случиться так, что он очищает переменную, которую вы используете в While или If Controller.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...