Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

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

selenide
Теги: #<Tag:0x00007f7b625ce7b8>

(asolntsev) #1

Привет!

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

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

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

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


(Дмитрий Жарий) #2

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

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


(asolntsev) #3

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


(barancev) #4

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


(Stan) #5

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

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

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

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


(asolntsev) #6

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


(Дмитрий Жарий) #7

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

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

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


(asolntsev) #8

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

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


(asolntsev) #9

Всем привет!
Я написал статью с разбором кода, как конкретно делаются те или иные шаги в тесте:
http://ru.selenide.org/2014/12/28/how-to-test-gmail/