Завершение работы групп потоков при завершении всех запросов внутри контроллера транзакций - PullRequest
0 голосов
/ 30 января 2020

У меня есть план тестирования JMeter для выполнения тестов производительности и нагрузки на веб-клиенте SAP. План тестирования содержит 5 групп потоков. В каждой группе потоков у меня есть контроллер транзакций, который содержит N запросов, где они выполняют Login - Process - Logoff.

Мне нужно иметь возможность запустить План тестирования с 20 пользователями на бесконечном уровне l oop и затем завершить работу через 1 час, НО выполнить выход из системы всех пользователей, которые все еще находятся в Веб-клиенте (последний запрос на каждый контроллер транзакций).

С этого момента отключение просто останавливает тестирование активного потока, чем бы оно ни было, без завершения контроллера транзакций.

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 03 февраля 2020

Вы можете ввести JVM Shutdown Hook , чтобы перехватывать завершение JMeter и иметь возможность завершить sh выполнение задач.

Пример реализации:

  1. Добавить группу потоков setUp в ваш план тестирования
  2. Добавить JSR223 Sampler в setUp Группа потоков
  3. Поместите следующий код в область «Сценарий»:

    def myHook = new Thread({ ->
        try {
            println('' + new Date()  + '\tShutdown detected, waiting for 5 for logging out')
            Thread.sleep(5000)
            println('' + new Date()  + '\tExiting...')
        } catch (InterruptedException ignored) {
        }
    })
    Runtime.getRuntime().addShutdownHook(myHook)
    

Вот и все, ловушка будет вызываться при отправке сигнала завершения на JMeter и там вы можете поставить любой лог c, который вам нужен:

enter image description here

0 голосов
/ 31 января 2020

Этого можно достичь, добавив Пока контроллер в качестве родительского контроллера к контроллерам транзакций. В то время как контроллер должен проверить продолжительность и выйти, если продолжительность больше одного часа.

enter image description here

Вне контролируемого времени добавьте пробоотборник тестового действия и настройте его чтобы остановить текущий поток.

enter image description here

Доступен пример плана тестирования с решением @ GitHub

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