Určení optimální konfigurace sady testů

Microsoft Playwright Testing Preview umožňuje zrychlit provádění testů Playwright zvýšením paralelismu v cloudovém měřítku. Doba dokončení sady testů má vliv na několik faktorů. Určení optimální konfigurace pro snížení doby dokončení sady testů je specifické pro aplikaci a vyžaduje experimentování. Tento článek vysvětluje různé úrovně konfigurace paralelismu pro testy, faktory, které ovlivňují dobu trvání testu a jak určit optimální konfiguraci pro minimalizaci doby dokončení testu.

V playwright můžete testy spouštět paralelně pomocí pracovních procesů. Pomocí microsoft Playwright Testing můžete dále zvýšit paralelismus pomocí prohlížečů hostovaných v cloudu. Obecně platí, že přidání dalšího paralelismu zkracuje dobu dokončení testovací sady. Přidání dalších pracovních procesů ale nemusí vždy vést k kratší době dokončení sady testů. Například výpočetní prostředky klientského počítače, latence sítě nebo složitost testu můžou mít vliv i na dobu trvání testu.

Následující graf obsahuje příklad spuštění testovací sady. Spuštěním sady testů s microsoft Playwright Testing místo místně můžete výrazně zvýšit paralelismus a zkrátit dobu dokončení testu. Všimněte si, že při spuštění se službou dosáhne minimálního limitu dokončení, po kterém přidání dalších pracovních procesů má minimální účinek. Graf také ukazuje, jak použití dalších výpočetních prostředků na klientském počítači pozitivně ovlivňuje dobu dokončení testu pro testy spuštěné se službou.

Line chart that shows the relation between the number of parallel workers and the test suite completion time for different run environments.

Pracovní procesy

V playwright, všechny testy běží v pracovních procesech. Tyto procesy jsou procesy operačního systému, které běží nezávisle paralelně a orchestrují ho playwright Test runner. Všichni pracovníci mají identická prostředí a každý proces spustí vlastní prohlížeč.

Obecně platí, že zvýšení počtu paralelních pracovních procesů může zkrátit dobu potřebnou k dokončení úplné testovací sady. Další informace o paralelismu Playwright Test najdete v dokumentaci Playwright.

Jak je znázorněno v grafu, čas dokončení sady testů se při přidávání dalších pracovních procesů dál nezmenšuje. Existují další faktory, které ovlivňují dobu trvání sady testů.

Místní spouštění testů

Ve výchozím nastavení @playwright/test omezuje počet pracovních procesů na 1/2 počtu jader procesoru na vašem počítači. Počet pracovních procesů pro spuštění testu můžete přepsat.

Při místním spouštění testů je počet pracovních procesů omezený na počet jader procesoru na vašem počítači. Kromě určitého bodu vede přidání dalších pracovních procesů ke kolize prostředků, což zpomalí jednotlivé pracovníky a zavádí testovací flakiness.

Přepsání počtu pracovních procesů pomocí příznaku příkazového --workers řádku:

npx playwright test --workers=10

Určení počtu pracovních procesů při playwright.config.ts použití workers nastavení:

export default defineConfig({
  ...
  workers: 10,
  ...
});

Spouštění testů se službou

Pokud používáte Microsoft Playwright Testing, můžete zvýšit počet pracovních procesů v cloudovém měřítku na větší čísla. Když používáte službu, pracovní procesy se budou dál spouštět místně, ale instance prohlížeče náročné na prostředky teď běží vzdáleně v cloudu.

Vzhledem k tomu, že pracovní procesy stále běží na klientském počítači (vývojářská pracovní stanice nebo počítač agenta CI), může být klientský počítač stále kritickým bodem pro škálovatelné provádění při přidávání dalších pracovních procesů. Zjistěte, jak můžete určit optimální konfiguraci.

Pomocí příznaku můžete zadat počet pracovních procesů na příkazovém --workers řádku:

npx playwright test --config=playwright.service.config.ts --workers=30

Případně můžete pomocí nastavení zadat počet pracovních procesů playwright.service.config.tsworkers :

export default defineConfig({
  ...
  workers: 30,
  ...
});

Faktory, které ovlivňují čas dokončení

Kromě počtu paralelních pracovních procesů existuje několik faktorů, které ovlivňují čas dokončení sady testů.

