Udostępnij za pośrednictwem


Określanie optymalnej konfiguracji zestawu testów

Program Microsoft Playwright Testing Preview umożliwia przyspieszenie wykonywania testów dramaturgicznych przez zwiększenie równoległości w skali chmury. Kilka czynników wpływa na czas ukończenia zestawu testów. Określenie optymalnej konfiguracji w celu zmniejszenia czasu ukończenia zestawu testów jest specyficzne dla aplikacji i wymaga eksperymentowania. W tym artykule opisano różne poziomy konfigurowania równoległości testów, czynników wpływających na czas trwania testu oraz sposobu określania optymalnej konfiguracji w celu zminimalizowania czasu ukończenia testu.

W programie Playwright można uruchamiać testy równolegle przy użyciu procesów roboczych. Korzystając z testowania dramaturgicznego firmy Microsoft, można jeszcze bardziej zwiększyć równoległość przy użyciu przeglądarek hostowanych w chmurze. Ogólnie rzecz biorąc, dodanie większej liczby równoległości skraca czas ukończenia zestawu testów. Jednak dodanie większej liczby procesów roboczych nie zawsze powoduje skrócenie czasu ukończenia zestawu testów. Na przykład zasoby obliczeniowe maszyny klienckiej, opóźnienie sieci lub złożoność testu mogą również mieć wpływ na czas trwania testu.

Poniższy wykres przedstawia przykład uruchamiania zestawu testów. Uruchamiając zestaw testów przy użyciu testowania playwright firmy Microsoft zamiast lokalnego, można znacznie zwiększyć równoległość i skrócić czas ukończenia testu. Zwróć uwagę, że w przypadku uruchamiania z usługą czas ukończenia osiągnie minimalny limit, po którym dodanie większej liczby procesów roboczych ma minimalny efekt. Wykres pokazuje również, jak użycie większej liczby zasobów obliczeniowych na maszynie klienckiej pozytywnie wpływa na czas ukończenia testu dla testów uruchomionych z usługą.

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

Procesy robocze

W programie Playwright wszystkie testy są uruchamiane w procesach roboczych. Te procesy to procesy systemu operacyjnego, uruchamiane niezależnie, równolegle, zaaranżowane przez moduł uruchamiający test playwright. Wszyscy pracownicy mają identyczne środowiska, a każdy proces uruchamia własną przeglądarkę.

Ogólnie rzecz biorąc, zwiększenie liczby równoległych procesów roboczych może skrócić czas potrzebny na ukończenie pełnego zestawu testów. Więcej informacji na temat równoległości testów dramaturgów można dowiedzieć się w dokumentacji dramaturgu.

Jak pokazano wcześniej na wykresie, czas ukończenia zestawu testów nie będzie nadal zmniejszany w miarę dodawania większej liczby procesów roboczych. Istnieją inne czynniki wpływające na czas trwania zestawu testów.

Uruchamianie testów lokalnie

Domyślnie @playwright/test ogranicza liczbę procesów roboczych do 1/2 liczby rdzeni procesora CPU na maszynie. Możesz zastąpić liczbę procesów roboczych na potrzeby uruchamiania testu.

Podczas lokalnego uruchamiania testów liczba procesów roboczych jest ograniczona do liczby rdzeni procesora CPU na maszynie. Poza pewnym punktem dodanie większej liczby procesów roboczych prowadzi do rywalizacji o zasoby, co spowalnia poszczególne procesy robocze i wprowadza flakiness testów.

Aby zastąpić liczbę procesów roboczych przy użyciu flagi --workerswiersza polecenia:

npx playwright test --workers=10

Aby określić liczbę procesów roboczych przy playwright.config.ts użyciu workers ustawienia:

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

Uruchamianie testów za pomocą usługi

W przypadku korzystania z testowania playwright firmy Microsoft można zwiększyć liczbę procesów roboczych w skali chmury do większej liczby. W przypadku korzystania z usługi procesy robocze będą nadal działać lokalnie, ale wystąpienia przeglądarki intensywnie korzystające z zasobów działają zdalnie w chmurze.

Ponieważ procesy robocze nadal działają na maszynie klienckiej (stacji roboczej dewelopera lub maszynie agenta ciągłej integracji), maszyna kliencka może nadal stać się wąskim gardłem dla skalowalnego wykonywania podczas dodawania większej liczby procesów roboczych. Dowiedz się, jak określić optymalną konfigurację.

Liczbę procesów roboczych w wierszu polecenia można określić za pomocą flagi --workers :

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

Alternatywnie możesz określić liczbę procesów roboczych przy playwright.service.config.ts użyciu workers ustawienia :

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

Czynniki wpływające na czas ukończenia

Oprócz liczby równoległych procesów roboczych istnieje kilka czynników mających wpływ na czas ukończenia zestawu testów.

