Udostępnij za pośrednictwem


Szybki start: konfigurowanie ciągłego kompleksowego testowania przy użyciu usługi Microsoft Playwright Testing Preview

W tym przewodniku szybkiego startu skonfigurujesz ciągłe testowanie end-to-end za pomocą programu Microsoft Playwright Testing Preview, aby sprawdzić, czy aplikacja internetowa działa prawidłowo we wszystkich przeglądarkach i systemach operacyjnych przy każdym zatwierdzeniu kodu, oraz aby łatwo rozwiązywać problemy z testami, korzystając z pulpitu nawigacyjnego usługi. Dowiedz się, jak dodać testy Playwright do przepływu pracy CI, takiego jak GitHub Actions, Azure Pipelines lub inne platformy CI.

Po ukończeniu tego przewodnika szybkiego startu masz przepływ pracy ciągłej integracji, który uruchamia pakiet testowy Playwright na dużą skalę i ułatwia rozwiązywanie problemów z testami z użyciem Microsoft Playwright Testing.

Ważne

Microsoft Playwright Testing jest obecnie w wersji zapoznawczej. Aby uzyskać postanowienia prawne dotyczące funkcji platformy Azure, które znajdują się w wersji beta, w wersji zapoznawczej lub w inny sposób nie zostały jeszcze wydane w wersji ogólnodostępnej, zobacz Dodatkowe warunki użytkowania dla wersji zapoznawczych platformy Microsoft Azure.

Wymagania wstępne

Uzyskiwanie adresu URL punktu końcowego regionu usługi

W konfiguracji usługi należy podać punkt końcowy usługi specyficzny dla regionu. Punkt końcowy zależy od regionu świadczenia usługi Azure wybranego podczas tworzenia obszaru roboczego.

Aby uzyskać adres URL punktu końcowego usługi i zapisać go jako tajny klucz przepływu pracy CI, wykonaj następujące kroki:

  1. Zaloguj się do portalu Playwright przy użyciu konta platformy Azure.

  2. Na stronie głównej obszaru roboczego wybierz pozycję Wyświetl przewodnik konfiguracji.

    Napiwek

    Jeśli masz wiele obszarów roboczych, możesz przełączyć się do innego obszaru roboczego, wybierając nazwę obszaru roboczego w górnej części strony, a następnie wybierz pozycję Zarządzaj wszystkimi obszarami roboczymi.

  3. W sekcji Dodaj punkt końcowy regionu w konfiguracji, skopiuj adres URL punktu końcowego usługi.

    Adres URL punktu końcowego jest zgodny z regionem świadczenia usługi Azure wybranym podczas tworzenia obszaru roboczego.

  4. Zapisz adres URL punktu końcowego usługi w kluczu tajnym przepływu pracy ciągłej integracji:

    Nazwa tajna Wartość
    PLAYWRIGHT_SERVICE_URL Wklej skopiowany wcześniej adres URL punktu końcowego.

Dodawanie pliku konfiguracji usługi

Jeśli nie masz skonfigurowanych testów Playwright do uruchamiania z tą usługą, dodaj plik konfiguracji usługi do swojego repozytorium. W następnym kroku określ ten plik konfiguracji usługi w CLI Playwright.

  1. Utwórz nowy plik playwright.service.config.ts obok playwright.config.ts pliku.

    Użyj opcjonalnie pliku playwright.service.config.ts w przykładowym repozytorium.

  2. Dodaj do niego następującą zawartość:

    import { defineConfig } from '@playwright/test';
    import { getServiceConfig, ServiceOS } from '@azure/microsoft-playwright-testing';
    import config from './playwright.config';
    
    /* Learn more about service configuration at https://aka.ms/mpt/config */
    export default defineConfig(
      config,
      getServiceConfig(config, {
        exposeNetwork: '<loopback>',
        timeout: 30000,
        os: ServiceOS.LINUX,
        useCloudHostedBrowsers: true
      }),
      {
        /* 
        Playwright Testing service reporter is added by default.
        This will override any reporter options specified in the base playwright config.
        If you are using more reporters, please update your configuration accordingly.
        */
        reporter: [['list'], ['@azure/microsoft-playwright-testing/reporter']],
      }
    );
    

    Domyślnie konfiguracja usługi umożliwia:

    • Przyspieszanie potoków kompilacji przez równoległe uruchamianie testów przy użyciu przeglądarek hostowanych w chmurze.
    • Uproszczenie rozwiązywania problemów dzięki łatwemu dostępowi do wyników testów i artefaktów opublikowanych w usłudze.

    Można jednak użyć jednej z tych funkcji lub obu tych funkcji. Zobacz Jak używać funkcji usługi i aktualizować plik konfiguracji usługi zgodnie z wymaganiami.

  3. Zapisz i zatwierdź plik w repozytorium kodu źródłowego.

