Отчет о посиделках AT.Info № 10 «Объектно-ориентированный подход при автоматизации веб-приложений»

«Круглая» по счету встреча автоматизаторов, площадкой для которой в этот раз стал офис SysIQ, прошла под девизом оптимизации и облегчения поддержки автоматизированных тестов для веб-приложений. Участники учились строить фреймворки с использованием Java, Selenium и WebDriver, выделяли Java-классы страниц и тестов, «визуализируя» в коде автотестирования конкретные страницы с определенным функционалом.

«Объектно-ориентированный подход превращает код автотестов в легкую для понимания и обслуживания структуру. Применяя Page Object Pattern, мы получаем отражение реальных страниц сайта в форме Java-классов со всеми элементами, которые на них присутствуют, будь то ссылки, кнопки или чек-боксы, а также функции, эмулирующие действия пользователя: клик по ссылке меню, ввод логина, ввод пароля и так далее», — говоря об интуитивно удобной природе объектно-ориентированного подхода, Леша Зволинский (SysIQ) опирался на актуальный личный опыт.

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

«Хороший тон — давать читабельные имена функциям, к примеру, clickLoginButton, чтобы коллеги по проекту, не занимающимися автоматизацией, не ломали голову зря. Тесты принимают вид «простого английского»:

homePage.inputLogin("testLogin")
    .inputPassword("pass")
    .clickLoginButton();

«Java-классы избавляют тестировщиков от постоянного объявления в коде теста одних и тех же элементов и методов... Такая же ситуация и с классами тестов. К ним тоже применим принцип наследования, и общие части можно выносить на более высокий уровень абстракции.»

Привычный для посиделок AT.infо практический джем-сейшн заключался в попытке реализации подхода Page Object Pattern на примере официального сайта одного из киевских футбольных клубов. Не сговариваясь, команды выдали результаты, дополняющие друг друга и в совокупности удачно иллюстрирующие этот самый объектно-ориентированный подход (одна из команд выдала обобщенное решение, вторая — более подробное). После кофе-брейка каждый смог задать свой вопрос «о наболевшем» — в этот раз обсуждали тестирование писем, инструменты для автотестирования во фреймворке BDD (Behavior Driven Development) и выбор тестов для Continuous Integration.

Некоторые из дивидендов, приносимые объектно-ориентированного подходом к автотестированию:

  • Простота написания и понимания кода;
  • скорость написания;
  • легкость поддержки;
  • отделение логики теста от логики страниц;
  • легкое чтение аналитиками и заказчиком.

Підписуйтеся на Telegram-канал редакції DOU, щоб не пропустити найважливіші статті.

👍НравитсяПонравилось0
В избранноеВ избранном0
Подписаться на автора
LinkedIn



Підписуйтесь: Soundcloud | Google Podcast | YouTube


10 комментариев

Подписаться на комментарииОтписаться от комментариев Комментарии могут оставлять только пользователи с подтвержденными аккаунтами.

Эти сборища анонимных автоматизаторов свободны для посещения? И где основная инфа? здесь: automated-testing.info ?

Алексей, на сайте есть основная инфа о меропритии, там и условия посещения. А внимательный и дотошный читатель сможет даже найти контакты организатора: www.adzynia.com/.../blog-page.html :)

Понажимал вчера красную большую неработающую кнопку «Register Now» на главной странице на этом сайте (тренинг в декабре по обсуждавшейся теме) и в расстроенных чувствах решил спросить здесь.
Спасибо, теперь увидел и статью об этих самых посиделках

Привет! Кнопка работающая, просто регистрация была закрыта.

А расстраиваться не надо :) там были контакты trainings@automated-testing.info, равно для этих целей и был создан, так что пиши и задавай вопросы.

Основная инфа находиться тут automated-testing.info/...o-avtomatizacii, так же мы проводим воркшопы по автоматизации — automated-testing.info/...o-avtomatizacii

У меня в голове объектно-ориентированный подход больше с модульными фреймворками вяжется чем с Page Object Pattern.

Выводы не понял. PO, имхо, не сильно читабельны Заказчиком. BDD еще верю.

А вообще ребят, вы бы серьезно начали бы вот такое писать, было бы очень круто: itreallymatters.net/...ects-in-testing

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

Времени не так уж много, потому делаем что успеваем.

На счет, кода согласен, про описание подумаем, но обычно мы выкладываем код. Ссылка на наш отчет automated-testing.info/...-pattern/report, там есть и слайды и ссылка на сам проект, можно скачать и посмотреть.

А вообще, больше всего работы делается на самой встрече, для того чтобы разобраться надо просто присутствовать :) Но на счет описания обязательно подумаем.

На Java, потому что больше всего проектов с использованием этого языка программирования + основная разработка selenium тоже Java, т.е. самые передовые решения появляются на этом языке. Хотя мне лично больше python нравиться и я на нем реализовал PageObject, очень даже круто! Кому надо могу тоже поделиться, хотя наверное даже проведу воркшоп на эту тему.

Докладчик выбрал этот язык. Наверное потому что делился опитом со своего проекта.

Подписаться на комментарии