Współczynnik Wpływ na czas trwania testu
Zasoby obliczeniowe maszyny klienckiej Procesy robocze nadal działają na maszynie klienckiej (stacji roboczej dewelopera lub maszynie agenta ciągłej integracji) i muszą komunikować się z przeglądarkami zdalnymi. Zwiększenie liczby równoległych procesów roboczych może spowodować rywalizację o zasoby na maszynie klienckiej i spowolnienie testów.
Złożoność kodu testowego Wraz ze wzrostem złożoności kodu testowego czas ukończenia testów może również wzrosnąć.
Opóźnienie między komputerem klienckim a przeglądarkami zdalnymi Procesy robocze działają na komputerze klienckim i komunikują się z przeglądarkami zdalnymi. W zależności od regionu świadczenia usługi Azure, w którym są hostowane przeglądarki, opóźnienie sieci może wzrosnąć. Dowiedz się, jak zoptymalizować opóźnienia regionalne w testach microsoft Playwright.
Ustawienia konfiguracji dramaturgu Ustawienia dramaturgu, takie jak przekroczenia limitu czasu usługi, ponawianie prób lub śledzenie, mogą negatywnie wpłynąć na czas ukończenia testu. Poeksperymentuj z optymalną konfiguracją tych ustawień podczas uruchamiania testów w chmurze.
Pojemność obsługi obciążenia aplikacji docelowej Uruchamianie testów za pomocą testowania playwright firmy Microsoft umożliwia uruchamianie z większą równoległością, co powoduje wyższe obciążenie aplikacji docelowej. Sprawdź, czy aplikacja może obsłużyć obciążenie wygenerowane przez uruchomienie testów dramaturgu.

Dowiedz się więcej o przepływie pracy w celu określenia optymalnej konfiguracji w celu zminimalizowania czasu trwania zestawu testów.

Przepływ pracy do określania optymalnej konfiguracji

Optymalna konfiguracja minimalizacji czasu ukończenia zestawu testów jest specyficzna dla aplikacji i środowiska. Aby określić optymalną konfigurację, poeksperymentuj z różnymi poziomami równoległości, konfiguracją sprzętu maszyny klienckiej lub konfiguracją zestawu testów.

Poniższe podejście może pomóc w znalezieniu optymalnej konfiguracji do uruchamiania testów za pomocą testowania programu Microsoft Playwright:

1. Określanie celu czasu ukończenia testu

Określ, jaki jest akceptowalny czas ukończenia zestawu testów i skojarzony koszt na przebieg testu.

W zależności od scenariusza wymagania dotyczące ukończenia testu mogą być inne. Gdy uruchamiasz kompleksowe testy z każdą zmianą kodu, w ramach przepływu pracy ciągłej integracji (CI), niezbędne jest zminimalizowanie czasu ukończenia testu. Jeśli planujesz kompleksowe testy w (nocnym) przebiegu wsadowym, mogą istnieć wymagania, które są mniej wymagające.

2. Sprawdź, czy testy działają poprawnie na komputerze klienckim

Przed uruchomieniem zestawu testowego Playwright z testowaniem playwright firmy Microsoft upewnij się, że testy są prawidłowo uruchamiane na maszynie klienckiej. Jeśli uruchamiasz testy w ramach przepływu pracy ciągłej integracji, sprawdź, czy testy działają prawidłowo na maszynie agenta ciągłej integracji. Upewnij się, że uruchamiasz testy z co najmniej dwoma równoległymi procesami roboczymi, aby sprawdzić, czy testy są prawidłowo skonfigurowane do równoległego wykonywania. Dowiedz się więcej o równoległości w dramaturgu.

3. Uruchamianie za pomocą przeglądarek hostowanych w chmurze w ramach testowania dramaturgów firmy Microsoft

Po poprawnym uruchomieniu testów dodaj konfigurację usługi, aby uruchomić testy w przeglądarkach hostowanych w chmurze z usługą. Sprawdź, czy testy nadal działają prawidłowo z komputera klienckiego (stacja robocza dewelopera lub maszyna agenta ciągłej integracji).

Rozpocznij pracę z przewodnikiem Szybki start: uruchamianie testów playwright na dużą skalę za pomocą testowania w programie Microsoft Playwright.

4. Sprawdź przeglądarki zdalne w regionie świadczenia usługi Azure

Testowanie playwright firmy Microsoft może używać przeglądarek zdalnych w regionie świadczenia usługi Azure, który znajduje się najbliżej komputera klienckiego, lub użyć stałego regionu, w którym utworzono obszar roboczy.

Dowiedz się, jak zoptymalizować opóźnienia regionalne dla obszaru roboczego.

5. Eksperymentowanie z liczbą równoległych procesów roboczych

Poeksperymentuj z liczbą równoległych procesów roboczych, aby uruchomić testy. Zmierz czas ukończenia testu i porównaj go z ustawionym wcześniej celem docelowym.

Zwróć uwagę, że w tym momencie czas ukończenia testu nie zmniejsza się w miarę dodawania większej liczby procesów roboczych. Przejdź do następnego kroku, aby jeszcze bardziej zoptymalizować konfigurację.

Uwaga

Chociaż usługa jest w wersji zapoznawczej, liczba równoległych procesów roboczych na obszar roboczy jest ograniczona do 50. Możesz zażądać zwiększenia tego limitu dla obszaru roboczego.

6. Skalowanie klienta

W miarę zwiększania równoległości maszyna kliencka może napotkać rywalizację o zasoby obliczeniowe. Zwiększ zasoby obliczeniowe na maszynie klienckiej, na przykład wybierając większe moduły uruchamiające usługę GitHub.

Alternatywnie, jeśli masz ograniczenia sprzętowe, możesz fragmentować testy klienta.

Ponownie uruchom testy i poeksperymentuj z liczbą równoległych procesów roboczych.

7. Aktualizowanie ustawień konfiguracji testu playwright

Skonfiguruj ustawienia konfiguracji testu playwright, takie jak limity czasu testu, ustawienia śledzenia lub ponawianie prób.