Size: a a a

JavaScript testing

2020 December 07

AG

Alex Grigurko in JavaScript testing
Vova
Кто имел опыт с Playwright можете пож подтвердить или опровергнуть следующее умозаключение.
В случае с Playwright нам не нужно запускать каждый отдельный браузер в изолированном окружении как обычно делается для селениума с SeleniumGrid (я сейчас не говорю об удаленном запуске). Т.к. Playwright фактически и так изолирует сессию с помощью browser.newContext(); то мы можем смело запускать на одном хосте много браузеров во много потоков поскольку браузеры не будут конкурировать между собой за фокус в дисплее из-за хедлес, и куки не будут шариться между тестами т.к. используется каждый раз новый контекст
исходя из моего опыта - умозаключение валидное
источник

OK

Oleksandr Khotemskyi in JavaScript testing
Vova
Кто имел опыт с Playwright можете пож подтвердить или опровергнуть следующее умозаключение.
В случае с Playwright нам не нужно запускать каждый отдельный браузер в изолированном окружении как обычно делается для селениума с SeleniumGrid (я сейчас не говорю об удаленном запуске). Т.к. Playwright фактически и так изолирует сессию с помощью browser.newContext(); то мы можем смело запускать на одном хосте много браузеров во много потоков поскольку браузеры не будут конкурировать между собой за фокус в дисплее из-за хедлес, и куки не будут шариться между тестами т.к. используется каждый раз новый контекст
можно на контекстах паралелить, поидее это менее затратно, но на контекстах не получится шерить сессии горизонтально
источник

OK

Oleksandr Khotemskyi in JavaScript testing
Oleksandr Khotemskyi
можно на контекстах паралелить, поидее это менее затратно, но на контекстах не получится шерить сессии горизонтально
типа между разными машинами распределять. Самый простой варик сейчас скейлить плейврайт\пупетир по кластеру машинок - это наверное aerokube moon
источник

ES

Eugene Stogniy in JavaScript testing
источник

OK

Oleksandr Khotemskyi in JavaScript testing
А что тут? Это какой то репортинг? Или оно скейлит как то по клауду тоже?
источник

AP

Alexander Popov in JavaScript testing
Oleksandr Khotemskyi
типа между разными машинами распределять. Самый простой варик сейчас скейлить плейврайт\пупетир по кластеру машинок - это наверное aerokube moon
что ты имеешь ввиду?
источник

AP

Alexander Popov in JavaScript testing
у браузера есть connect который сессию создает как раз
источник

OK

Oleksandr Khotemskyi in JavaScript testing
Alexander Popov
что ты имеешь ввиду?
Это я про контексты, все контексты ведь на одной машине будут
источник

ES

Eugene Stogniy in JavaScript testing
Oleksandr Khotemskyi
А что тут? Это какой то репортинг? Или оно скейлит как то по клауду тоже?
В бесплатной версии - репортинг и скриншотинг
в платной - клауд со скейлом )
Но мы на обычном тестиме сейчас сидим а не на этом (
источник

AP

Alexander Popov in JavaScript testing
Oleksandr Khotemskyi
Это я про контексты, все контексты ведь на одной машине будут
в смысле само управление? ну так это так и надо)
источник

AP

Alexander Popov in JavaScript testing
это точь в точь как два раза сделать await webdriver.build()
источник

OK

Oleksandr Khotemskyi in JavaScript testing
Eugene Stogniy
В бесплатной версии - репортинг и скриншотинг
в платной - клауд со скейлом )
Но мы на обычном тестиме сейчас сидим а не на этом (
Zebrunner тоже все обещает добавить поддержку js фреймворков
источник

OK

Oleksandr Khotemskyi in JavaScript testing
Alexander Popov
в смысле само управление? ну так это так и надо)
Не, у тебя ведь создается инстанс  браузера, а потом ты из него уже плодишь контексты. Ну и в какой то момент захочется скейлить между машинами (горизонтально)
источник

AP

Alexander Popov in JavaScript testing
Oleksandr Khotemskyi
Не, у тебя ведь создается инстанс  браузера, а потом ты из него уже плодишь контексты. Ну и в какой то момент захочется скейлить между машинами (горизонтально)
инстанс браузера это типа фабрики
источник

AP

Alexander Popov in JavaScript testing
он не создается, а "берется"
источник

AP

Alexander Popov in JavaScript testing
вот кароч

 const browserType = playwright[browserName];
   return browserType.connect({
     wsEndpoint: ${options.remoteUrl}/${browserName}/playwright-1.6.1?headless=false,
     timeout: 0,
   });
источник

AP

Alexander Popov in JavaScript testing
ты берешь нужный тип, и потом плодишь браузеры этого типа
источник

OK

Oleksandr Khotemskyi in JavaScript testing
Alexander Popov
вот кароч

 const browserType = playwright[browserName];
   return browserType.connect({
     wsEndpoint: ${options.remoteUrl}/${browserName}/playwright-1.6.1?headless=false,
     timeout: 0,
   });
Это если ты коннектишься к уже запущенному
источник

AP

Alexander Popov in JavaScript testing
нет, это создание
источник

AP

Alexander Popov in JavaScript testing
( в муне по крайней мере )
источник