Playwright или Cypress: паралелизмът може да оскъпи лесното отстраняване на грешки

|Автор: Редакционният екип на QUASA|6 мин. четене
Playwright или Cypress: паралелизмът може да оскъпи лесното отстраняване на грешки

Playwright е по-прекият избор, когато екипът иска да управлява паралелните E2E тестове в собствен CI. Cypress е привлекателен, ако визуалното възпроизвеждане на провал е водещо и екипът ще използва Cypress Cloud за разпределяне на тестовите файлове между машини. По-краткото чакане обаче може да повиши разхода за CI, а по-широката браузърна матрица — потреблението на записани резултати в Cloud.

Първо определете кои браузъри са задължителни, колко голям е тестовият пакет и къде ще се пазят данните за провален тест. Worker процесите в една машина, броят CI машини и броят изпълнени тестове са различни величини. Ако се смесят в една оценка за „скорост“, лесно се подценяват както сметката, така и времето за намиране на причината за провала.

Как паралелизмът влиза в сметката за CI

Паралелни Cypress тестове за различни браузъри заемат различен брой CI машини.

Ръководството за паралелизъм на Playwright описва изпълнение на тестовите файлове паралелно по подразбиране в отделни worker процеси; тестовете в един файл обичайно вървят последователно. Броят процеси може да се ограничи според ресурсите на CI машината, а пакетът може да се раздели между машини. Повече процеси в една и съща задача не означават автоматично повече таксувани CI задачи, но споделят нейния процесор и памет.

Указанията на Cypress за браузърни групи показват как тестовите файлове се разпределят паралелно между CI машини чрез записано изпълнение в Cypress Cloud. В примерната конфигурация Chrome получава повече машини от Firefox и изпълнява по-широк набор тестове. Така капацитетът може да следва важността на браузъра, но всяка допълнителна машина трябва да присъства в сметката за инфраструктура.

Сравнявайте общото време на заетите машини, умножено по приложимата тарифа за всяка задача, а не само минутите до готов резултат. Условно, ако два браузъра заемат по три машини за осем минути, резултатът може да пристигне след около осем минути, докато потреблението е 48 машинни минути. При строго линейно таксуване самото разпределяне на една и съща работа не я оскъпява непременно; допълнителни браузърни изпълнения, стартови разходи, минимални таксувани интервали и по-скъпи машини могат да променят крайната цена.

Кои браузъри действително покрива пакетът

Една уеб проверка се изпълнява в отделни браузърни среди за оценка на покритието.

Документацията за браузърите на Playwright посочва Chromium, Firefox и WebKit, както и работа с инсталираните Google Chrome и Microsoft Edge чрез отделни конфигурации. Проектите позволяват една и съща проверка да се изпълнява с различни браузърни настройки. Playwright използва собствена версия на WebKit, която не е идентична с брандирания Safari; за поведение, зависещо от операционната система, средата на изпълнение също има значение.

Cypress поддържа браузъри от семейството на Chrome, Firefox и WebKit, като избраният браузър се задава за конкретното изпълнение. Затова списък с енджини не е достатъчна браузърна матрица: уточнете нужните версии, операционни системи и критични потребителски потоци. Ако една и съща проверка се изпълнява в още един браузър, това е допълнителна тестова работа дори когато двете изпълнения протичат едновременно.

За малък пакет пълното покритие във всеки избран браузър може да е лесно за поддържане. При голям пакет разделянето на критичните потоци от останалите проверки ограничава броя изпълнения на всяка промяна. Това е решение за обхвата на тестовете, което екипът взема според риска; никоя от двете рамки не определя вместо него кои проверки са задължителни.

Как се стига от провала до причината

Cypress възпроизвежда състоянията на провален тест, за да се открие моментът на грешката.

Визуалната диагностика има различна организация при двата инструмента. Cypress може да запази снимка при провал в режим cypress run, а Test Replay позволява преглед на записаното изпълнение в Cypress Cloud, включително състоянието на страницата и диагностичните данни около грешката. Местната снимка и облачното възпроизвеждане не са една и съща възможност: второто зависи от записването на резултатите в услугата.

Правилата за потребление на Cypress Cloud броят всеки записан успешен или неуспешен тест като резултат по плана и свързват записаните изпълнения с Test Replay и паралелното разпределяне. Допълнителна CI машина, която изпълнява част от същия пакет в същия браузър, сама по себе си не удвоява броя резултати. Повторението на пакета в още един браузър го увеличава; след изчерпване на включения обем последицата зависи от условията на плана.

Playwright предлага Trace Viewer за записани действия, състояния на страницата и мрежова активност. Trace може да се отвори локално или през браузър и да се пази като CI артефакт, но екипът трябва да настрои кога се създава и как се намира от провалената задача. При сравнение на диагностиката полезната мярка е времето от известието за провал до установяването на причината, а не само времето до червен CI статус.

Паралелното изпълнение изисква независими данни

Отделните BrowserContext среди на Playwright изолират браузърните данни като бисквитки и локално хранилище. Те не разделят автоматично записите в общата база данни на приложението. Ако паралелни тестове редактират една и съща поръчка или използват един акаунт, конфликтът остава възможен независимо от изолацията в браузъра.

Разпределянето на Cypress файлове между машини поставя сходно изискване към началното състояние на приложението. Един дълъг тестов файл остава една единица работа и добавянето на машини не го разделя на части. При оценка на стабилността има смисъл да се следят повторните изпълнения и провалите от споделени данни заедно с общата продължителност: нестабилен бърз пакет може да удължи пътя до надежден резултат.

Какво измерва публикуваното сравнение

В сравнителното изследване на Moń и Pańczyk Playwright, Cypress и Selenium изпълняват сценарии в едно приложение за онлайн магазин на работна станция с Windows. Всеки тестов скрипт е изпълнен десет пъти; авторите сравняват средната продължителност и използването на процесор и памет. По публикуваната таблица Playwright е най-бърз в шест от десетте сценария, но при част от по-дългите проверки друг инструмент има по-кратко време.

Това измерване показва резултатите от конкретни скриптове, приложение и машина. В него няма паралелна браузърна матрица върху няколко CI машини, такса от доставчик на CI или измерено време за разследване на провал. Следователно предимството в отделен сценарий не може направо да се превърне в прогноза за цената или стабилността на целия пакет на друг екип.

Избор според размера на пакета и средата

  • При малък пакет и силна нужда от визуално възпроизвеждане Cypress с Cloud има ясен диагностичен смисъл. Сравнете го с Playwright и достъпа до неговите trace артефакти, като включите условията за записани резултати.
  • При широка браузърна матрица и собствен CI Playwright дава пряк контрол върху worker процесите и разделянето на пакета между машини. Оценявайте всяка браузърна конфигурация по време до резултат и общо потребление на CI ресурси.
  • При голям пакет, вече организиран около Cypress Cloud, различните браузърни групи могат да получат различен брой машини. Съпоставете спестеното чакане с машинните минути и броя записани тестови резултати за целия период на таксуване.

Решаващата величина е цената на надежден и разбираем резултат за една промяна: CI ресурсите, записаните изпълнения и работата по провалите трябва да се разглеждат заедно. Така по-бързият паралелен тест запазва стойността си и след като се появи грешка.

Прочетете също:

Споделяне:

Абонирайте се за нашия бюлетин

Получавайте най-новите новини за Web3, AI и криптовалути директно във входящата си поща.

0