🔥

Тред (Назим Гафаров)


Что взять для UI/E2e-тестов? ⬇️

Используя Selenium-библиотеки вы получаете кучу очень хрупких абстракций. Возьмем, например, yandex.ru/dev/hermione/: Hermione => WebdriverIO => Selenium => Java-интерфейс => драйвер под конкретный браузер. На каждом из уровней вас ждут проблемы, прям как в фильме "Начало".

Поэтому лучше взять решения, которые базируются на родных API браузеров, например github.com/puppeteer/pupp… или github.com/microsoft/play…

Можно, конечно, писать тесты напрямую в Puppeteer, но вам точно понадобится удобная работа с локаторами, Page Objects и т.д. Поэтому обычно к Puppeteer добавляют среду для тестирования; и лично мой фаворит это codecept.io от @davert

Крутость CodeceptJS в том, что вы можете взять любой раннер, не важно WebDriver или TestCafe, Puppeteer или Playwright. Получается что-то типа DSL, который запустится где угодно. Но только это не DSL, а нормальный JavaScript-код.

Если Puppeteer завтра умрет, как умер WebDriver, то вам не нужно будет переписывать свои тесты. Окей, а может лучше взять полноценный DSL типа cucumber.io/docs/gherkin/r…? Как раз сможем посадить менеджеров писать E2e-тесты.

Звучит заманчиво, но я никогда не видел чтобы менеджеры или аналитики писали E2e-тесты. А для программистов, Gherkin это лишний слой абстракции, который рано или поздно "протечет" (как и любая другая абстракция). Подробнее в статье habr.com/ru/post/275013/