[Тестирование веб-сервисов] Selenium vs Puppeteer vs Cypress vs Playwright
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Всем привет. Я QA Аutomation engineer уже 14 лет и 9 из них мне так или иначе приходилось работать с автоматизацией веб-приложении (и не только). Я писала свои автотесты на C#, Java, и JS. Сейчас я хотела бы поделиться опытом, как я выбираю фреймворк для тестирования веб приложения. Думаю, для кого-то мой текст может быть полезен. Первое, с чего следует начинать создание своего фреймворка, - это выбор движка взаимодействия с браузером. Именно движок в дальнейшем станет краеугольным камнем ваших тестов. Поэтому выбор движка является фундаментом дома, который вы строите (и потом этот фундамент никак не переделать сторонними библиотеками).Глава 1. Выбор движкаНа данный момент времени есть 4 популярных способа работы с браузером: Selenium, Puppeteer, Cypress и Playwright. Ниже приведена таблица сравнений этих движков. SeleniumPuppeteerCypressPlaywrightРазработчикGoogleMicrosoftПроект стартовалВ 2004.В 2012.В 2015.В 2020 (в интернете сложнее будет найти помощь в решение проблемы).какие браузеры поддерживаютChrome, Firefo, Edge, Internet Explorer, Opera, Safari.Chrome-family browsers (Electron, new Edge).Chrome-family browsers (Electron, new Edge), Firefox.Chrome-family browsers (Electron, new Edge), Firefox, WebKit.CodeВесь открытый код.Весь открытый код.Есть платные обучалки.Весь открытый код.Язык программированияJava,Python,C#,Ruby,JavaScript.И другие.Java,Python,C#,JavaScript,TypeScript.И другие.JavaScript,TypeScript.Java,Python,C#,JavaScript,TypeScript.Явное сетевое управлениеНет.Нет.Представляет общеконтекстный перехват сети для заглушки и имитации сетевых запросов.Представляет общеконтекстный перехват сети для заглушки и имитации сетевых запросов.Безголовый режим для браузеровНе все драйверы поддерживают безголовый режим.Поддерживает безголовый режим.Поддерживает безголовый режим.Поддерживает безголовый режим.OSНужны Mac для Safari и Windows для IE (Edge).Работают на 3-х платформах (Windows, Mac, Linux).Работают на 3-х платформах (Windows, Mac, Linux).Работают на 3-х платформах (Windows, Mac, Linux).Принцип работыВ Selenium WebDriver у вас есть три процесса:1.Selenium WebDriver.2.Драйвер браузера, такой как ChromeDriver , GeckoDriver (для Firefox), EdgeDriver , SafariDriver и т. Д.3.Cам браузер. Все связи между этими процессами означают, что тесты Selenium занимают много времени. Чем хорош Puppeteer? Он запускает headless-браузер и использует DevTools протокол, поэтому тесты проходят быстрее и стабильнее по сравнению с Selenium.Код, который вы пишете в своих тестовых сценариях Cypress, не запускается вне браузера, как в WebDriver. Его запускает браузер. Фактически, он выполняет ваш тестовый код и код приложения, которое вы тестируете. Тесты, написанные с помощью Playwright, выполняются в изолированной среде с чистого листа, называемой контекстами браузера.Результат скорости отсюда Среднее время выполнения (в секундах)3.662.2210.353.19Стандартное отклонение (в секундах)0.650.412.671.23На выбор движка влияет очень важный аспект: как вы планируете запускать свои тесты. А именно как вы планируете настраивать свою непрерывную интеграцию.Глава 2: как мы будем запускать?SeleniumPuppeteerCypressPlaywrightOSДля запуска Safari требуется Mac. Для запуска IE требуется Windows.Может работать на Windows, macOS, Linux.Может работать на Windows, macOS, Linux.Может работать на Windows, macOS, Linux.Первый способ прогона тестов: создать агента и запускать тесты на нем. Ты сам создаешь агента (машину) с нужной OS и запускаешь тесты на ней. Агентом может быть локальный компьютер.Агенты.Мы должны создать два агента: один Windows, другом Mac (если хотим использовать браузеры Safari и IE)Можно создать только одного агента (Windows, macOS, Linux).Можно создать только одного агента (Windows, macOS, Linux).Можно создать только одного агента (Windows, macOS, Linux).Запуск параллельно на разных браузерах.Мы должны использовать selenium grid, если у нас разные браузеры.Просто запустить.Просто запустить.Просто запустить.Второй способ: облачный сервис. Подключение к стороннему серверу с браузерами и использование их для прогона автотестов.Какие есть?Очень много серверов поддерживает Selenium.Точно есть BrowserStack и Sauce Labs и TestingBot.Точно есть BrowserStack и Sauce Labs и TestingBot.Точно есть Sauce Labs и TestingBot (в теории поддерживает удаленное подключение. Нужно ли платить?Да.Да.Да.Да.Ели вы выбрали второй путь, советую прочитать вот эту сравнительную статью.Первый способ vs Второй способПервый способВторой способНужно ли платить?Нет.Да.Скорость исполнения кода.Быстрее.Медленнее.Поддержка автоматизатором агента (браузера).Да.Нет.Резюме:
- Если вам очень важно тестировать на IE или на подлинном Safari, вам подойдет только Selenium - он многовековой, проверенный временем продукт. Если вы выбрали Selenium, то советую использовать облачные серверы. Иначе, вся работа по обновлению WebDriver и браузера, ляжет на ваши плечи.
- Если вам важна кроссбраузерность, но от поддержки IE вы отказались (он перестает поддерживаться в 2021-2022 году), а также вы согласны на движок WebKit, вместо Safari, то смело берите Playwright. Это достаточно молодой продукт, но быстро развивающийся. Лучше, конечно, содержать своего агента потому, что он будет дешевым (можно купить безголового Linux агента). Обновления браузеров идет внутри пакета Playwright. По факту эти браузеры могут не стоять на машине, они запускаются из коробки Playwright.
- Если вам не важна кроссбраузерность и можно гонять тесты на одном браузере, тогда берите Puppeteer. Он самый шустрый, а также chromium, на данный момент времени, самый стабильный браузер.
- Если вам важно делать Network mocking в тестах, то используйте Cypress, там больше готовых сценариев чем на Playwright. Но! Это решение подходит только для тех, кто дружит с JS.
Глава 3: что дальше?Выбор Test Runners.Следующими этапами после выбора Движка должны быть этап выбора Test Runners. Фреймворка, который будет ваши тесты организовывать. Тест раннеры зависят от языка программирования, на которых вы пишете. Для JS можно сравнить 3 самых популярных: Jest, Mocha и Jasmine.В автоматизации я не заметила особой разницы в использовании того или иного раннера, но один пункт все-таки отмечу:JestJasmineMochaПараллельный запуск.Да.Да, но нужно устанавливать дополнительный пакет.Да, но нужно устанавливать дополнительный пакетТут находится хороший текст, переведенный с английского языкапо этому поводу:«Два популярных соперника - это Jest и Mocha. Jest - это среда тестирования с открытым исходным кодом разработанная Facebook. Встроенный в популярный пакет create-react-app, он быстрее и удобнее для написания идиоматических тестов на JavaScript. Он имеет встроенные возможности имитации и утверждения при параллельном запуске тестов, что обеспечивает более плавный и быстрый запуск теста. Одной из уникальных особенностей Jest является то, что он обеспечивает тестирование снимков для полного контроля над пользовательским интерфейсом. Mocha предоставляет разработчикам базовую среду тестирования с такими опциями, как библиотеки assertion, mocking и spy. Это одна из самых гибких библиотек для тестирования JavaScript. Небольшой недостаток Mocha - это необходимость в дополнительной настройке. Chai, самая популярная библиотека утверждений с открытым исходным кодом, используется с Mocha».ЭпилогОберткаТретьим этапом подготовки к автоматизации должен быть выбор фреймворка - обертки на движок. Например WebdriverIO (для Selenium) или CodeceptJS (для Selenium или Puppeteer). Выбор обертки также следует делать, взвешивая плюсы и минусы. Это тема для следующей статьи. Помимо всего прочего, есть еще визуальные фреймворки. Самыми популярными являются Percy и Applitools. Они добавят в ваше приложение красивое сравнение скриншотов, если это вам необходимо.Движки Cypress и Playwright можно использовать без дополнительных обёрток, в них отлично описаны функции. Selenium и Puppeteer лучше обертывать всегда, чтобы не изобретать велосипед.На этом у меня пока все. Спасибо за внимание!
===========
Источник:
habr.com
===========
Похожие новости:
- [Разработка веб-сайтов, Тестирование IT-систем, Тестирование веб-сервисов, Тестирование мобильных приложений, Agile] Может ли автоматизированное тестирование заменить ручное и другие «дурацкие» вопросы
- [Информационная безопасность, Разработка веб-сайтов, API, Тестирование веб-сервисов] Nemesida WAF 2021: защита сайтов и API от хакерских атак
- [Высокая производительность, Серверное администрирование, Тестирование веб-сервисов, Облачные сервисы] Смертельное переполнение стека. Почему мы потеряли свой DNS и как предотвратить такое в будущем (перевод)
- [PHP, Программирование, Тестирование веб-сервисов] Веб-скрейпинг на PHP (перевод)
- [Тестирование IT-систем, Тестирование веб-сервисов, Тестирование мобильных приложений, Тестирование игр] Проверка эффективности автотестов (перевод)
- [Тестирование IT-систем, Сетевые технологии, Тестирование веб-сервисов, Развитие стартапа] Продукт без тестирования
- [Тестирование веб-сервисов] Чек-лист подготовки к собеседованию на позицию ручного web-тестировщика
- [Тестирование IT-систем, Тестирование веб-сервисов, Тестирование мобильных приложений, Подготовка технической документации] Юзер-стори идеальная, а багов 100500? Как мы тестируем документацию
- [Тестирование веб-сервисов, Тестирование мобильных приложений] Как лояльные пользователи помогают тестировать любимый сервис. Бета-тест IVI — грани невозможного
- [Тестирование IT-систем, Тестирование веб-сервисов, Тестирование мобильных приложений, Тестирование игр] Регрессионное тестирование на Scrum-проектах: руководство по проведению
Теги для поиска: #_testirovanie_vebservisov (Тестирование веб-сервисов), #_avtomatizatsija_testirovanija (автоматизация тестирования), #_avtotesty (автотесты), #_puppeteer, #_playwright, #_selenium, #_cypress, #_testirovanie_vebservisov (
Тестирование веб-сервисов
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 07:58
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Всем привет. Я QA Аutomation engineer уже 14 лет и 9 из них мне так или иначе приходилось работать с автоматизацией веб-приложении (и не только). Я писала свои автотесты на C#, Java, и JS. Сейчас я хотела бы поделиться опытом, как я выбираю фреймворк для тестирования веб приложения. Думаю, для кого-то мой текст может быть полезен. Первое, с чего следует начинать создание своего фреймворка, - это выбор движка взаимодействия с браузером. Именно движок в дальнейшем станет краеугольным камнем ваших тестов. Поэтому выбор движка является фундаментом дома, который вы строите (и потом этот фундамент никак не переделать сторонними библиотеками).Глава 1. Выбор движкаНа данный момент времени есть 4 популярных способа работы с браузером: Selenium, Puppeteer, Cypress и Playwright. Ниже приведена таблица сравнений этих движков. SeleniumPuppeteerCypressPlaywrightРазработчикGoogleMicrosoftПроект стартовалВ 2004.В 2012.В 2015.В 2020 (в интернете сложнее будет найти помощь в решение проблемы).какие браузеры поддерживаютChrome, Firefo, Edge, Internet Explorer, Opera, Safari.Chrome-family browsers (Electron, new Edge).Chrome-family browsers (Electron, new Edge), Firefox.Chrome-family browsers (Electron, new Edge), Firefox, WebKit.CodeВесь открытый код.Весь открытый код.Есть платные обучалки.Весь открытый код.Язык программированияJava,Python,C#,Ruby,JavaScript.И другие.Java,Python,C#,JavaScript,TypeScript.И другие.JavaScript,TypeScript.Java,Python,C#,JavaScript,TypeScript.Явное сетевое управлениеНет.Нет.Представляет общеконтекстный перехват сети для заглушки и имитации сетевых запросов.Представляет общеконтекстный перехват сети для заглушки и имитации сетевых запросов.Безголовый режим для браузеровНе все драйверы поддерживают безголовый режим.Поддерживает безголовый режим.Поддерживает безголовый режим.Поддерживает безголовый режим.OSНужны Mac для Safari и Windows для IE (Edge).Работают на 3-х платформах (Windows, Mac, Linux).Работают на 3-х платформах (Windows, Mac, Linux).Работают на 3-х платформах (Windows, Mac, Linux).Принцип работыВ Selenium WebDriver у вас есть три процесса:1.Selenium WebDriver.2.Драйвер браузера, такой как ChromeDriver , GeckoDriver (для Firefox), EdgeDriver , SafariDriver и т. Д.3.Cам браузер. Все связи между этими процессами означают, что тесты Selenium занимают много времени. Чем хорош Puppeteer? Он запускает headless-браузер и использует DevTools протокол, поэтому тесты проходят быстрее и стабильнее по сравнению с Selenium.Код, который вы пишете в своих тестовых сценариях Cypress, не запускается вне браузера, как в WebDriver. Его запускает браузер. Фактически, он выполняет ваш тестовый код и код приложения, которое вы тестируете. Тесты, написанные с помощью Playwright, выполняются в изолированной среде с чистого листа, называемой контекстами браузера.Результат скорости отсюда Среднее время выполнения (в секундах)3.662.2210.353.19Стандартное отклонение (в секундах)0.650.412.671.23На выбор движка влияет очень важный аспект: как вы планируете запускать свои тесты. А именно как вы планируете настраивать свою непрерывную интеграцию.Глава 2: как мы будем запускать?SeleniumPuppeteerCypressPlaywrightOSДля запуска Safari требуется Mac. Для запуска IE требуется Windows.Может работать на Windows, macOS, Linux.Может работать на Windows, macOS, Linux.Может работать на Windows, macOS, Linux.Первый способ прогона тестов: создать агента и запускать тесты на нем. Ты сам создаешь агента (машину) с нужной OS и запускаешь тесты на ней. Агентом может быть локальный компьютер.Агенты.Мы должны создать два агента: один Windows, другом Mac (если хотим использовать браузеры Safari и IE)Можно создать только одного агента (Windows, macOS, Linux).Можно создать только одного агента (Windows, macOS, Linux).Можно создать только одного агента (Windows, macOS, Linux).Запуск параллельно на разных браузерах.Мы должны использовать selenium grid, если у нас разные браузеры.Просто запустить.Просто запустить.Просто запустить.Второй способ: облачный сервис. Подключение к стороннему серверу с браузерами и использование их для прогона автотестов.Какие есть?Очень много серверов поддерживает Selenium.Точно есть BrowserStack и Sauce Labs и TestingBot.Точно есть BrowserStack и Sauce Labs и TestingBot.Точно есть Sauce Labs и TestingBot (в теории поддерживает удаленное подключение. Нужно ли платить?Да.Да.Да.Да.Ели вы выбрали второй путь, советую прочитать вот эту сравнительную статью.Первый способ vs Второй способПервый способВторой способНужно ли платить?Нет.Да.Скорость исполнения кода.Быстрее.Медленнее.Поддержка автоматизатором агента (браузера).Да.Нет.Резюме:
=========== Источник: habr.com =========== Похожие новости:
Тестирование веб-сервисов ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 07:58
Часовой пояс: UTC + 5