#php #wordpress #automation #automated-tests #contact-form
#php #wordpress #автоматизация #автоматизированные тесты #контактная форма
Вопрос:
У меня есть веб-сайт с контактной формой. Для моего бизнеса жизненно важно, чтобы я получал все сообщения, которые отправляются с помощью этого формуляра. И я видел ОООЧЕНЬ много примеров сбоев контактных форм из-за обновлений зависимостей или коллизий скриптов.
Итак, мой план состоял в том, чтобы сделать автоматический тест, который будет заполнять контактную форму каждый день, гарантируя отсутствие ошибок. А также (и это самое главное), проверка того, получено ли сообщение на другом конце.
Я использую внушительные формы WordPress, но ничего страшного, если это что-то, что нужно создавать на заказ. Ранее я использовал контактную форму 7 с Flamingo, и это было хорошо. Но недостатком было то, что если я не получал электронное письмо, то оно автоматически завершалось сбоем, — и тогда я мог восстановить неполученные сообщения с помощью Flamingo. И мне нужно немедленно узнать, не приходят ли сообщения в мой почтовый ящик.
Проверка интерфейса
Чтобы убедиться, что форма не сломается до отправки почты, я планирую сделать это с помощью Nightwatchjs.
Проверка того, получено ли сообщение
Это та часть, которую я не уверен, как сделать… Проверка части отправки / получения.
Итак, если мой основной e-mail был inbox@example.org затем я подумал, что если бы я мог настроить дополнительную почту, например robot@example.org , а затем отправьте все сообщения на оба электронных письма, — и затем… Ehm… Что-то с этим делать?
Как мне это сделать? Или есть какие-либо фреймворки для этого, которые упростят задачу?
Комментарии:
1. Я бы использовал selenium или любой другой инструмент, который вы можете использовать для программного взаимодействия с вашим сайтом — затем, примерно через несколько минут, подключите smtp к вашему почтовому серверу и проверьте наличие новых формальных записей (т. Е. пусть все они будут заполнены на определенный почтовый адрес отправителя, чтобы вы могли их идентифицировать).
Ответ №1:
В вашем текущем сценарии есть 3 важные вещи, которые вы должны учитывать при тестировании.
Но до этого не полагайтесь полностью на электронные письма для оповещения. Убедитесь, что всякий раз, когда отправляется форма, серверная часть сохраняет данные в некоторой базе данных, а затем запускается электронное письмо, или оба могут происходить параллельно.
Автоматизация пользовательского интерфейса / функциональных тестов может отнимать много времени, а также быть дорогостоящим. Итак, я бы посоветовал вам разбить тестирование на две части.
- Сначала может быть прямое тестирование API, эти тесты могут содержать всю бизнес-логику и сценарии, такие как отправка недопустимых / пустых полей, XSS, инъекции и т.д. Теперь, используя сохраненные данные, вы можете очень легко утверждать.
- Вторым могут быть ваши функциональные тестовые примеры, вы можете использовать puppeteer или selenium, puppeteer более легкий и гибкий. Просто напишите несколько базовых тестов заполнения форм, затем войдите в wp-admin и подтвердите данные.
- Я бы предложил запустить вышеупомянутые тестовые примеры в каком-нибудь UAT или другой среде, это позволит убедиться, что записи в базе данных создаются только вашими тестовыми примерами, а не кем-то другим. Кроме того, использование другой среды может помочь вам легко подделать свой почтовый сервер или использовать mailgun API для проверки доставки электронных писем.