Protractor vs Webdriver IO, помогите выбрать.

Насколько я знаю, в мире JS автоматизации это два самых популярных инструмента для UI тестирования.

Тестируемое приложение будет писаться на Reactе, т.е преимущество Protractorа в работе с Angular приложениями не играет никакой роли.

Хотелось бы услышать мнение людей, которые попробовали и тот и тот инструмент и сделали выводы.
Или если вы используете другой инструмент на JS- скажите почему выбрали именно его.

angular-protractor

@Roma_Borodavka we used protractor based solution for product written with using of React.
In case you don’t have Angular at the front-end side you can consider to use GitHub - alfonso-presa/protractor-testability-plugin: This plugin allows synchronous testing with protractor even when not using AngularJS to make your life easier.

Anyway both options are good. I found some issues with webdriverIO when was working with complex actions like hold some key and move from one point to another. But I used wdio v4 and v5 has been released not so long time ago, so maybe they added some fixes.

русский отвечает русскому на русскоязычном форуме на английском

7 лайков

Может, немножко не в тему, у меня в проекте аппликация на реакте, сам проект на .Net, для автоматизации использую обычный Selenium WebDriver + C# + SpecFlow. Основная причина - такое было требование к автоматизации.

На самом деле особой разницы нету, я лично топлю за протрактор, возможно если столкнешься c какой-то “НУ очень” нетривиальной проблемой связанной с фреймворком - разрабы webdriverIO быстрее дадут ответ.

Мы сначало на nightwatch писали. Теперь вся компания перешла на webdriverIO. Пока без пререканий. Куча всех фич out the box: пераллельное тестирование, asynch или synch выбираете что любите. Большая community и баги фиксаются очень быстро если найдете такие, куча разных плагинов которые добавляются в одну строчку и без заморочек

А чего Puppeteer не рассматриваете? На наших сампл тестах он даже в “головастом” режиме оказался быстрее Webdriver (не берусь утверждать насчет всех проектов, но на нашем так). Отлично работает под jest в качестве раннера. Да, для настройки надо разобраться, покопаться в API, чтобы освоить методы, но после этого разработка идет весьма резво на тех же PageObjects+PageElements в качестве паттерна. Недостаток Puppeteer - работа только под хромом. Если критична кроссбраузерность, то да, не вариант - по крайней мере пока. Но ИМХО на уровень UI выносить стоит только acceptance тесты, и здесь кроссбраузерность не всегда критична. Все, что можно вынести на уровень React-компонентов и тестить с помощью Enzyme, стоит тестить именно там. В любом случае, стоит посмотреть в сторону Puppeteer, если кроссбраузерность не критична.

Тогда уж cypress лучше посмотреть. Он хотя бы на тестирование заточен.

JFYI Под ФФ тоже недавно появился
https://twitter.com/chromiumdev/status/1070790759937269761?s=21

Это это что-то вроде альфаверсии. В любом случае если нужна кроссбраузерность - cypress плохой выбор