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

Здравствуйте. Интересует два вопроса по поводу автоматизации с 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) - Page Fragments как развитие идеи Page Object паттерна - YouTube

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

5 лайков

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

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

4 лайка

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

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

1 лайк

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

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

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