Fastställa den optimala testpaketkonfigurationen

Med Microsoft Playwright Testing Preview kan du påskynda testkörningen av Playwright genom att öka parallelliteten i molnskala. Flera faktorer påverkar slutförandetiden för din testsvit. Att fastställa den optimala konfigurationen för att minska testsvitens slutförandetid är programspecifikt och kräver experimentering. Den här artikeln beskriver de olika nivåerna för att konfigurera parallellitet för dina tester, de faktorer som påverkar testvaraktigheten och hur du fastställer din optimala konfiguration för att minimera testernas slutförandetid.

I Playwright kan du köra tester parallellt med hjälp av arbetsprocesser. Genom att använda Microsoft Playwright Testing kan du ytterligare öka parallelliteten med hjälp av molnbaserade webbläsare. Att lägga till mer parallellitet minskar i allmänhet tiden för att slutföra testsviten. Att lägga till fler arbetsprocesser resulterar dock inte alltid i kortare slutförandetider för testpaket. Till exempel kan klientdatorns databehandlingsresurser, nätverksfördröjning eller testkomplexitet också påverka testvaraktigheten.

I följande diagram visas ett exempel på hur du kör en testsvit. Genom att köra testpaketet med Microsoft Playwright Testing i stället för lokalt kan du avsevärt öka parallelliteten och minska testtiden. Observera att när du kör med tjänsten når slutförandetiden en minimigräns, varefter tillägg av fler arbetare bara har en minimal effekt. Diagrammet visar också hur användningen av fler databehandlingsresurser på klientdatorn påverkar testtiden för tester som körs med tjänsten.

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

Arbetsprocesser

I Playwright körs alla tester i arbetsprocesser. Dessa processer är OS-processer som körs oberoende, parallellt, orkestrerade av Playwright Test runner. Alla arbetare har identiska miljöer och varje process startar sin egen webbläsare.

Att öka antalet parallella arbetare kan i allmänhet minska den tid det tar att slutföra den fullständiga testsviten. Du kan lära dig mer om playwright testparallellitet i dokumentationen om dramatiker.

Som tidigare visats i diagrammet fortsätter inte testsvitens slutförandetid att minska när du lägger till fler arbetsprocesser. Det finns andra faktorer som påverkar testsvitens varaktighet.

Köra tester lokalt

Som standard @playwright/test begränsar antalet arbetare till 1/2 av antalet CPU-kärnor på datorn. Du kan åsidosätta antalet arbetare för att köra testet.

När du kör tester lokalt begränsas antalet arbetsprocesser till antalet processorkärnor på datorn. Utöver en viss punkt leder tillägg av fler arbetare till resurskonkurration, vilket saktar ner varje arbetare och introducerar testflisighet.

Så här åsidosätter du antalet arbetare som använder kommandoradsflaggan--workers:

npx playwright test --workers=10

Så här anger du antalet arbetare som playwright.config.ts använder inställningen workers :

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

Köra tester med tjänsten

När du använder Microsoft Playwright Testing kan du öka antalet arbetare i molnskala till större antal. När du använder tjänsten fortsätter arbetsprocesserna att köras lokalt, men de resursintensiva webbläsarinstanserna körs nu via fjärranslutning i molnet.

Eftersom arbetsprocesserna fortfarande körs på klientdatorn (utvecklararbetsstation eller CI-agentdator) kan klientdatorn fortfarande bli en flaskhals för skalbar körning när du lägger till fler arbetare. Lär dig hur du kan fastställa den optimala konfigurationen.

Du kan ange antalet arbetare på kommandoraden --workers med flaggan:

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

Alternativt kan du ange antalet arbetare i playwright.service.config.ts med hjälp av inställningen workers :

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

Faktorer som påverkar slutförandetiden

Förutom antalet parallella arbetsprocesser finns det flera faktorer som påverkar testsvitens slutförandetid.