Aktualizowanie pliku package.json

Aktualizuj plik package.json w repozytorium, aby dodać szczegółowe informacje o pakiecie usługi Microsoft Playwright Testing w sekcji devDependencies.

"devDependencies": {
    "@azure/microsoft-playwright-testing": "^1.0.0-beta.6"
}

Włączanie artefaktów w konfiguracji Playwright

playwright.config.ts W pliku projektu upewnij się, że zbierasz wszystkie wymagane artefakty.

  use: {
    trace: 'on-first-retry',
    video:'retain-on-failure',
    screenshot:'on'
  },

Konfiguracja usługi

  1. Utwórz nowy plik PlaywrightServiceSetup.cs w katalogu głównym projektu. Ten plik ułatwia uwierzytelnianie klienta za pomocą usługi.

  2. Dodaj do niego następującą zawartość:

    using Azure.Developer.MicrosoftPlaywrightTesting.NUnit;
    using NUnit.Framework;
    
    namespace PlaywrightTests; // Remember to change this as per your project namespace
    
    [SetUpFixture]
    public class PlaywrightServiceSetup : PlaywrightServiceNUnit { };
    
  3. Zapisz i zatwierdź plik w repozytorium kodu źródłowego.

Instalowanie pakietu usługi

W projekcie zainstaluj pakiet Microsoft Playwright Testing.

dotnet add package Azure.Developer.MicrosoftPlaywrightTesting.NUnit --prerelease

To polecenie aktualizuje plik projektu csproj , dodając szczegóły pakietu usługi do ItemGroup sekcji. Pamiętaj, aby zatwierdzić te zmiany.

  <ItemGroup>
    <PackageReference Include="Azure.Developer.MicrosoftPlaywrightTesting.NUnit" Version="1.0.0-beta.2" />
  </ItemGroup>

Dodaj lub zaktualizuj .runsettings plik dla projektu.

