Функциональные приемочные испытания, включающие синхронизированную по времени функцию лазера
Моя инфраструктура приемочного тестирования использует specrun для создания симуляции пользователя, запуска моего веб-сервиса и проверки результатов. Это хорошо работает для тестирования функциональности, которая включает взаимодействие с пользователем (вызов REST API, отправка сообщения и т. Д.).
Но в бэкэнде у меня также есть функциональность, которая включает функцию Azure, запускаемую по времени, которая выполняет некоторые действия с определенными BLOB-объектами Azure и отправляет сообщение пользователю через концентратор событий. Как я могу принять функциональность тестирования, которая включает эту функцию лазури? - поскольку эта функция лазера срабатывает только один раз каждые 6 часов, и нецелесообразно проводить приемочные испытания в течение полных 6 часов для проверки этой функциональности.
У кого-нибудь есть опыт работы с такой ситуацией? Что ты предлагаешь?
1 ответ
Хотя существует интерфейс администратора, который портал использует для вызова функций (и вы можете использовать его - инструменты F12 браузера могут показать вам, как он работает), нет никаких обещаний, что API останется прежним в будущем.
Другой подход может состоять в том, чтобы разбить ваши функции, чтобы позволить вам вызывать "реальную" логику из таймера или теста:
- Создайте функцию QueueTrigger с вашей логикой.
- Создайте TimerTrigger, который помещает сообщение в очередь. Это также дает дополнительное преимущество при повторных попытках сбоя.
- Создайте свой собственный HttpTrigger (по умолчанию защищенный ключом), который вы можете вызывать непосредственно из ваших тестов. Имейте это также вставьте сообщение в очередь.
В качестве альтернативы, вместо QueueTrigger, вы могли бы реализовать всю свою логику в библиотеке помощников и по-прежнему предоставлять функции из #2 и #3 - просто сделать так, чтобы они были тонкими оболочками, вызывающими непосредственно в помощник.