Megosztás a következőn keresztül:


Rövid útmutató: Folyamatos, végpontok közötti tesztelés beállítása Playwright-munkaterületekkel

Ebben a rövid útmutatóban a Playwright-munkaterületekkel való folyamatos, teljes körű tesztelést állít be annak ellenőrzéséhez, hogy a webalkalmazás megfelelően fut-e a különböző böngészőkben és operációs rendszerekben minden kód véglegesítésével, és a teszteket egyszerűen elháríthatja a szolgáltatás irányítópultján. Megtudhatja, hogyan adhat hozzá Playwright-teszteket egy folyamatos integrációs (CI) munkafolyamathoz, például a GitHub Actionshez, az Azure Pipelineshoz vagy más CI-platformokhoz.

A rövid útmutató elvégzése után rendelkezik egy CI-munkafolyamattal, amely nagy léptékben futtatja a Playwright-tesztcsomagot, és segít a tesztek egyszerű hibaelhárításában a Playwright-munkaterületekkel.

Előfeltételek

A szolgáltatásrégió végpontjának URL-címének lekérése

A szolgáltatáskonfigurációban meg kell adnia a régióspecifikus szolgáltatásvégpontot. A végpont a munkaterület létrehozásakor kiválasztott Azure-régiótól függ.

A szolgáltatásvégpont URL-címének lekéréséhez és CI-munkafolyamat-titkos kódként való tárolásához hajtsa végre a következő lépéseket:

  1. Jelentkezzen be az Azure Portalra az Azure-fiókjával, és lépjen a munkaterületre.

  2. Válassza az Első lépések lapot.

    Képernyőkép az Első lépések lapra való navigálásról.

  3. A régióvégpont hozzáadása beállításban másolja ki a szolgáltatásvégpont URL-címét.

    A végpont URL-címe megegyezik a munkaterület létrehozásakor kiválasztott Azure-régióval.

  4. A szolgáltatásvégpont URL-címének tárolása CI-munkafolyamat-titkos kódban:

    Titkos név Érték
    PLAYWRIGHT_SERVICE_URL Illessze be a korábban másolt végpont URL-címét.

Szolgáltatáskonfigurációs fájl hozzáadása

Ha nem rendelkezik a szolgáltatással való futtatásra konfigurált Playwright-tesztekkel, adjon hozzá egy szolgáltatáskonfigurációs fájlt az adattárhoz. A következő lépésben ezt a szolgáltatáskonfigurációs fájlt adja meg a Playwright parancssori felületén.

  1. Hozzon létre egy új fájlt playwright.service.config.ts a playwright.config.ts fájl mellett.

    Ha szeretné, használja a playwright.service.config.ts fájlt a mintaadattárban.

  2. Adja hozzá a következő tartalmat:

    import { defineConfig } from '@playwright/test';
    import { createAzurePlaywrightConfig, ServiceOS } from '@azure/playwright';
    import { DefaultAzureCredential } from '@azure/identity';
    import config from './playwright.config';
    
    /* Learn more about service configuration at https://aka.ms/pww/docs/config */
    export default defineConfig(
      config,
      createAzurePlaywrightConfig(config, {
        exposeNetwork: '<loopback>',
        connectTimeout: 3 * 60 * 1000, // 3 minutes
        os: ServiceOS.LINUX,
        credential: new DefaultAzureCredential(),
      })
    );
    

    A szolgáltatáskonfiguráció alapértelmezés szerint lehetővé teszi a buildelési folyamatok felgyorsítását úgy, hogy párhuzamosan futtat teszteket a felhőben üzemeltetett böngészők használatával.

  3. Mentse és véglegesítse a fájlt a forráskódtárban.

Package.json fájl frissítése

Frissítse a fájlt az package.json adattárban, és adja hozzá a szakasz Playwright Workspaces csomagjának devDependencies részleteit.

"devDependencies": {
    "@azure/playwright": "latest"
}

Szolgáltatáscsomag telepítése

A projektben telepítse a Playwright Workspaces csomagot.

dotnet add package Azure.Developer.Playwright.NUnit