Jeśli testy Playwright nie zostały jeszcze skonfigurowane do uruchamiania ich w kontekście usługi, dodaj plik .runsettings do repozytorium. W następnym kroku określ ten plik konfiguracji usługi w interfejsie wiersza polecenia Playwright CLI.

  1. Utwórz nowy .runsettings plik.

    Opcjonalnie użyj pliku .runsettings w przykładowym repozytorium.

  2. Dodaj do niego następującą zawartość:

    <?xml version="1.0" encoding="utf-8"?>
    <RunSettings>
        <TestRunParameters>
            <!-- The below parameters are optional -->
            <Parameter name="Os" value="linux" />
            <!--<Parameter name="RunId" value="sample-run-id1" />-->
            <Parameter name="ServiceAuthType" value="EntraId" />
            <Parameter name="UseCloudHostedBrowsers" value="true" />
            <Parameter name="AzureTokenCredentialType" value="DefaultAzureCredential" />
            <!--<Parameter name="ManagedIdentityClientId" value="{clientId-value}" />-->
            <Parameter name="EnableGitHubSummary" value="false" />
            <!--<Parameter name="ExposeNetwork" value="*" />-->
        </TestRunParameters>
      <!-- NUnit adapter -->  
      <NUnit>
        <!-- Adjust parallel workers, parallel worker would also be bound by number of unit test files -->
        <NumberOfTestWorkers>10</NumberOfTestWorkers>
      </NUnit>
      <!-- General run configuration -->
      <RunConfiguration>
        <EnvironmentVariables>
          <!-- For debugging selectors, it's recommend to set the following environment variable -->
            <!--<DEBUG>pw:api*</DEBUG>--> 
        </EnvironmentVariables>
      </RunConfiguration>
      <!-- Playwright -->  
      <Playwright>
        <BrowserName>chromium</BrowserName>
        <ExpectTimeout>5000</ExpectTimeout>
        <LaunchOptions>
          <Headless>false</Headless>
          <!--Channel>msedge</Channel-->
        </LaunchOptions>
      </Playwright>
        <LoggerRunSettings>
            <Loggers>
                <!--microsoft playwright testing service logger for reporting -->
                <Logger friendlyName="microsoft-playwright-testing" enabled="True" />
                <!--could enable any logger additionally -->
                <Logger friendlyName="trx" enabled="false" />
            </Loggers>
        </LoggerRunSettings>
    </RunSettings>
    

    Ustawienia w tym pliku umożliwiają:

    • Przyspieszanie potoków kompilacji przez równoległe uruchamianie testów przy użyciu przeglądarek hostowanych w chmurze.
    • Publikowanie wyników testów i artefaktów w usłudze w celu szybszego rozwiązywania problemów.

    Można jednak użyć jednej z tych funkcji lub obu tych funkcji. Zobacz Jak używać funkcji usługi i aktualizować plik konfiguracji usługi zgodnie z wymaganiami.

  3. Zapisz i zatwierdź plik w repozytorium kodu źródłowego.

Włącz artefakty w konfiguracji Playwrighta

Skonfiguruj program Playwright, aby przechwytywać artefakty, takie jak zrzut ekranu, filmy wideo i ślady.

Po zebraniu tych artefaktów dołącz je do TestContext, aby były dostępne w raportach testowych. Aby uzyskać więcej informacji, zobacz nasz przykładowy projekt dla NUnit.

Konfigurowanie uwierzytelniania

Maszyna CI, na której działają testy Playwright, musi uwierzytelniać się w usłudze Playwright Testing, aby możliwe było uruchomienie testów w przeglądarkach oraz publikowanie wyników testów i artefaktów.

Usługa oferuje dwie metody uwierzytelniania: Microsoft Entra ID i Tokeny dostępu. Zdecydowanie zalecamy używanie identyfikatora Entra firmy Microsoft do uwierzytelniania potoków.

Konfigurowanie uwierzytelniania przy użyciu identyfikatora Entra firmy Microsoft

Jeśli używasz funkcji GitHub Actions, możesz nawiązać połączenie z usługą przy użyciu narzędzia GitHub OpenID Connect. Wykonaj kroki konfigurowania integracji:

Wymagania wstępne

Opcja 1. Aplikacja Firmy Microsoft Entra

Opcja 2. Tożsamość zarządzana przypisana przez użytkownika

Tworzenie tajemnic GitHub
Sekret GitHub Źródło (Aplikacja Microsoft Entra lub zarządzana tożsamość)
AZURE_CLIENT_ID Identyfikator klienta
AZURE_SUBSCRIPTION_ID Identyfikator subskrypcji
AZURE_TENANT_ID Identyfikator katalogu (dzierżawcy)

Uwaga

Dla poprawy bezpieczeństwa zdecydowanie zaleca się używanie tajnych danych GitHub do przechowywania wartości poufnych, zamiast umieszczania ich bezpośrednio w pliku roboczym.

Konfigurowanie uwierzytelniania przy użyciu tokenów dostępu

Uwaga

Zdecydowanie zalecamy używanie identyfikatora Entra firmy Microsoft do uwierzytelniania w usłudze. Jeśli używasz tokenów dostępu, zobacz Jak zarządzać tokenami dostępu

