У меня есть приложение, которое выглядит следующим образом:
ingestion --> queue --> validation --> persistance --> database
Я хочу загрузить тестирование загрузки и в конце убедиться, что каждая отправленная запись хранится в базе данных.
IУ меня есть сценарий Artillery, который отправляет данные о приеме внутрь и восстанавливает один и тот же элемент из базы данных, но делает это как часть одного и того же сценария, и, поскольку два компонента реализованы отдельно, я фактически измеряю общую производительность, а не производительность каждого компонента..
Я бы хотел загрузить тестовый компонент загрузки, удерживая некоторый ключ поиска, который позволяет мне восстановить все отправленные элементы из базы данных.Я попробовал это, создав Javascript, который я вызываю в начале сценария приема, чтобы сгенерировать случайный ключ поиска, сохранить его в Artillery's context
, и они в конце сценария вызывают другую функцию, чтобы восстановить все записи избаза данных.
Проблема, которую я обнаружил, заключается в том, что Artillery запускает одну копию сценария на каждом виртуальном клиенте, поэтому она вызывает функцию каждый раз, когда запускает сценарий, и восстанавливает только одну запись в конце.И вызов к базе данных происходит в том же сценарии, что и публикация, поэтому я снова смешиваю производительность.
Я хотел бы, вероятно, создать ключ поиска всценарий, запустите сообщения в другом сценарии, а затем получить результаты в третьем.Как я могу это сделать?
Кроме того, когда я получаю результаты из базы данных, я хотел бы сравнить количество с количеством сообщений для приема.Я не смог найти, если expect
работает с переменными, возвращенными в context
из вызовов функций.Это возможно?