t.me/atinfo_chat Telegram группа по автоматизации тестирования

Есть ли еще паттерны автоматизации тестирования кроме Page Object, Page Factory, Page Elements?

Теги: #<Tag:0x00007f7487991d50> #<Tag:0x00007f7487991c88> #<Tag:0x00007f7487991b20> #<Tag:0x00007f7487991a58> #<Tag:0x00007f74879918c8> #<Tag:0x00007f74879916e8> #<Tag:0x00007f74879915a8> #<Tag:0x00007f74879914e0> #<Tag:0x00007f74879913f0>

Здравствуйте. Интересует два вопроса по поводу автоматизации с Selenium WebDriver, хотелось бы узнать ответ от знающих людей.

  1. В чем отличие Page Object от Page Factory?
  2. Существую ли еще паттерны автоматизации тестирования кроме Page Object, Page Factory, Page Elements, если не брать в счет классические паттерны программирования?
    Спасибо!

Вы скоро все вопросы к собеседованию изучите)
https://seleniumcamp.com/talk/design-patterns-in-test-automation/

На данный момент в автоматизации (если вы идете, конечно, не на древний проект) вы не увидите на странице никаких пейджей для реализации PageObject. Будут блоки, которые подгружаются сразу, будут видимые и невидимые объекты с динамическим изменением состояния. Все уже настолько смешалось в кучу, что у вас не получится применить эти паттерны в чистом виде. Делайте архитектуру как вы ее видите и все. Блоки значит PageBlocks и тд. Эти паттерны были придуманы еще задолго до появления всяких ваших нодов, реактов и ангуляров и сейчас их актуальность стремится к нулю.

4 Симпатий

ИМХО, лучше сразу изучать design patterns (как минимум общие и наиболее часто используемые), SOLID + хорошенько освоить на практике принципы KISS, DRY, YAGNI, как писать масштабируемый код и прочее программерское.

3 Симпатий

Основа везде (в ООП) та же самая - инкапсуляция, полиморфизм, наследование. Вот например я как то рассказывал про PageFragments (Components, Blocks) - https://www.youtube.com/watch?v=aSmTwARoPJA

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

5 Симпатий

:laughing: ну не надо так, есть и среди девов хорошие ребята)

Почитайте вот эту книгу Джерард Месарош - Шаблоны тестирования xUnit. Рефакторинг кода тестов - 2009
Здесь описаны все основные паттерны и запахи кода автотестов. Больше относится к юнит тестам но все принципы применимы и для других уровней тестирования. Очень рекомендую её для прочтения!

4 Симпатий

Спасибо за рассказ, для меня информация была очень полезна, может у тебя есть еще какие-то доклады по этой теме? Буду рад :slight_smile:

Там на ютубе есть плейлист с моими докладами. Отправил в личку

1 Симпатия

Очень хороший и интересный доклад!
Интересно узнать не пробовал ли заменять множественое наследование на составление обьектов из других обьектов?
Мне кажется что заимствование и связывание методов было более приемлемым чем движение по всей цепочке прототипов?

Да, конечно. Можно и композицией.

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