Możesz wygenerować token dostępu z obszaru roboczego Playwright Testing i użyć go podczas konfiguracji. Zdecydowanie zalecamy jednak używanie identyfikatora Entra firmy Microsoft do uwierzytelniania ze względu na jego zwiększone zabezpieczenia. Tokeny dostępu, choć wygodne, działają jak hasła długotrwałe i są bardziej podatne na naruszenie zabezpieczeń.

  1. Uwierzytelnianie przy użyciu tokenów dostępu jest domyślnie wyłączone. Aby użyć, włącz uwierzytelnianie oparte na tokenach dostępu.

  2. Konfigurowanie uwierzytelniania przy użyciu tokenów dostępu.

  3. Zapisz token dostępu w tajnym kluczu ciągłej integracji i użyj go w przepływie pracy GitHub Actions lub w pliku YAML w usłudze Azure Pipeline.

Tajna nazwa Wartość
PLAYWRIGHT_SERVICE_ACCESS_TOKEN Wklej wartość utworzonego wcześniej tokenu dostępu.

Aktualizowanie definicji przepływu pracy

Zaktualizuj definicję przepływu pracy CI, aby uruchomić testy Playwright za pomocą Playwright CLI. Podaj plik konfiguracji usługi jako parametr wejściowy dla CLI programu Playwright. Środowisko można skonfigurować, określając zmienne środowiskowe.

  1. Otwórz definicję przepływu pracy CI.

  2. Dodaj następujące kroki, aby uruchomić testy Playwright za pomocą narzędzia Microsoft Playwright Testing.

    W poniższych krokach opisano zmiany przepływu pracy dla funkcji GitHub Actions lub usługi Azure Pipelines. Podobnie możesz uruchomić testy Playwright przy użyciu Playwright CLI na innych platformach ciągłej integracji.

    
      # This step is to sign-in to Azure to run tests from GitHub Action workflow. 
      # Choose how to set up authentication to Azure from GitHub Actions. This is one example. 
      name: Playwright Tests (Microsoft Playwright Testing)
      on:
        push:
          branches: [main, master]
        pull_request:
          branches: [main, master]
    
      permissions: # Required when using Microsoft Entra ID to authenticate
        id-token: write
        contents: read
    
      jobs:
        test:
          timeout-minutes: 60
          runs-on: ubuntu-latest
          steps:
            - uses: actions/checkout@v4
    
            - name: Login to Azure with AzPowershell (enableAzPSSession true)
              uses: azure/login@v2
              with:
                client-id: ${{ secrets.AZURE_CLIENT_ID }} # GitHub Open ID connect values copied in previous steps
                tenant-id: ${{ secrets.AZURE_TENANT_ID }}
                subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
                enable-AzPSSession: true
    
            - name: Install dependencies
              working-directory: path/to/playwright/folder # update accordingly
              run: npm ci
    
            - name: Run Playwright tests
              working-directory: path/to/playwright/folder # update accordingly
              env:
                # Regional endpoint for Microsoft Playwright Testing
                PLAYWRIGHT_SERVICE_URL: ${{ secrets.PLAYWRIGHT_SERVICE_URL }}
                # PLAYWRIGHT_SERVICE_ACCESS_TOKEN: ${{ secrets.PLAYWRIGHT_SERVICE_ACCESS_TOKEN }} # Not recommended, use Microsoft Entra ID authentication. 
              run: npx playwright test -c playwright.service.config.ts --workers=20
    
            - name: Upload Playwright report
              uses: actions/upload-artifact@v3
              if: always()
              with:
                name: playwright-report
                path: path/to/playwright/folder/playwright-report/ # update accordingly
                retention-days: 10
    