Ez a parancs úgy frissíti a projekt fájlját, hogy hozzáadja csproj a szolgáltatáscsomag részleteit a ItemGroup szakaszhoz. Ne felejtse el véglegesíteni ezeket a módosításokat.

  <ItemGroup>
    <PackageReference Include="Azure.Developer.Playwright.NUnit" Version="1.0.0" />
  </ItemGroup>

Szolgáltatáskonfiguráció beállítása

  1. Hozzon létre egy új fájlt PlaywrightServiceNUnitSetup.cs a projekt gyökérkönyvtárában. Ez a fájl megkönnyíti az ügyfél hitelesítését a szolgáltatással.
  2. Adja hozzá a következő tartalmat:
using Azure.Developer.Playwright.NUnit;
using Azure.Identity;
using System.Runtime.InteropServices;
using System;

namespace PlaywrightService.SampleTests; // Remember to change this as per your project namespace

[SetUpFixture]
public class PlaywrightServiceNUnitSetup : PlaywrightServiceBrowserNUnit
{
    public PlaywrightServiceNUnitSetup() : base(
        credential: new DefaultAzureCredential(),
    )
    {
        // no-op
    }
}
  1. Mentse és véglegesítse a fájlt a forráskódtárban.

Hitelesítés beállítása

A Playwright-teszteket futtató CI-gépnek hitelesítenie kell magát a Playwright Workspaces szolgáltatással, hogy lekérje a böngészőket a tesztek futtatására.

A szolgáltatás két hitelesítési módszert kínál: a Microsoft Entra-azonosítót és az Access-jogkivonatokat. Határozottan javasoljuk, hogy a csővezetékek hitelesítéséhez használja a Microsoft Entra ID-t.

Hitelesítés beállítása a Microsoft Entra-azonosítóval

Ha GitHub Actionst használ, a GitHub OpenID Connect használatával csatlakozhat a szolgáltatáshoz. Az integráció beállításához kövesse az alábbi lépéseket:

Előfeltételek

1. lehetőség: Microsoft Entra-alkalmazás

  • Microsoft Entra-alkalmazás létrehozása szolgáltatásazonossággal az Azure Portal, Azure CLI vagy Azure PowerShell használatával.

  • Másolja ki az ügyfél-azonosító, az előfizetés-azonosító és a címtár-(bérlői) azonosító értékeit a GitHub Actions munkafolyamat későbbi részében való használathoz.

  • Rendelje hozzá a Owner vagy Contributor szerepkört az előző lépésben létrehozott szolgáltatásnévhez. Ezeket a szerepköröket a Playwright munkaterületen kell hozzárendelni. További részletekért tekintse meg a hozzáférés kezelését.

  • Konfiguráljon összevont identitás-hitelesítő adatokat egy Microsoft Entra-alkalmazáson , hogy megbízzon a GitHub Actions által a GitHub-adattárban kibocsátott jogkivonatokban.

2. lehetőség: Felhasználó által hozzárendelt felügyelt identitás

GitHub-titkos kódok létrehozása
  • Adja hozzá az előző lépésben kapott értékeket titkos kulcsként a GitHub-adattárhoz. Lásd a GitHub Action Secret beállítását. Ezeket a változókat a GitHub Action munkafolyamata használja a következő lépésekben.
GitHub-titkos kód Forrás (Microsoft Entra-alkalmazás vagy felügyelt identitás)
AZURE_CLIENT_ID Ügyfélazonosító
AZURE_SUBSCRIPTION_ID Előfizetés azonosító
AZURE_TENANT_ID Címtár (bérlő) azonosítója

Megjegyzés:

A fokozott biztonság érdekében erősen ajánlott a GitHub Titkos kulcsok használata a bizalmas értékek tárolására ahelyett, hogy közvetlenül a munkafolyamat-fájlba foglalja őket.

Hitelesítés beállítása hozzáférési jogkivonatokkal

Figyelmeztetés

Határozottan javasoljuk, hogy a Microsoft Entra ID-t használja a szolgáltatáshoz való hitelesítéshez. Hozzáférési jogkivonatok használata esetén lásd : Hozzáférési jogkivonatok kezelése

