Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

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

design-patterns
page-object
page-factory
webdriver
solid
page-elements
kiss
dry
yagni
Теги: #<Tag:0x00007fedb82be5f0> #<Tag:0x00007fedb82be348> #<Tag:0x00007fedb82be1b8> #<Tag:0x00007fedb82bdd80> #<Tag:0x00007fedb82bdb00> #<Tag:0x00007fedb82bd9c0> #<Tag:0x00007fedb82bd880> #<Tag:0x00007fedb82bd718> #<Tag:0x00007fedb82bd5d8>

#1

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

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

at.info weekly #5 : 10 книг, тест кейсы, Agile практики, Netflix, паттерны автоматизации, программирование на Python
(Bohdan B) #2

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


(Maxim Andryushchenkov) #3

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


(Sergei Chipiga) #4

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


(Oleksandr Khotemskyi) #5

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

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


(Maxim Andryushchenkov) #6

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


(Dmitri Komarist) #7

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


(rus) #8

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


(Oleksandr Khotemskyi) #9

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


(Dmitri Komarist) #10

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


(Oleksandr Khotemskyi) #11

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

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