Я использую JMeter в качестве кода (программный подход вместо графического интерфейса пользователя в проекте Java Maven) для стресс-тестирования AWS Lambda Serverless API.
Я уже разработал план тестирования, группу потоков, HTTPSamplerProxy и так далее ...
Выполнение вызовов API работает отлично, но это не так, например. для DurationAssertion, которое я добавил в HTTP Sampler ..
Я также установил CSV-файл для вывода, где после выполнения я вижу все в порядке (код состояния 200 ..), но тест должен завершиться неудачей, поскольку он находится над настроенным DurationAssertion (в дополнение к другим проверочные элементы).
Я подумал, что, возможно, мне нужно было установить "enabled" = true в объекте DurationAssertion, но безрезультатно. Также я попытался получить доступ к контексту JMeter следующим образом:
JMeterContextService.getContext().getPreviousResult()
Я ожидал, что приведенный выше код извлечет SampleResult (который имеет коллекцию AssertionResult), но SampleResult имеет значение null ..
План тестирования с элементами тестирования (в данном случае DurationAssertion) без соответствующего анализа результатов этих утверждений не имеет смысла. Я хочу видеть сообщение об ошибке в каждом вызове, превышающее определенный порог. Если я ' Если бы я использовал графический интерфейс JMeter, я бы добавил ViewResultTree, который отображает представление результатов сэмплера с подробностями запроса, ответа и связанных тестовых утверждений. И в дополнение к результату утверждения (для каждого запроса) я хочу увидеть полезную нагрузку запроса, полный ответ, заголовки. Но в программном режиме (без использования графического интерфейса пользователя).
Так что я был бы очень признателен, если бы кто-нибудь дал мне подсказку о том, как достичь этой цели, но с помощью кода.
ОБНОВЛЕНИЕ 1 : Я делюсь фрагментом github со всем исходным кодом, например, пользователь UBIK LOAD PACK предложил мне:
https://gist.github.com/svillarreal/5eb90a66b8972633b95c249abb3566da
ОБНОВЛЕНИЕ 2 : Проверка объекта контекста (оценивается после завершения работы двигателя JMeter) - все пусто внутри
ОБНОВЛЕНИЕ 3
i) Недавно я нашел файл jmeter.properties, в котором я настроил следующие свойства:
jmeter.save.saveservice.output_format=xml
jmeter.save.saveservice.assertion_results=all
И теперь вывод в виде XML вместо CSV показывает, по крайней мере, полезную нагрузку отправленного запроса и данные ответа, что ОЧЕНЬ полезно для анализа случаев ошибок.
ii) Я выполнил проверку JMeterContextService.getContext () внутри выполнения JMeterEngine, а не после того, как он завершил выполнение, и затем я смог понять, что для каждой группы потоков существует один контекст, и во время его выполнения этот объект заполнен, так что теперь понятно, почему в ОБНОВЛЕНО 2 все свойства равны нулю ..
С уважением и благодарностью!