В моем locustfile я определил события test_on_start и test_on_stop для чтения файла, необходимого для теста, и для записи подробной статистики в CSV в конце теста. при работе в распределенном режиме эти события происходят на мастере, а не на рабочем. Я составляю список подробной статистики для каждой задачи в последовательности задач и в конце теста записываю файл CSV, когда тест останавливается. Я нашел этот вопрос о переполнении стека , который ссылается на установку и разборку. Я добавил их в свой class User(HttpUser):
, но они, похоже, не выполняются.
Как я могу имитировать c эти события, когда тест выполняется на работнике в распределенном режиме?
Является ли есть способ лучше?
Я уже использую User on_start и on_stop - мой on_start вызывает функцию для выбора случайного пользователя из списка, который был создан при запуске @events.test_start.add_listener
, что происходит только на мастере а не на воркерах, поэтому у воркера нет данных для входа в систему.
Кажется контрпродуктивным открывать файл, читать его, случайным образом выбирать пользователя и закрывать его каждый раз при вызове метода User on_start. Пользователь on_start также настраивает список итераций [], в котором я сохраняю время для каждой задачи.
Когда последовательность задач выполнена, то есть последняя задача выполнена, я выполняю self.interrupt()
, который запускает on_stop
, где я беру время итераций и помещаю их во второй список, который позже написано с использованием модуля CSV. возможно было бы лучше просто записать данные в CSV во время on_stop