Selenium vs Cypress — бросит ли кипарис вызов Selenium

Когда мы говорим о веб-автоматизации, нам всегда приходит на ум Selenium. Будучи одним из лучших инструментов в отрасли, с такой большой поддержкой на разных языках (бесплатная также помогает) и в отрасли почти 12 лет. У Selenium так много поклонников в индустрии тестирования (включая меня) из-за его сообщества, которое так выросло. Кроме того, Selenium WebDriver теперь стал стандартом W3C. Об этом подробнее здесь"

Если вы спросите любого, кто занимается автоматизацией пользовательского интерфейса более 2–3 лет, какой инструмент они используют, почти 80–85% ответят, что Selenium или инструменты, которые используют Selenium в бэкэнде. Теперь вопрос, который мы должны задать, может ли быть какой-либо инструмент тестирования, который бросает вызов Selenium?

Кипарис? Cypress — это инструмент автоматизации javascript для сквозного тестирования. Если вы читаете это, я предполагаю, что у вас есть некоторое представление об архитектуре Selenium и о том, как она работает. Cypress не работает так, как работает selenium, между клиентом и сервером нет вызовов Rest. Кипарис — полная противоположность ему.

Cypress выполняется в том же цикле, что и ваше приложение. В конце концов, Cypress — это серверный процесс Node. Cypress и процесс Node постоянно взаимодействуют, синхронизируются и имеют доступ к обеим частям (передней и задней), что дает нам возможность реагировать на события вашего приложения в режиме реального времени, и в то же время работать вне браузера для задач, требующих более высокая привилегия. В Cypress есть удивительные моменты, а также серьезные недостатки. Несмотря на серьезное ограничение, Cypress получил финансирование в размере 14,8 миллионов долларов. Рынок видит в этом что-то хорошее.

Кипарис удивительные моменты:-

  • Настройка: нет никаких серверов, драйверов или каких-либо других зависимостей, которые нужно устанавливать или настраивать. Действительно быстро и легко настраивается.
  • Собственный доступ: у вас есть доступ ко всему, так как cypress работает внутри вашего веб-браузера. Здесь нет сетевого протокола (как в Selenium) — у вас есть доступ ко всему. Ваш тестовый код может получить доступ ко всем тем внешним объектам, что и код вашего приложения.
  • Путешествие во времени: Cypress делает снимки во время выполнения ваших тестов. Вы можете навести курсор и увидеть пользовательский интерфейс тестового прогона.
  • Возможность отладки: открытые инструменты разработки и Selenium не работают. Выполняйте отладку непосредственно из знакомых инструментов, таких как Инструменты разработчика. Читаемые ошибки и трассировка стека полезны.
  • Автоматическое ожидание: неявное ожидание или явное ожидание, давайте использовать плавное ожидание с ожидаемым условием в Selenium. В Cypress не требуется никаких ожиданий (если вы не имеете дело с iframe, который не полностью поддерживается Cypress).
  • Управление сетевым трафиком: поскольку Cypress работает внутри браузера, мы можем контролировать сетевые вызовы-заглушки без какого-либо сервера. Мы можем проверить все граничные условия, которые сложно создать, используя реальные способы. Легко имитировать сетевые вызовы во внешнем интерфейсе и тестировать функциональность приложения.
  • Результаты. Тест — это быстрый, стабильный и надежный тест без хлопьев.
  • Скриншоты и видео: просмотр скриншотов, сделанных автоматически при сбое, или видео всего набора тестов при запуске из CL.

Ограничение:

  • Несколько браузеров открыты одновременно: Cypress никогда не будет поддерживать несколько браузеров, открытых одновременно.
  • Поддержка браузера: пока поддерживает только хром и электрон. Не инструмент для кросс-браузерного тестирования.

Вывод:-

Итак, чтобы завершить мой опыт работы с обоими инструментами, нужно изучить и использовать кипарис на данный момент, если вам не нужна поддержка нескольких браузеров. Поддержка сообщества не так велика, и если мы застряли, нам нужно глубоко погрузиться и исследовать. Есть некоторые сценарии (например, iframe), в которых Cypress не поддерживает напрямую, и нам нужно использовать несколько обходных путей. Мне нравится, что это быстро и не хлопает. Он также имеет поддержку TDD и BDD.