Функциональные приемочные испытания, включающие синхронизированную по времени функцию лазера

Моя инфраструктура приемочного тестирования использует specrun для создания симуляции пользователя, запуска моего веб-сервиса и проверки результатов. Это хорошо работает для тестирования функциональности, которая включает взаимодействие с пользователем (вызов REST API, отправка сообщения и т. Д.).

Но в бэкэнде у меня также есть функциональность, которая включает функцию Azure, запускаемую по времени, которая выполняет некоторые действия с определенными BLOB-объектами Azure и отправляет сообщение пользователю через концентратор событий. Как я могу принять функциональность тестирования, которая включает эту функцию лазури? - поскольку эта функция лазера срабатывает только один раз каждые 6 часов, и нецелесообразно проводить приемочные испытания в течение полных 6 часов для проверки этой функциональности.

У кого-нибудь есть опыт работы с такой ситуацией? Что ты предлагаешь?

1 ответ

Решение

Хотя существует интерфейс администратора, который портал использует для вызова функций (и вы можете использовать его - инструменты F12 браузера могут показать вам, как он работает), нет никаких обещаний, что API останется прежним в будущем.

Другой подход может состоять в том, чтобы разбить ваши функции, чтобы позволить вам вызывать "реальную" логику из таймера или теста:

  1. Создайте функцию QueueTrigger с вашей логикой.
  2. Создайте TimerTrigger, который помещает сообщение в очередь. Это также дает дополнительное преимущество при повторных попытках сбоя.
  3. Создайте свой собственный HttpTrigger (по умолчанию защищенный ключом), который вы можете вызывать непосредственно из ваших тестов. Имейте это также вставьте сообщение в очередь.

В качестве альтернативы, вместо QueueTrigger, вы могли бы реализовать всю свою логику в библиотеке помощников и по-прежнему предоставлять функции из #2 и #3 - просто сделать так, чтобы они были тонкими оболочками, вызывающими непосредственно в помощник.

Другие вопросы по тегам