azure-microsoft-playwright-testing-ts

安装量: 50
排名: #14783

安装

npx skills add https://github.com/sickn33/antigravity-awesome-skills --skill azure-microsoft-playwright-testing-ts

Azure Playwright Workspaces SDK for TypeScript Run Playwright tests at scale with cloud-hosted browsers and integrated Azure portal reporting. Migration Notice: @azure/microsoft-playwright-testing is retired on March 8, 2026 . Use @azure/playwright instead. See migration guide . Installation

Recommended: Auto-generates config

npm init @azure/playwright@latest

Manual installation

npm install @azure/playwright --save-dev npm install @playwright/test@^1.47 --save-dev npm install @azure/identity --save-dev Requirements: Playwright version 1.47+ (basic usage) Playwright version 1.57+ (Azure reporter features) Environment Variables PLAYWRIGHT_SERVICE_URL = wss://eastus.api.playwright.microsoft.com/playwrightworkspaces/ { workspace-id } /browsers Authentication Microsoft Entra ID (Recommended)

Sign in with Azure CLI

az login // playwright.service.config.ts import { defineConfig } from "@playwright/test" ; import { createAzurePlaywrightConfig , ServiceOS } from "@azure/playwright" ; import { DefaultAzureCredential } from "@azure/identity" ; import config from "./playwright.config" ; export default defineConfig ( config , createAzurePlaywrightConfig ( config , { os : ServiceOS . LINUX , credential : new DefaultAzureCredential ( ) , } ) ) ; Custom Credential import { ManagedIdentityCredential } from "@azure/identity" ; import { createAzurePlaywrightConfig } from "@azure/playwright" ; export default defineConfig ( config , createAzurePlaywrightConfig ( config , { credential : new ManagedIdentityCredential ( ) , } ) ) ; Core Workflow Service Configuration // playwright.service.config.ts import { defineConfig } from "@playwright/test" ; import { createAzurePlaywrightConfig , ServiceOS } from "@azure/playwright" ; import { DefaultAzureCredential } from "@azure/identity" ; import config from "./playwright.config" ; export default defineConfig ( config , createAzurePlaywrightConfig ( config , { os : ServiceOS . LINUX , connectTimeout : 30000 , exposeNetwork : "" , credential : new DefaultAzureCredential ( ) , } ) ) ; Run Tests npx playwright test --config = playwright.service.config.ts --workers = 20 With Azure Reporter import { defineConfig } from "@playwright/test" ; import { createAzurePlaywrightConfig , ServiceOS } from "@azure/playwright" ; import { DefaultAzureCredential } from "@azure/identity" ; import config from "./playwright.config" ; export default defineConfig ( config , createAzurePlaywrightConfig ( config , { os : ServiceOS . LINUX , credential : new DefaultAzureCredential ( ) , } ) , { reporter : [ [ "html" , { open : "never" } ] , [ "@azure/playwright/reporter" ] , ] , } ) ; Manual Browser Connection import playwright , { test , expect , BrowserType } from "@playwright/test" ; import { getConnectOptions } from "@azure/playwright" ; test ( "manual connection" , async ( { browserName } ) => { const { wsEndpoint , options } = await getConnectOptions ( ) ; const browser = await ( playwright [ browserName ] as BrowserType ) . connect ( wsEndpoint , options ) ; const context = await browser . newContext ( ) ; const page = await context . newPage ( ) ; await page . goto ( "https://example.com" ) ; await expect ( page ) . toHaveTitle ( / Example / ) ; await browser . close ( ) ; } ) ; Configuration Options type PlaywrightServiceAdditionalOptions = { serviceAuthType ? : "ENTRA_ID" | "ACCESS_TOKEN" ; // Default: ENTRA_ID os ? : "linux" | "windows" ; // Default: linux runName ? : string ; // Custom run name for portal connectTimeout ? : number ; // Default: 30000ms exposeNetwork ? : string ; // Default: credential ? : TokenCredential ; // REQUIRED for Entra ID } ; ServiceOS Enum import { ServiceOS } from "@azure/playwright" ; // Available values ServiceOS . LINUX // "linux" - default ServiceOS . WINDOWS // "windows" ServiceAuth Enum import { ServiceAuth } from "@azure/playwright" ; // Available values ServiceAuth . ENTRA_ID // Recommended - uses credential ServiceAuth . ACCESS_TOKEN // Use PLAYWRIGHT_SERVICE_ACCESS_TOKEN env var CI/CD Integration GitHub Actions name : playwright - ts on : [ push , pull_request ] permissions : id-token : write contents : read jobs : test : runs-on : ubuntu - latest steps : - uses : actions/checkout@v4 - name : Azure Login uses : azure/login@v2 with : client-id : $ { { secrets.AZURE_CLIENT_ID } } tenant-id : $ { { secrets.AZURE_TENANT_ID } } subscription-id : $ { { secrets.AZURE_SUBSCRIPTION_ID } } - run : npm ci - name : Run Tests env : PLAYWRIGHT_SERVICE_URL : $ { { secrets.PLAYWRIGHT_SERVICE_URL } } run : npx playwright test - c playwright.service.config.ts - - workers=20 Azure Pipelines - task : AzureCLI@2 displayName : Run Playwright Tests env : PLAYWRIGHT_SERVICE_URL : $(PLAYWRIGHT_SERVICE_URL) inputs : azureSubscription : My_Service_Connection scriptType : pscore inlineScript : | npx playwright test -c playwright.service.config.ts --workers=20 addSpnToEnvironment : true Key Types import { createAzurePlaywrightConfig , getConnectOptions , ServiceOS , ServiceAuth , ServiceEnvironmentVariable , } from "@azure/playwright" ; import type { OsType , AuthenticationType , BrowserConnectOptions , PlaywrightServiceAdditionalOptions , } from "@azure/playwright" ; Migration from Old Package Old ( @azure/microsoft-playwright-testing ) New ( @azure/playwright ) getServiceConfig() createAzurePlaywrightConfig() timeout option connectTimeout option runId option runName option useCloudHostedBrowsers option Removed (always enabled) @azure/microsoft-playwright-testing/reporter @azure/playwright/reporter Implicit credential Explicit credential parameter Before (Old) import { getServiceConfig , ServiceOS } from "@azure/microsoft-playwright-testing" ; export default defineConfig ( config , getServiceConfig ( config , { os : ServiceOS . LINUX , timeout : 30000 , useCloudHostedBrowsers : true , } ) , { reporter : [ [ "@azure/microsoft-playwright-testing/reporter" ] ] , } ) ; After (New) import { createAzurePlaywrightConfig , ServiceOS } from "@azure/playwright" ; import { DefaultAzureCredential } from "@azure/identity" ; export default defineConfig ( config , createAzurePlaywrightConfig ( config , { os : ServiceOS . LINUX , connectTimeout : 30000 , credential : new DefaultAzureCredential ( ) , } ) , { reporter : [ [ "html" , { open : "never" } ] , [ "@azure/playwright/reporter" ] , ] , } ) ; Best Practices Use Entra ID auth — More secure than access tokens Provide explicit credential — Always pass credential: new DefaultAzureCredential() Enable artifacts — Set trace: "on-first-retry" , video: "retain-on-failure" in config Scale workers — Use --workers=20 or higher for parallel execution Region selection — Choose region closest to your test targets HTML reporter first — When using Azure reporter, list HTML reporter before Azure reporter When to Use This skill is applicable to execute the workflow or actions described in the overview.

返回排行榜