Zaktualizuj definicję przepływu pracy CI, aby uruchomić testy Playwright za pomocą Playwright NUnit CLI. Przekaż plik .runsettings jako parametr wejściowy dla CLI programu Playwright. Środowisko można skonfigurować, określając zmienne środowiskowe.

  1. Otwórz definicję przepływu pracy CI (ciągłej integracji).

  2. Dodaj następujące kroki, aby uruchomić testy Playwright w Microsoft Playwright Testing.

    W poniższych krokach opisano zmiany przepływu pracy dla funkcji GitHub Actions lub usługi Azure Pipelines. Podobnie możesz uruchomić testy Playwright przy użyciu Playwright CLI na innych platformach CI.

    on:
      push:
        branches: [ main, master ]
      pull_request:
        branches: [ main, master ]
    permissions: # Required when using AuthType as EntraId
      id-token: write
      contents: read
    jobs:
      test:
        timeout-minutes: 60
        runs-on: ubuntu-latest
          steps:
          - uses: actions/checkout@v4
        # This step is to sign-in to Azure to run tests from GitHub Action workflow. 
        # Choose how to set up authentication to Azure from GitHub Actions. This is one example. 
    
          - name: Login to Azure with AzPowershell (enableAzPSSession true) 
            uses: azure/login@v2 
            with: 
              client-id: ${{ secrets.AZURE_CLIENT_ID }} # GitHub Open ID connect values copied in previous steps
              tenant-id: ${{ secrets.AZURE_TENANT_ID }}  
              subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}  
              enable-AzPSSession: true 
    
          - name: Setup .NET
            uses: actions/setup-dotnet@v4
            with:
              dotnet-version: 8.0.x
    
          - name: Restore dependencies
            run: dotnet restore
            working-directory: path/to/playwright/folder # update accordingly
    
          - name: Build
            run: dotnet build --no-restore
            working-directory: path/to/playwright/folder # update accordingly
    
          - name: Run Playwright tests
              working-directory: path/to/playwright/folder # update accordingly
            env:
              # Regional endpoint for Microsoft Playwright Testing
              PLAYWRIGHT_SERVICE_URL: ${{ secrets.PLAYWRIGHT_SERVICE_URL }}
              # PLAYWRIGHT_SERVICE_ACCESS_TOKEN: ${{ secrets.PLAYWRIGHT_SERVICE_ACCESS_TOKEN }} # Not recommended, use Microsoft Entra ID authentication. 
            run: dotnet test --settings:.runsettings --logger "microsoft-playwright-testing" -- NUnit.NumberOfTestWorkers=20
    
          - name: Upload Playwright report
            uses: actions/upload-artifact@v3
            if: always()
            with:
              name: playwright-report
              path: path/to/playwright/folder/playwright-report/ # update accordingly
              retention-days: 10
    
  1. Zapisz i zatwierdź zmiany.

    Kiedy przepływ pracy ciągłej integracji zostanie uruchomiony, testy Playwright są uruchamiane w przestrzeni roboczej Microsoft Playwright Testing na przeglądarkach hostowanych w chmurze, na 20 równoległych stanowiskach. Zebrane wyniki i artefakty są publikowane w usłudze i można je wyświetlić w portalu usługi.

Ustawienia przebiegu testu można zdefiniować w .runsettings pliku. Aby uzyskać więcej informacji, zobacz , jak używać opcji pakietu usługi

Uwaga

Funkcja raportowania jest domyślnie włączona dla istniejących obszarów roboczych. Jest to wdrażane na etapach i potrwa kilka dni. Aby uniknąć błędów, przed kontynuowaniem upewnij się, że Rich diagnostics using reporting ustawienie jest włączone dla obszaru roboczego. Aby uzyskać więcej informacji, zobacz Włączanie raportowania dla obszaru roboczego.

Uwaga

W przypadku testowania dramaturgowego firmy Microsoft opłaty są naliczane na podstawie liczby wykorzystanych minut testu i opublikowanych wyników testów. Jeśli jesteś użytkownikiem po raz pierwszy lub rozpoczynasz pracę z bezpłatną wersją próbną, możesz zacząć od uruchomienia pojedynczego testu na dużą skalę zamiast pełnego zestawu testów, aby uniknąć wyczerpania bezpłatnych minut testu i wyników testów.

Po sprawdzeniu, czy przebieg testu przebiegnie pomyślnie, możesz stopniowo zwiększyć obciążenie testowe, uruchamiając więcej testów w usłudze.

Możesz uruchomić pojedynczy test z usługą przy użyciu następującego wiersza polecenia:

npx playwright test {name-of-file.spec.ts} --config=playwright.service.config.ts

Wyświetlanie przebiegów testów i wyników w portalu Playwright

