Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом кратком руководстве вы настраиваете непрерывное комплексное тестирование с помощью рабочих областей Playwright, чтобы проверить правильность работы веб-приложения в разных браузерах и операционных системах при каждом фиксе кода и легко устранять неполадки с помощью панели инструментов сервиса. Узнайте, как добавить тесты Playwright в рабочий процесс непрерывной интеграции (CI), например GitHub Actions, Azure Pipelines или другие платформы CI.
После выполнения этого краткого руководства у вас есть рабочий процесс CI, который запускает набор тестов Playwright в большом масштабе и помогает легко устранять неполадки с помощью рабочих областей Playwright.
Это важно
Рабочие области Playwright в настоящее время находятся в бета-версии. Юридические условия, применимые к функциям Azure, которые находятся в бета-версии, предварительной версии или в противном случае еще не выпущены в общедоступную версию, см . в дополнительных условиях использования для предварительных версий Microsoft Azure.
Предпосылки
Учетная запись Azure с активной подпиской. Если у вас нет подписки на Azure, создайте бесплатную учетную запись перед началом.
Рабочая область Playwright. Выполните краткое руководство. Выполните тесты Playwright в масштабе и создайте рабочую область.
- Учетная запись GitHub. Если у вас нет учетной записи GitHub, ее можно создать бесплатно.
- Репозиторий GitHub, содержащий спецификации тестирования Playwright и рабочий процесс GitHub Actions. Сведения о создании репозитория см. в статье "Создание нового репозитория".
- Рабочий процесс GitHub Actions. Если вам нужна помощь по началу работы с GitHub Actions, см . статью о создании первого рабочего процесса.
- Настройте проверку подлинности из GitHub Actions в Azure. См. статью "Использование GitHub Actions" для подключения к Azure.
Получение URL-адреса конечной точки региона службы
В конфигурации службы необходимо предоставить конечную точку службы для конкретного региона. Конечная точка зависит от региона Azure, выбранного при создании рабочей области.
Чтобы получить URL-адрес конечной точки службы и сохранить его в виде секрета рабочего процесса CI, выполните следующие действия:
Войдите на портал Azure с помощью учетной записи Azure и перейдите в рабочую область.
Выберите страницу "Начало работы ".
Чтобы добавить конечную точку региона в настройке, скопируйте URL-адрес конечной точки службы.
URL-адрес конечной точки соответствует региону Azure, выбранному при создании рабочей области.
Сохраните URL-адрес конечной точки службы в секрете рабочего процесса CI:
Имя секрета Ценность PLAYWRIGHT_SERVICE_URL Вставьте URL-адрес конечной точки, скопированный ранее.
Добавление файла конфигурации службы
Если у вас нет тестов Playwright, настроенных для запуска со службой, добавьте файл конфигурации службы в репозиторий. На следующем шаге необходимо указать этот файл конфигурации службы в интерфейсе командной строки playwright.
Создайте файл
playwright.service.config.ts
вместе с файломplaywright.config.ts
.При необходимости используйте
playwright.service.config.ts
файл в примере репозитория.Добавьте в него следующее содержимое:
import { defineConfig } from '@playwright/test'; import { getServiceConfig, ServiceOS } from '@azure/playwright'; import { DefaultAzureCredential } from '@azure/identity'; 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: 3 * 60 * 1000, // 3 minutes os: ServiceOS.LINUX, credential: new DefaultAzureCredential(), }) );
По умолчанию конфигурация службы позволяет ускорить конвейеры сборки, выполняя тесты параллельно с помощью браузеров, размещенных в облаке.
Сохраните и закоммитьте файл в репозиторий исходного кода.
Обновление файла package.json
Обновите файл package.json
в вашем репозитории, чтобы добавить сведения о пакете Playwright Workspaces в разделе devDependencies
.
"devDependencies": {
"@azure/playwright": "beta"
}
Установка пакета службы
Установите в своем проекте пакет Playwright Workspaces.
dotnet add package Azure.Developer.Playwright.NUnit --prerelease
Эта команда обновляет файл проекта csproj
, добавив сведения о пакете службы в ItemGroup
раздел. Не забудьте зафиксировать эти изменения.
<ItemGroup>
<PackageReference Include="Azure.Developer.Playwright.NUnit" Version="1.0.0-beta.2" />
</ItemGroup>
Настройка конфигурации службы
- Создайте новый файл
PlaywrightServiceNUnitSetup.cs
в корневом каталоге проекта. Этот файл упрощает проверку подлинности клиента с помощью службы. - Добавьте в него следующее содержимое:
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
}
}
- Сохраните и закоммитьте файл в репозиторий исходного кода.
Настройка проверки подлинности
Компьютер CI, на котором выполняются тесты Playwright, должен пройти проверку подлинности с помощью службы Playwright Workspaces, чтобы получить браузеры для выполнения тестов.
Служба предлагает два метода проверки подлинности: идентификатор Microsoft Entra и маркеры доступа. Настоятельно рекомендуется использовать идентификатор Microsoft Entra для проверки подлинности конвейеров.
Настройка проверки подлинности с помощью идентификатора Microsoft Entra
Если вы используете GitHub Actions, вы можете подключиться к службе с помощью GitHub OpenID Connect. Выполните действия, чтобы настроить интеграцию:
Предпосылки
Вариант 1. Приложение Microsoft Entra
Создайте приложение Microsoft Entra с субъектом-службой с помощью портала Azure, Azure CLI или Azure PowerShell.
Скопируйте значения для идентификатора клиента, идентификатора подписки и идентификатора каталога (клиента), чтобы использовать его позже в рабочем процессе GitHub Actions.
Назначьте учетной записи службы роль
Owner
илиContributor
, созданную на предыдущем шаге. Эти роли должны быть назначены в рабочей области Playwright. Дополнительные сведения см. в статье об управлении доступом.Настройте учетные данные федеративного удостоверения в приложении Microsoft Entra, чтобы доверять токенам, выдаваемым GitHub Actions в вашем репозитории GitHub.
Вариант 2. Управляемое удостоверение, назначаемое пользователем
Создайте управляемое удостоверение, назначаемое пользователем.
Скопируйте значения для идентификатора клиента, идентификатора подписки и идентификатора каталога (клиента), чтобы использовать его позже в рабочем процессе GitHub Actions.
Назначьте роль
Owner
илиContributor
управляемому удостоверению, назначенному пользователем, созданному на предыдущем шаге. Эти роли должны быть назначены в рабочей области Playwright. Дополнительные сведения см. в статье об управлении доступом.Настройте учетные данные федеративного удостоверения в управляемом удостоверении , назначаемом пользователем, для доверия маркеров, выданных GitHub Actions в репозитории GitHub.
Создавайте секреты GitHub
- Добавьте значения, которые вы получили на предыдущем шаге в качестве секретов в репозиторий GitHub. См . раздел "Настройка секрета действия GitHub". Эти переменные используются в рабочем процессе GitHub Action в последующих шагах.
Секрет Github | Источник (приложение Microsoft Entra или управляемое удостоверение) |
---|---|
AZURE_CLIENT_ID |
Идентификатор клиента |
AZURE_SUBSCRIPTION_ID |
ID подписки |
AZURE_TENANT_ID |
Идентификатор каталога (клиента) |
Замечание
Для повышения безопасности настоятельно рекомендуется использовать секреты GitHub для хранения конфиденциальных значений вместо того, чтобы включать их напрямую в файле рабочего процесса.
Настройка проверки подлинности с помощью токенов доступа
Осторожность
Настоятельно рекомендуется использовать идентификатор Microsoft Entra для проверки подлинности в службе. Если вы используете маркеры доступа, см. инструкции по управлению маркерами доступа
Вы можете создать маркер доступа из рабочей области Playwright и использовать его в настройке. Однако настоятельно рекомендуется использовать идентификатор Microsoft Entra для проверки подлинности из-за повышенной безопасности. Маркеры доступа, хотя и удобны, действуют как долговременные пароли и более подвержены компрометации.
Проверка подлинности с помощью маркеров доступа по умолчанию отключена. Чтобы использовать, включите проверку подлинности на основе маркера доступа.
Сохраните маркер доступа в секрете рабочего процесса CI и используйте его в рабочем процессе GitHub Actions или yaml-файле Azure Pipeline.
Имя секрета | Ценность |
---|---|
PLAYWRIGHT_SERVICE_ACCESS_TOKEN | Вставьте значение созданного ранее токена доступа. |
Обновление определения рабочего процесса
Обновите определение рабочего процесса CI, чтобы запустить тесты Playwright с помощью интерфейса командной строки Playwright. Передайте файл конфигурации службы в качестве входного параметра для интерфейса командной строки Playwright. Вы настраиваете среду, указывая переменные среды.
Откройте определение рабочего процесса CI.
Добавьте следующие шаги, чтобы запустить тесты Playwright в рабочих областях Playwright.
Ниже описаны изменения рабочего процесса для действий GitHub или Azure Pipelines. Аналогичным образом можно выполнять тесты Playwright с помощью интерфейса командной строки Playwright на других платформах CI.
# 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
Обновите определение рабочего процесса CI, чтобы запустить тесты Playwright с помощью интерфейса командной строки Playwright NUnit. Вы настраиваете среду, указывая переменные среды.
Откройте определение рабочего процесса CI.
Добавьте следующие шаги, чтобы запустить тесты Playwright в рабочих областях Playwright.
Ниже описаны изменения рабочего процесса для действий GitHub или Azure Pipelines. Аналогичным образом можно выполнять тесты Playwright с помощью интерфейса командной строки Playwright на других платформах 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 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
Сохраните и зафиксируйте изменения.
При активации рабочего процесса CI тесты Playwright выполняются в среде Playwright на облачных браузерах в 20 параллельных рабочих процессах. Результаты публикуются в службе и могут просматриваться на портале Azure.
Осторожность
При использовании Playwright Workspaces плата взимается на основе общего количества используемых минут тестирования. Если вы являетесь первоначальным пользователем или начинаете пользоваться бесплатной пробной версией, вы можете начать с запуска одного теста в большем масштабе вместо полного набора тестов для предотвращения исчерпания бесплатных минут тестирования.
После успешного выполнения теста можно постепенно увеличить тестовую нагрузку, выполнив дополнительные тесты со службой.
Вы можете выполнить один тест со службой с помощью следующей командной строки:
npx playwright test {name-of-file.spec.ts} --config=playwright.service.config.ts
Просмотр тестов и результатов
Playwright может собирать подробные артефакты теста, такие как журналы, трассировки и снимки экрана при каждом тестовом запуске. Сведения о том, как просматривать тестовые артефакты в конвейере CI, см. в документации по Playwright.
Связанный контент
Вы успешно настроили непрерывный комплексный рабочий процесс тестирования для выполнения тестов Playwright в большом масштабе в облачных браузерах.