Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

Тестирование API метода с отправкой письма на почту

api
testing
Теги: #<Tag:0x00007fedb9286af0> #<Tag:0x00007fedb9286848>

(Maxim Andryushchenkov) #1

Друзья, подскажите вариант решения проблемы следующего плана:
Есть метод API (POST), который вместе с каким-то действием еще и отправляет письмо на почту. Соответственно проверять письмо и его содержимое в тестах API, которые пайплайном привязаны к деплою бека в GitLab - не есть хорошо, ибо это сразу +100 к нестабильности тестов. Поэтому мы должны как-то исключить отправку письма, ибо для его проверки будет отдельный тест. На ум приходят 2 костыля:

  1. Добавить ключ в метод аля “no_email”: true
  2. Создать дополнительное окружение, на котором отключены нотификейшены

Хотелось бы услышать плюсы и минусы обоих костылей или с удовольствием приму ваш вариант к рассмотрению. Может кто то уже решал данную проблему.


(Евгений Бухгаммер) #2

отправка письма на почту у вас является блокирующей операцией? т.е. ответ от сервера после вашего POST запроса отправляется, когда где-то в бизнес логике есть ответ, что письмо отправлено? или просто отправка письма помещена в брокер очередей?

Не вижу проблемы, если честно пока что. Просто не проверяйте в этом тесте наличие письма.


(Maxim Andryushchenkov) #3

Можно просто не проверять - это временное решение. Можно тестами забить воркеры так, что реальным людям не уйдут письма или уйдут с большой задержкой


(Евгений Бухгаммер) #4

у вас в тестах реальным людям отправляются письма?
А в чем проблема, чтобы письма отправлялись, в рамках текущих тестов их отправка не несет никаких отрицательных эффектов (было бы странно, если б такие эффекты были).

“забить тестами воркеры, так, чтобы ушли с задержкой” - какой-то костыль.

Еще раз: чтобы не проверять отправку писем - ее просто нужно не проверять. Сама отправка может осуществляться и для этого не обязательно городить лишние конфиги, апи ключи и прочее.

Если письма у вас отправляются настоящим людям - это повод подумать, как подготовливать тестовые данные: миграциями обкатывать базу, прописывать префиксы всем почтовым адресам, а потом поднять свой mail server, на который бы сыпались эти письма.


(Maxim Andryushchenkov) #5

Это я сказал о негативном подследствии если мы просто не будем обращать внимания на отправку письма. Вообщем решение пока что заключается в том, чтобы выкинуть такие тесты из общего пула и запускать их отдельной джобой