Как проверить, что каждый вызов нагрузочного теста генерировал успешный результат в конце цепочки процессов? - PullRequest
0 голосов
/ 31 мая 2019

У меня есть приложение, которое выглядит следующим образом:

ingestion --> queue --> validation --> persistance --> database

Я хочу загрузить тестирование загрузки и в конце убедиться, что каждая отправленная запись хранится в базе данных.

IУ меня есть сценарий Artillery, который отправляет данные о приеме внутрь и восстанавливает один и тот же элемент из базы данных, но делает это как часть одного и того же сценария, и, поскольку два компонента реализованы отдельно, я фактически измеряю общую производительность, а не производительность каждого компонента..

Я бы хотел загрузить тестовый компонент загрузки, удерживая некоторый ключ поиска, который позволяет мне восстановить все отправленные элементы из базы данных.Я попробовал это, создав Javascript, который я вызываю в начале сценария приема, чтобы сгенерировать случайный ключ поиска, сохранить его в Artillery's context, и они в конце сценария вызывают другую функцию, чтобы восстановить все записи избаза данных.

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

Я хотел бы, вероятно, создать ключ поиска всценарий, запустите сообщения в другом сценарии, а затем получить результаты в третьем.Как я могу это сделать?

Кроме того, когда я получаю результаты из базы данных, я хотел бы сравнить количество с количеством сообщений для приема.Я не смог найти, если expect работает с переменными, возвращенными в context из вызовов функций.Это возможно?

...