Как тестировать GMail, пример на selenide

Привет!

Тестировщики часто задаются вопросом, а как тестировать GMail. Его тестирование нетривиально, т.к. на каждый чих используется Ajax, грузится долго, всё генерируется динамически и нет разумных селекторов/айдишек. Замучаешься везде проставлять wait!

Но счастье возможно! Вот проект на гитхабе, в котором написан тест для GMail. Он проверяет содержимое инбокса и пишет новое письмо. Причём ещё и делает “Undo”, редактирует и снова посылает. И в конце ждёт, пока кнопка “Undo” пропадёт.

И тут даже есть короткое видео, демонстрирующее, как это работает:

И сам проект на гитхабе:

3 лайка

Вот читают сейчас автоматизаторы из Google этот топик и думают…
"- Opa, spasibo, Brat! " :smiley:

PS: Хайлайтер классный получился.

1 лайк

:slight_smile: Не, тестировщики из Google наверняка прогоняют тесты ДО обфускации кода. У них там всё нормально с селекторами. И наверняка с текстовыми данными, так что грузится быстро и данные всегда одинаковые.

Главное – не злоупотребляйте. Гугл может и забанить за использование роботов. Будете потом писать слёзные письма с просьбами вернуть доступ к почтовому ящику :slight_smile:

А зачем тестировать что-то в интерфейсе гмейла? Что делают в большинстве ситуаций:

  1. авторизация по pop3/smtp/imap
  2. поднятие своего собственного mail сервера, чтобы не быть завязанными на внешних dependencies
  3. вытаскивание нужных значений (токены активации и тд) из базы

и многое другое

На ум приходит разве что скриншот тестирование вида письма, но как-то глупо получается, опять же зависеть от внешнего сервиса, да и гмеил не единственная почта, которой пользуются в мире.

1 лайк

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

@asolntsev Я бы к следующей демке предложил бы использовать что-то более востребованное среди разработчиков.
Тот тулкит, GWT, который используется в Gmail – не востребован больше ни кем, кроме самого Гугла.

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

Ну и там JQueryUI , Angular, Ember…

Отличная идея!
Так и сделаю. Начну с Bootstrap и JQueryUI, потом возьмусь за AngularJS…

Но вообще-то смысл как раз в том, что особенности гугловского фреймворка в тесте никак не использовались. По барабану, что у них там под капотом, GWT или что-то другое - тест более универсальный. В этом весь смысл.

1 лайк

Всем привет!
Я написал статью с разбором кода, как конкретно делаются те или иные шаги в тесте:

1 лайк