Teraz możesz rozwiązać problemy z potokiem ciągłej integracji w portalu Playwright.

  1. Po zakończeniu przebiegu testu zostanie wygenerowany link do portalu dramaturgu. Otwórz ten link, aby wyświetlić szczegółowe wyniki testu i skojarzone artefakty. W portalu są wyświetlane podstawowe informacje, w tym:

    • Szczegóły kompilacji CI
    • Ogólny stan przebiegu testu
    • Identyfikator zatwierdzenia połączony z przebiegiem testu

    Zrzut ekranu przedstawiający listę testów w przebiegu testu.

  2. Portal Dramaturg zawiera wszystkie niezbędne informacje dotyczące rozwiązywania problemów. Masz następujące możliwości:

    • Przełączanie się między ponownymi próbami.
    • Wyświetl szczegółowe dzienniki błędów, kroki testu i dołączone artefakty, takie jak zrzuty ekranu lub wideo.
    • Przejdź bezpośrednio do Przeglądarki śledzenia w celu przeprowadzenia dogłębnej analizy.

    Zrzut ekranu przedstawiający podgląd testu.

  3. Przeglądarka śledzenia umożliwia wizualne przechodzenie przez wykonywanie testów. Masz następujące możliwości:

    • Użyj osi czasu, aby umieścić wskaźnik myszy na poszczególnych krokach, ujawniając stan strony przed i po każdej akcji.
    • Sprawdź szczegółowe dzienniki, migawki DOM, aktywność sieci, błędy i dane wyjściowe konsoli dla każdego kroku.

    Zrzut ekranu przedstawiający program przeglądania śladów.

  1. Po zakończeniu przebiegu testu otrzymasz link do portalu Playwright w terminalu. Otwórz ten link, aby wyświetlić szczegółowe wyniki testu i skojarzone artefakty. W portalu są wyświetlane podstawowe informacje, w tym:

    • Szczegóły kompilacji w ramach ciągłej integracji
    • Ogólny stan przebiegu testu
    • Identyfikator zatwierdzenia połączony z przebiegem testowym

    Zrzut ekranu przedstawiający listę testów w przebiegu testu.

  2. Portal Dramaturg zawiera wszystkie niezbędne informacje dotyczące rozwiązywania problemów. Masz następujące możliwości:

    • Wyświetl szczegółowe dzienniki błędów i dołączone artefakty, takie jak zrzuty ekranu lub filmy wideo.
    • Przejdź bezpośrednio do przeglądarki śledzenia w celu głębszej analizy.

    Zrzut ekranu przedstawiający podgląd testu.

Uwaga

Niektóre metadane, takie jak właściciel, opis i kategoria, nie są obecnie wyświetlane na pulpicie nawigacyjnym usługi. Jeśli chciałbyś, aby uwzględniono dodatkowe informacje, zgłoś problem w naszym repozytorium na GitHub.

  1. Przeglądarka śledzenia umożliwia wizualne śledzenie przebiegu wykonywania testów. Masz następujące możliwości:

    • Użyj osi czasu, aby umieścić wskaźnik myszy na poszczególnych krokach, ujawniając stan strony przed i po każdej akcji.
    • Sprawdź szczegółowe dzienniki, migawki DOM, aktywność sieci, błędy i dane wyjściowe konsoli dla każdego kroku.

    Zrzut ekranu przedstawiający analizator śladu.

Napiwek

Funkcje usługi Microsoft Playwright Testing można używać niezależnie. Wyniki testów można publikować w portalu bez korzystania z funkcji przeglądarek hostowanych w chmurze, a także użyć tylko przeglądarek hostowanych w chmurze w celu przyspieszenia pakietu testów bez publikowania wyników testu. Aby uzyskać szczegółowe informacje, zobacz How to use service features (Jak używać funkcji usługi).

Uwaga

Wyniki testów i artefakty, które publikujesz, są przechowywane w usłudze przez 90 dni. Następnie zostaną one automatycznie usunięte.

Pomyślnie skonfigurowano ciągły kompleksowy przepływ pracy testów end-to-end, aby uruchamiać testy Playwright na dużą skalę w przeglądarkach hostowanych w chmurze.