Faktor Effekter på testvaraktighet
Beräkningsresurser för klientdatorer Arbetsprocesserna körs fortfarande på klientdatorn (utvecklararbetsstation eller CI-agentdator) och måste kommunicera med fjärrwebbläsaren. Om du ökar antalet parallella arbetare kan det leda till resurskonkurration på klientdatorn och långsammare tester.
Testkodens komplexitet När testkodens komplexitet ökar kan även tiden för att slutföra testerna öka.
Svarstid mellan klientdatorn och fjärrwebbläsaren Arbetarna körs på klientdatorn och kommunicerar med fjärrwebbläsaren. Beroende på den Azure-region där webbläsarna finns kan nätverksfördröjningen öka. Lär dig hur du kan optimera regionala svarstider i Microsoft Playwright Testing.
Konfigurationsinställningar för Playwright Dramatikerinställningar som tidsgränser för tjänsten, återförsök eller spårning kan påverka testtiden negativt. Experimentera med den optimala konfigurationen för de här inställningarna när du kör dina tester i molnet.
Målprogrammets kapacitet för belastningshantering Genom att köra tester med Microsoft Playwright Testing kan du köra med högre parallellitet, vilket resulterar i en högre belastning på målprogrammet. Kontrollera att programmet kan hantera belastningen som genereras genom att köra dina Playwright-tester.

Läs mer om arbetsflödet för att fastställa den optimala konfigurationen för att minimera testpaketets varaktighet.

Arbetsflöde för att fastställa din optimala konfiguration

Den optimala konfigurationen för att minimera testsvitens slutförandetid är specifik för ditt program och din miljö. För att fastställa din optimala konfiguration experimenterar du med olika nivåer av parallellisering, maskinvarukonfiguration för klientdatorer eller konfiguration av testpaket.

Följande metod kan hjälpa dig att hitta den optimala konfigurationen för att köra dina tester med Microsoft Playwright Testing:

1. Fastställ målet för testtiden

Ta reda på vad som är en acceptabel slutförandetid för testsviten och tillhörande kostnad per testkörning.

Beroende på scenariot kan kraven för test slutförande vara olika. När du kör dina slutpunkt-till-slutpunkt-tester med varje kodändring, som en del av ett arbetsflöde för kontinuerlig integrering (CI), är det viktigt att minimera testernas slutförandetid. När du schemalägger dina slutpunkt-till-slutpunkt-tester i en (nattlig) batchkörning kan du ha krav som är mindre krävande.

2. Kontrollera att testerna körs korrekt på klientdatorn

Innan du kör din Playwright-testsvit med Microsoft Playwright Testing kontrollerar du att dina tester körs korrekt på klientdatorn. Om du kör dina tester som en del av ett CI-arbetsflöde kontrollerar du att testerna körs korrekt på CI-agentdatorn. Kontrollera att du kör dina tester med minst två parallella arbetare för att kontrollera att testerna är korrekt konfigurerade för parallell körning. Läs mer om parallellitet i Playwright.

3. Kör med molnbaserade webbläsare på Microsoft Playwright Testing

När testerna har körts korrekt lägger du till tjänstkonfigurationen för att köra dina tester på molnbaserade webbläsare med tjänsten. Kontrollera att testerna fortsätter att köras korrekt från klientdatorn (utvecklararbetsstation eller CI-agentdator).

Kom igång med snabbstarten : kör Playwright-tester i stor skala med Microsoft Playwright Testing.

4. Kontrollera fjärrwebbläsare i Azure-regionen

Microsoft Playwright Testing kan använda fjärrwebbläsare i Azure-regionen som är närmast din klientdator eller använda den fasta region där arbetsytan skapades.

Lär dig hur du kan optimera regional svarstid för din arbetsyta.

5. Experimentera med antalet parallella arbetare

Experimentera med antalet parallella arbetare för att köra dina tester. Mät testens slutförandetid och jämför med det målmål som du angav tidigare.

Observera vid vilken tidpunkt testets slutförandetid inte längre minskar när du lägger till fler arbetare. Gå vidare till nästa steg för att optimera konfigurationen ytterligare.

Kommentar

Tjänsten är i förhandsversion, men antalet parallella arbetare per arbetsyta är begränsat till 50. Du kan begära en ökning av den här gränsen för din arbetsyta.

6. Skala klienten

När du ökar parallelliteten kan klientdatorn uppleva konkurrens om beräkningsresurser. Öka beräkningsresurserna på klientdatorn, till exempel genom att välja större GitHub-värdbaserade löpare.

Om du har maskinvarubegränsningar kan du också fragmentera dina klienttester.

Kör testerna igen och experimentera med antalet parallella arbetare.

7. Uppdatera konfigurationsinställningarna för Ditt Playwright-test

Konfigurera konfigurationsinställningarna för Ditt Playwright-test, till exempel tidsgränser för testning, spårningsinställningar eller återförsök.