重要事項
Microsoft 劇作家測試將於 2026 年 3 月 8 日淘汰。 若要繼續執行 Playwright 測試,請在 Azure 應用程式測試中建立新的 Playwright 工作區,現已正式推出。 瞭解如何移轉。
在本快速入門中,您會使用 Microsoft Playwright Testing 預覽版來設定持續的端對端測試,以驗證 Web 應用程式可搭配每一個程式碼認可,在不同瀏覽器和作業系統之間正確執行,並使用服務儀錶板來輕鬆疑難排解測試。 請了解如何將 Playwright 測試新增至持續整合 (CI) 工作流程,例如 GitHub Actions、Azure Pipelines 或其他 CI 平台。
完成本快速入門之後,您會獲得一個 CI 工作流程,其會使用 Microsoft Playwright Testing 大規模地執行 Playwright 測試套件並幫助您輕鬆疑難排解測試。
重要事項
Microsoft Playwright Testing 目前為預覽版。 如需適合測試版、處於預覽狀態或其他尚未發行正式推出之 Azure 功能的法律條款,請參閱 Microsoft Azure 預覽版補充使用條款。
先決條件
具有有效訂用帳戶的 Azure 帳戶。 如果您沒有 Azure 訂用帳戶,請在開始前建立免費帳戶。
Microsoft Playwright Testing 工作區。 完成快速入門:大規模執行 Playwright 測試並建立工作區。
- GitHub 帳戶。 如果您沒有 GitHub 帳戶,可以免費建立一個 (英文)。
- GitHub 存放庫,其中包含您的 Playwright 測試規格和 GitHub Actions 工作流程。 若要建立存放庫,請參閱建立新的存放庫 (英文)。
- GitHub Actions 工作流程。 如果您需要協助以便開始使用 GitHub Actions,請參閱建立您的第一個工作流程 (英文)
- 設定從 GitHub Actions 到 Azure 的驗證。 查看使用 GitHub Actions 連線到 Azure
取得服務區域端點 URL
在服務組態中,您必須提供區域特定的服務端點。 此端點取決於您在建立工作區時選取的 Azure 區域。
若要取得服務端點 URL,並將其儲存為 CI 工作流程祕密,請執行下列步驟:
使用您的 Azure 帳戶登入 Playwright 入口網站 (英文)。
在工作區首頁上,選取 [檢視設定指南]。
秘訣
如果您有多個工作區,則可以藉由選取頁面頂端的工作區名稱來切換至另一個工作區,然後選取 [管理所有工作區]。
在 [在設定中新增區域端點] 中,複製服務端點 URL。
此端點 URL 會符合您在建立工作區時選取的 Azure 區域。
將服務端點 URL 儲存在 CI 工作流程秘密中:
祕密名稱 值 PLAYWRIGHT_SERVICE_URL 貼上您先前複製的端點 URL。
新增服務組態檔
如果您未將 Playwright 測試設定為與服務一起執行,請將服務組態檔新增至您的存放庫。 在下一個步驟中,您接著會在 Playwright CLI 上指定此服務組態檔。
連同
playwright.service.config.ts檔案一起建立新檔案playwright.config.ts。將下列內容新增至其中:
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']], } );根據預設,服務組態可讓您:
- 使用雲端裝載的瀏覽器平行執行測試,以加速建置管線。
- 透過輕鬆存取發佈至服務的測試結果和成品,簡化疑難排解。
不過,您可選擇使用這些功能之一或兩者。 請參閱如何使用服務功能,並根據您的需求更新服務組態檔。
將檔案儲存並認可至您的原始程式碼存放庫。
更新 package.json 檔案
更新存放庫中的 package.json 檔案,以在 devDependencies 區段中新增Microsoft Playwright Testing 服務套件的詳細資料。
"devDependencies": {
"@azure/microsoft-playwright-testing": "^1.0.0-beta.6"
}
在 Playwright 設定中啟用成品
在專案的 playwright.config.ts 檔案中,確定您所收集的是所有必要的成品。
use: {
trace: 'on-first-retry',
video:'retain-on-failure',
screenshot:'on'
},
設定服務組態
在專案的根目錄中建立新檔案
PlaywrightServiceSetup.cs。 此檔案可協助使用服務驗證用戶端。將下列內容新增至其中:
using Azure.Developer.MicrosoftPlaywrightTesting.NUnit; using NUnit.Framework; namespace PlaywrightTests; // Remember to change this as per your project namespace [SetUpFixture] public class PlaywrightServiceSetup : PlaywrightServiceNUnit { };將檔案儲存並認可至您的原始程式碼存放庫。
安裝服務套件
在您的專案中,安裝 Microsoft Playwright Testing 套件。
dotnet add package Azure.Developer.MicrosoftPlaywrightTesting.NUnit --prerelease
此命令會將服務套件詳細資料新增至 csproj 區段,以更新專案的 ItemGroup 檔案。 請記得認可這些變更。
<ItemGroup>
<PackageReference Include="Azure.Developer.MicrosoftPlaywrightTesting.NUnit" Version="1.0.0-beta.2" />
</ItemGroup>
新增或更新專案的 .runsettings 檔案。
如果您尚未設定 Playwright 測試以使用服務執行它們,請將 .runsettings 檔案新增至您的存放庫。 在下一個步驟中,您接著會在 Playwright CLI 上指定此服務組態檔。
建立新的
.runsettings檔案。將下列內容新增至其中:
<?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>此檔案中的設定可讓您:
- 使用雲端裝載的瀏覽器平行執行測試,以加速建置管線。
- 將測試結果和成品發佈至服務,更快速地進行疑難排解。
不過,您可選擇使用這些功能之一或兩者。 請參閱如何使用服務功能,並根據您的需求更新服務組態檔。
將檔案儲存並認可至您的原始程式碼存放庫。
在 Playwright 設定中啟用成品
設定 Playwright 以擷取螢幕擷取畫面、影片和追蹤等成品。
收集這些成品之後,請將它們連結至 TestContext,以確保這些成品可用於您的測試報告。 如需詳細資訊,請參閱 NUnit 的範例專案。
設定驗證
執行 Playwright 測試的 CI 機器必須向 Playwright Testing 服務進行驗證,才能讓瀏覽器執行測試並發佈測試結果和成品。
此服務提供兩種驗證方法:Microsoft Entra ID 和存取權杖。 強烈建議使用 Microsoft Entra ID 來驗證管線。
使用 Microsoft Entra ID 設定驗證
如果您使用 GitHub Actions,您可以使用 GitHub OpenID Connect 連線到服務。 請遵循以下步驟來設定整合:
先決條件
選項 1:Microsoft Entra 應用程式
經由 Azure 入口網站、Azure CLI 或 Azure PowerShell,建立具有服務主體的 Microsoft Entra 應用程式。
複製用戶端識別碼、訂用帳戶標識碼和目錄 (租用戶) 識別碼的值,以便稍後在 GitHub Actions 工作流程中使用。
將
Owner或Contributor角色指派給在上一個步驟中建立的服務主體。 必須在 Playwright 測試工作區上指派這些角色。 如需詳細資訊,請參閱如何管理存取。在 Microsoft Entra 應用程式上設定同盟身分識別認證,以信任 GitHub Actions 簽發給 GitHub 存放庫的權杖。
選項 2:使用者指派的受控識別
複製用戶端識別碼、訂用帳戶標識碼和目錄 (租用戶) 識別碼的值,以便稍後在 GitHub Actions 工作流程中使用。
將
Owner或Contributor角色指派給在上一步中建立的使用者指派受控識別。 必須在 Playwright 測試工作區上指派這些角色。 如需詳細資訊,請參閱如何管理存取。在使用者指派的受控識別上設定同盟身分識別認證 (部分機器翻譯),以信任 GitHub Actions 簽發給 GitHub 存放庫的權杖。
建立 GitHub 秘密
- 將您在上一個步驟中取得的值新增為 GitHub 存放庫的秘密。 請參閱設定 GitHub 動作秘密。 後續步驟中的 GitHub 動作工作流程會使用這些變數。
| GitHub 祕密 | 來源 (Microsoft Entra 應用程式或受控識別) |
|---|---|
AZURE_CLIENT_ID |
用戶端識別碼 |
AZURE_SUBSCRIPTION_ID |
訂用帳戶識別碼 |
AZURE_TENANT_ID |
目錄 (租用戶) 識別碼 |
附註
為了增強安全性,強烈建議使用 GitHub 秘密來儲存具敏感性的值,而不是將這些值直接放入工作流程檔案中。
使用存取權杖設定驗證
注意
我們強烈建議使用 Microsoft Entra ID 對服務進行驗證。 如果您使用存取權杖,請參閱如何管理存取權杖
您可以從 Playwright Testing 工作區產生存取權杖,並在您的設定中使用該權杖。 不過,我們強烈建議使用 Microsoft Entra ID 進行驗證,因為其安全性更高。 存取權杖雖然方便,但功能類似長期密碼,而且更容易遭到入侵。
根據預設,使用存取權杖進行驗證會停用。 若要使用,請啟用存取權杖型驗證。
將存取權杖儲存在 CI 工作流程秘密中,並在 GitHub Actions 工作流程或 Azure Pipeline yaml 檔案中使用該權杖。
| 祕密名稱 | 值 |
|---|---|
| PLAYWRIGHT_SERVICE_ACCESS_TOKEN | 貼上您先前建立的存取權杖值。 |
更新工作流程定義
更新 CI 工作流程定義,以使用 Playwright CLI 來執行 Playwright 測試。 將服務組態檔作為 Playwright CLI 的輸入參數來傳遞。 您可以藉由指定環境變數來設定環境。
開啟 CI 工作流程定義
新增下列步驟,以在 Microsoft Playwright Testing 中執行 Playwright 測試。
下列步驟說明 GitHub Actions 或 Azure Pipelines 的工作流程變更。 同樣地,您也可以在其他 CI 平台中使用 Playwright CLI 來執行 Playwright 測試。
# 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
更新 CI 工作流程定義,以使用 Playwright NUnit CLI 執行 Playwright 測試。 傳遞 .runsettings 檔案作為 Playwright CLI 的輸入參數。 您可以藉由指定環境變數來設定環境。
開啟 CI 工作流程定義。
新增下列步驟,以在 Microsoft Playwright Testing 中執行 Playwright 測試。
下列步驟說明 GitHub Actions 或 Azure Pipelines 的工作流程變更。 同樣地,您也可以在其他 CI 平台中使用 Playwright CLI 來執行 Playwright 測試。
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
儲存並認可您的變更。
觸發 CI 工作流程時,Playwright 測試便會在雲端裝載的瀏覽器上的 Microsoft Playwright Testing 工作區中,跨 20 個平行背景工作角色來執行。 收集的結果和成品會發佈至服務,而且可在服務入口網站上檢視。
測試回合的設定可以在 .runsettings 檔案中定義。 如需詳細資訊,請參閱如何使用服務套件選項
附註
預設會針對現有的工作區啟用報告功能。 這會分階段推出,需要幾天的時間。 若要避免失敗,請先確認工作區的 Rich diagnostics using reporting 設定為 [開啟],然後再繼續。 如需詳細資訊,請參閱啟用工作區的報告。
注意
使用 Microsoft Playwright Testing 時,您必須根據使用的總測試分鐘數和發佈的測試結果數目來付費。 如果您是第一次使用,或透過免費試用來開始使用,則一開始可以大規模地執行單一測試,而不是執行完整的測試套件,以免耗盡免費的測試分鐘數和測試結果。
驗證測試回合成功後,便可以透過搭配服務來執行更多測試,逐漸增加測試負載。
您可以使用下列命令列,搭配服務來執行單一測試:
npx playwright test {name-of-file.spec.ts} --config=playwright.service.config.ts
在 Playwright 入口網站中檢視測試執行和結果
您現在可以在 Playwright 入口網站中,針對 CI 管線進行疑難排解,
測試回合完成之後,您會在終端機中取得 Playwright 入口網站的連結。 開啟此連結以檢視詳細的測試結果和相關聯的成品。 入口網站會顯示必要資訊,包括:
- CI 組建詳細資料
- 整體測試回合狀態
- 連結至測試執行的認可識別碼
Playwright 入口網站提供疑難排解所需的所有資訊。 您可以:
- 檢視詳細的錯誤記錄和附加的成品,例如螢幕擷取畫面或影片。
- 直接瀏覽至追蹤檢視器以進行更深入的分析。
附註
服務儀表板上目前不會顯示某些中繼資料,例如擁有者、描述和類別。 如果您希望看到其他訊息,請在我們的存放庫中提交 GitHub 問題。
秘訣
您可以獨立使用 Microsoft Playwright Testing 服務功能。 您可以在不使用雲端裝載瀏覽器功能的情況下,將測試結果發佈至入口網站,您也可以只使用雲端裝載瀏覽器來加速您的測試套件,而不發佈測試結果。 如需詳細資訊,請參閱如何使用服務功能。
附註
您發佈的測試結果和成品會在服務上保留 90 天。 之後,系統會自動將它們刪除。
相關內容
您已成功設定持續的端對端測試工作流程,以在雲端裝載的瀏覽器上大規模地執行 Playwright 測試。
向使用者授與工作區的存取權 (部分機器翻譯)
管理工作區 (部分機器翻譯)