Létrehozhat egy hozzáférési jogkivonatot a Playwright-munkaterületről, és használhatja azt a beállításban. A fokozott biztonság miatt azonban erősen ajánljuk a Microsoft Entra ID-t a hitelesítéshez. A hozzáférési jogkivonatok, bár kényelmesek, úgy működnek, mint a hosszú élettartamú jelszavak, és fokozottabban kitettek a kompromittálódás veszélyének.

  1. A hozzáférési jogkivonatokat használó hitelesítés alapértelmezés szerint le van tiltva. A használathoz engedélyezze a hozzáférési jogkivonaton alapuló hitelesítést.

  2. Hitelesítés beállítása hozzáférési jogkivonatokkal.

  3. Tárolja a hozzáférési jogkivonatot egy CI-munkafolyamat titkos kódjában, és használja a GitHub Actions munkafolyamatban vagy az Azure Pipeline yaml-fájljában.

Titkos név Érték
PLAYWRIGHT_SERVICE_ACCESS_TOKEN Illessze be a korábban létrehozott Hozzáférési jogkivonat értékét.

A munkafolyamat-definíció frissítése

Frissítse a CI munkafolyamat-definícióját a playwright-tesztek playwright parancssori felülettel való futtatásához. Adja át a szolgáltatáskonfigurációs fájlt a Playwright parancssori felület bemeneti paramétereként. A környezetet környezeti változók megadásával konfigurálhatja.

  1. Nyissa meg a CI munkafolyamat-definícióját.

  2. Adja hozzá a következő lépéseket a forgatókönyv-tesztek Playwright-munkaterületeken való futtatásához.

    Az alábbi lépések a GitHub Actions vagy az Azure Pipelines munkafolyamat-módosításait ismertetik. Hasonlóképpen futtathatja a Playwright-teszteket a Playwright CLI használatával más CI-platformokon is.

    
      # 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 (Playwright Workspaces)
      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 Playwright Workspaces
                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
    

Frissítse a CI munkafolyamat-definícióját, hogy a Playwright NUnit parancssori felülettel futtassa a playwright-teszteket. A környezetet környezeti változók megadásával konfigurálhatja.

  1. Nyissa meg a CI munkafolyamat-definícióját.

  2. Adja hozzá a következő lépéseket a forgatókönyv-tesztek Playwright-munkaterületeken való futtatásához.

    Az alábbi lépések a GitHub Actions vagy az Azure Pipelines munkafolyamat-módosításait ismertetik. Hasonlóképpen futtathatja a Playwright-teszteket a Playwright CLI használatával más CI-platformokon is.

    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 Playwright Workspaces
              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 -- 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. Mentse és véglegesítse a módosításokat.

    A CI-munkafolyamat aktiválásakor a Playwright-tesztek a Playwright-munkaterületen futnak a felhőben üzemeltetett böngészőkben, 20 párhuzamos feldolgozó között. Az eredmények közzé lesznek téve a szolgáltatásban, és megtekinthetők az Azure Portalon.

Figyelmeztetés

A Playwright-munkaterületek esetén a díjak a felhasznált teljes tesztpercek száma alapján kerülnek felszámításra. Ha Ön első felhasználó, vagy elsőként kezdi meg az ingyenes próbaverziót, előfordulhat, hogy a teljes tesztcsomag helyett egyetlen tesztet futtat, hogy elkerülje az ingyenes tesztpercek kimerítését.

Miután ellenőrzi, hogy a teszt sikeresen lefut-e, fokozatosan növelheti a tesztterhelést, ha további teszteket futtat a szolgáltatással.

A szolgáltatással egyetlen tesztet futtathat a következő parancssor használatával:

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

Tesztfuttatások és eredmények megtekintése

A playwright minden tesztfuttatáshoz gyűjthet olyan részletes tesztösszetevőket, mint a naplók, a nyomkövetések és a képernyőképek. A CI-folyamat tesztösszetevőinek megtekintéséhez tekintse meg a Playwright dokumentációját.

Sikeresen beállított egy folyamatos, végpontok közötti tesztelési munkafolyamatot a Playwright-tesztek nagy léptékű futtatásához a felhőalapú böngészőkben.