Faktor Účinky na dobu trvání testu
Výpočetní prostředky klientského počítače Pracovní procesy stále běží na klientském počítači (pracovní stanici vývojáře nebo počítači agenta CI) a potřebují komunikovat se vzdálenými prohlížeči. Zvýšení počtu paralelních pracovních procesů může způsobit kolize prostředků na klientském počítači a zpomalit testy.
Složitost testovacího kódu S rostoucí složitostí testovacího kódu se může také zvýšit doba dokončení testů.
Latence mezi klientským počítačem a vzdálenými prohlížeči Pracovní procesy běží na klientském počítači a komunikují se vzdálenými prohlížeči. V závislosti na oblasti Azure, kde jsou prohlížeče hostované, se může latence sítě zvýšit. Zjistěte, jak můžete optimalizovat regionální latenci v microsoft Playwright Testing.
Nastavení konfigurace playwright Nastavení playwright, jako jsou vypršení časového limitu služby, opakování nebo trasování, mohou nepříznivě ovlivnit dobu dokončení testu. Experimentujte s optimální konfigurací těchto nastavení při spouštění testů v cloudu.
Kapacita zpracování zatížení cílové aplikace Spouštění testů pomocí microsoft Playwright Testing umožňuje spouštět s vyšším paralelismu, což vede k vyššímu zatížení cílové aplikace. Ověřte, že aplikace dokáže zpracovat zatížení vygenerované spuštěním testů Playwright.

Přečtěte si další informace o pracovním postupu pro určení optimální konfigurace pro minimalizaci doby trvání sady testů.

Pracovní postup pro určení optimální konfigurace

Optimální konfigurace pro minimalizaci času dokončení sady testů je specifická pro vaši aplikaci a prostředí. Pokud chcete určit optimální konfiguraci, experimentujte s různými úrovněmi paralelizace, konfigurací hardwaru klientského počítače nebo nastavením sady testů.

Následující přístup vám pomůže najít optimální konfiguraci pro spouštění testů pomocí microsoft Playwright Testing:

1. Určení časového cíle dokončení testu

Zjistěte, jaká je přijatelná doba dokončení sady testů a související náklady na testovací běh.

V závislosti na scénáři se vaše požadavky na dokončení testu můžou lišit. Při spouštění kompletních testů s každou změnou kódu v rámci pracovního postupu kontinuální integrace (CI) je nezbytné minimalizovat dobu dokončení testu. Při plánování kompletních testů v dávkovém (nočním) běhu můžete mít požadavky, které jsou méně náročné.

2. Ověřte, že testy běží správně na klientském počítači.

Před spuštěním sady testů Playwright pomocí nástroje Microsoft Playwright Testing se ujistěte, že testy běží správně na klientském počítači. Pokud testy spouštíte jako součást pracovního postupu CI, ověřte, že testy běží správně na počítači agenta CI. Ujistěte se, že testy spouštíte minimálně se dvěma paralelními pracovními procesy, abyste ověřili, že jsou testy správně nakonfigurované pro paralelní spouštění. Přečtěte si další informace o paralelismu v Playwright.

3. Spuštění s prohlížeči hostovanými v cloudu v microsoft Playwright Testing

Po správném spuštění testů přidejte konfiguraci služby pro spuštění testů v prohlížečích hostovaných v cloudu se službou. Ověřte, že testy stále běží správně z klientského počítače (vývojářská pracovní stanice nebo počítač agenta CI).

Začínáme s rychlým startem: Spouštění testů Playwright ve velkém měřítku pomocí microsoft Playwright Testing

4. Ověření vzdálených prohlížečů oblasti Azure

Microsoft Playwright Testing může používat vzdálené prohlížeče v oblasti Azure, která je nejblíže vašemu klientskému počítači, nebo použít pevnou oblast, ve které byl pracovní prostor vytvořen.

Zjistěte, jak můžete optimalizovat regionální latenci pracovního prostoru.

5. Experimentujte s počtem paralelních pracovních procesů.

Experimentujte s počtem paralelních pracovních procesů ke spuštění testů. Změřte čas dokončení testu a porovnejte ho s cílovým cílem, který jste nastavili dříve.

Všimněte si, kdy se čas dokončení testu už při přidávání dalších pracovních procesů nezmenšuje. Přejděte k dalšímu kroku pro další optimalizaci nastavení.

Poznámka:

Zatímco je služba ve verzi Preview, počet paralelních pracovních procesů na pracovní prostor je omezený na 50. Můžete požádat o zvýšení tohoto limitu pro váš pracovní prostor.

6. Škálování klienta

Při zvyšování paralelismu může klientský počítač zaznamenat kolize výpočetních prostředků. Zvyšte výpočetní prostředky na klientském počítači, například výběrem větších spouštěčů hostovaných na GitHubu.

Pokud máte také omezení hardwaru, můžete testy klienta horizontálně dělit .

Znovu spusťte testy a experimentujte s počtem paralelních pracovních procesů.

7. Aktualizujte nastavení konfigurace playwright testu.

Nakonfigurujte nastavení konfigurace testu Playwright, jako jsou vypršení časového limitu testu, nastavení trasování nebo opakování.