Size: a a a

2019 November 11

N

Nikita Kryzhin in JS for testing
Denis
я так понял, что Cypress прям в приложение инжектится и имеет прямой доступ ко всему DOM. А пуппетеер подключается к хрому по своему отладочному протоколу, т.е. появляются посредники, которые могут привнести свои собственные ошибки и сделать тесты менее стабильными
puppeteer работает по cdp, как и devtools в chrome
источник

m

mkots in JS for testing
Сайпрес не продает паралелизацию как она есть, он продает дашборд. Вы можете в своем CI запустить сколько хотите инстансов
источник

D

Denis in JS for testing
Alexei Barantsev
я бы не рискнул в одном инстансе, но в разных контекстах, потому что фокус будет иметь только один из них, в результате могут быть особенности в работе событий focus и blur, лучше уж честно поднять с десяток контейнеров
кстати, интересно. спасибо.
источник

m

maryna.kolesnik in JS for testing
Denis
на одной машине? это в режиме безголового электрона?
Скажем так, на одном билдагенте тимсити
источник

m

maryna.kolesnik in JS for testing
mkots
Сайпрес не продает паралелизацию как она есть, он продает дашборд. Вы можете в своем CI запустить сколько хотите инстансов
Там вроде ещё нет поддержки для тимсити
источник

D

Denis in JS for testing
maryna.kolesnik
Скажем так, на одном билдагенте тимсити
но именно с Электрон браузером, а не Хромом? или с хедед хромом?
источник

m

maryna.kolesnik in JS for testing
Denis
на одной машине? это в режиме безголового электрона?
Да, и электрон,  но электрон чисто  из-за библиотеки для сравнивания по скриншотам
источник

B

Bola in JS for testing
mkots
Что-то делали, но айфремы в реверс прокси это как-то странно, как по мне. Для айфреймов все же лучше взять что-то вроде пюпитра ну или на базе вебдрайвера
Поэтому и написал: выбираю пуппитер
источник

N

Nikita Kryzhin in JS for testing
Denis
Я читал пару статеек по тюнингу Puppeteer, чтобы ранать все тесты в одном инстансе хрома, но с разными контекстами. Вы в таком сетапе замеряли?
можно ранить в 1 инстансе хрома и запускать кучу  BrowserContextы https://pptr.dev/#?product=Puppeteer&version=v2.0.0&show=api-overview , у которых свои куки, кеш и т.д.
источник

D

Denis in JS for testing
maryna.kolesnik
Да, и электрон,  но электрон чисто  из-за библиотеки для сравнивания по скриншотам
но ведь Cypress пока не поддерживает хедлесс режим для Хрома (только Электрон). А если запускать на одном билд агенте два Хрома в хедед режиме, то они не начнут фокус друг у друга воровать?
источник

AB

Alexei Barantsev in JS for testing
айфреймы таки уже немного прошлый век. интересно будет узнать, как сайпресс предполагает решить вопрос с shadow dom? есть там какие-нибудь наработки?
источник

D

Denis in JS for testing
Nikita Kryzhin
можно ранить в 1 инстансе хрома и запускать кучу  BrowserContextы https://pptr.dev/#?product=Puppeteer&version=v2.0.0&show=api-overview , у которых свои куки, кеш и т.д.
ага, но вот был комментарий про протенциальную проблему с фокусом
источник

m

maryna.kolesnik in JS for testing
Denis
но ведь Cypress пока не поддерживает хедлесс режим для Хрома (только Электрон). А если запускать на одном билд агенте два Хрома в хедед режиме, то они не начнут фокус друг у друга воровать?
В хедлесс, в контейнере
источник

m

mkots in JS for testing
Alexei Barantsev
айфреймы таки уже немного прошлый век. интересно будет узнать, как сайпресс предполагает решить вопрос с shadow dom? есть там какие-нибудь наработки?
Да, есть, сейчас "активно" пилят https://github.com/abramenal/cypress-shadow-dom
источник

D

Denis in JS for testing
maryna.kolesnik
В хедлесс, в контейнере
так ведь не готово ещё? https://github.com/cypress-io/cypress/issues/832
источник

m

maryna.kolesnik in JS for testing
Электрон
источник

AB

Alexei Barantsev in JS for testing
спасибо, заценим! это более актуально, чем айфреймы
источник

D

Denis in JS for testing
maryna.kolesnik
Электрон
а, ок. меня в электроне смущает, что Хром всё же старовать. 73я версия всё ещё в Cypress
источник

m

maryna.kolesnik in JS for testing
Denis
а, ок. меня в электроне смущает, что Хром всё же старовать. 73я версия всё ещё в Cypress
Смирились(
источник

D

Denis in JS for testing
тогда последний вопрос по Puppeteer - какую обёртку лучше использовать?

Jest выгялдит оч гибким, но большой оверхед из-за кучи ненужного синтаксиса. Можно PO написать, наверн, врапперов всяких, но чёт как-то.

С другой стороны есть CodeceptJS, но какое-то комьюнити маленькое. Даже здесь вопросы по нему часто без ответов оставались. Зато там и параллельный ран из коробки, и визуальное тестирование, и, естественно, сахарный синтаксис.
источник