Как лучше написать функциональные тесты для работы электронной почты веб-сайта?

Веб-сайты включают функции электронной почты, такие как отправка регистрационной информации, напоминания о пароле и т. д.

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

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

Однако эти системы кажутся хрупкими, и они включают очистку экрана, что само по себе является хрупким. Существуют ли службы, которые предоставляют электронные письма через интерфейс GETable xml/json?

Есть ли принципиально лучший способ приблизиться к этому? Появились новые веб-службы электронной почты, такие как postmarkapp.com и yakmail.com; но первая не получает почту, а вторая требует значительной предварительной подготовки.

Мои тестовые инструменты используются для проверочного тестирования реальных производственных систем, поэтому имитация не является хорошим вариантом.


person Rdbhost    schedule 19.10.2010    source источник
comment
Неужели это неинтересный вопрос для веб-разработчиков? Никто не тестирует электронную почту своего веб-сайта систематически?   -  person Rdbhost    schedule 20.11.2010


Ответы (1)


Если вы пытаетесь проверить, отправляет ли ваш код электронные письма и правильно ли их содержимое, насмешки — лучшее решение. Взгляните на мудрее. Модульные тесты и пробные тесты быстрее и полезнее (для отладки), чем интеграционные/функциональные тесты.

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

person rahul    schedule 27.04.2011
comment
Я имел в виду регрессионное тестирование, чтобы убедиться, что работающие системы не ломаются со временем из-за каких-то явно не связанных изменений. Я по-прежнему несколько озадачен тем, почему это не является более важной проблемой для веб-разработчиков. - person Rdbhost; 05.05.2011
comment
Задача теста — сказать вам, что что-то пошло не так. Если он также сообщает вам, что пошло не так и почему, это более полезно. Функциональные/интеграционные тесты часто не могут сказать вам, что пошло не так, поскольку может быть цепочка событий, которая привела к сбою теста. OTOH, модульные тесты могут ограничиться небольшим фрагментом кода, потому что они не проверяют ваше приложение; они тестируют небольшой фрагмент кода. Я тоже пишу F/I-тесты, но не трачу на них много времени. Кроме того, пока тест открывает браузер, запускает тест f/i и закрывает его, я мог бы запустить несколько модульных тестов. - person rahul; 08.05.2011