Power Apps 測試引擎認證指南(已棄用)

Note

測試引擎已被棄用 ,未來版本將被移除。 使用 Power Platform Playwright 範例,用於 Power Platform 和 Dynamics 365 服務中的自動化測試功能。

本指南提供了在測試引擎中設置身份驗證的分步說明。 有關身份驗證選項的快速概述,請參閱 測試引擎中的身份驗證

身份驗證入門

測試引擎支援兩種基於 Web 的畫布測試和模型驅動應用程式的身份驗證方法:

  • StorageState - 預設與簡單設置,適用於個別開發(用於基於網頁的畫布和模型驅動應用程式測試)
  • Dataverse - 共用測試使用者和 CI/CD 的團隊協作方法 (適用於網頁導向畫布和模型導向應用程式測試)

PowerFx 提供者和直接進行 Dataverse 測試時的身份驗證處理方式不同。 這些測試使用 az 命令,直接從已登錄的 Azure CLI 工作階段獲取資源訪問令牌。 在運行這些類型的測試之前,請確保您已使用 az login --allow-no-subscriptions 登錄。

快速設置:StorageState 身份驗證

StorageState 身份驗證是最簡單的入門方法。 它使用 Windows 資料保護 API,安全地將認證憑證儲存在本地機器上。

步驟 1:使用預設身份驗證運行測試

運行以下 PowerShell 命令,將開頭的參數替換為。 your

pac test run `
   --provider canvas `
   --test-plan-file your-test-plan.yaml `
   --tenant your-tenant-id `
   --environment-id your-environment-id

Note

此示例中未使用 pac test run--user-auth 參數,因為預設提供程式是。 StorageState 如果您願意,您可以將其包含在內。

步驟 2:完成互動式登錄

輸入測試用戶帳戶憑據

  1. 瀏覽器視窗自動打開
  2. 使用您的測試用戶帳戶登錄
  3. 如果出現提示,請批准 MFA 和同意提示
  4. 出現提示時選擇“保持登錄狀態”

您的身份驗證現已保存。

  • 測試引擎安全地儲存您的身份驗證
  • 將來的測試運行使用保存的狀態,無需登錄
  • 令牌在需要時自動更新

團隊設置: Dataverse 身份驗證

Dataverse 身份驗證非常適合團隊和 CI/CD 管道。 它安全地存儲經過身份驗證的用戶 Dataverse狀態,並使用 X.509 證書進行加密。

步驟 1:下載並導入測試引擎解決方案

  1. 從此處下載 Power Platform 解決方案https://aka.ms/TestEngineAuth
  2. 登入Power Apps
  3. 選擇目標環境。
  4. 轉到 解決方案,然後選擇 導入解決方案
  5. 按照精靈上傳並安裝測試引擎解決方案。

步驟 2:建立用於加密的證書

對於自簽名證書 (僅限開發),請運行以下 PowerShell 腳本:

$Params = @{
  DnsName = @("testengine", "testengine")
  CertStoreLocation = "Cert:\CurrentUser\My"
  NotAfter = (Get-Date).AddMonths(6)
  KeyAlgorithm = "RSA"
  KeyLength = 2048
}
New-SelfSignedCertificate @Params

對於生產,請使用企業證書頒發機構提供的證書。

第 3 步:設置測試使用者

完成以下步驟以設定測試使用者:

  1. 開啟終端機並登出任何現有的工作階段:

    # Clear Power Platform CLI credentials
    pac auth clear
    
    # Clear Azure CLI credentials
    az logout
    
  2. 使用 Azure CLI 登入(Dataverse 認證所需):

    az login --allow-no-subscriptions
    
  3. 將憑證名稱 設定為名為 PowerShell 的環境變數 DataProtectionCertificateName

    $env:DataProtectionCertificateName = "CN=testengine"
    
  4. 使用身份驗證執行 Dataverse 測試:

    pac test run `
       --provider canvas `
       --user-auth Dataverse `
       --auth Certstore `
       --test-plan-file testplan.yaml `
       --tenant your-tenant-id `
       --environment-id your-environment-id
    

    Note

    StorageState不同,在這種情況下,您必須使用--user-auth,並將其值設定為Dataverse的參數。

  5. 出現提示時完成互動式登錄。

設定服務主體 (適用於 CI/CD)

對於 CI/CD 管道中的自動化測試,可以使用服務主體而不是互動式用戶帳戶。

步驟 1:在 Microsoft Entra ID 中建立應用程式註冊

請完成以下步驟,在 Microsoft Entra ID 中建立應用程式註冊。

  1. 登錄到 Microsoft Entra 管理中心
  2. 導航到 應用程式>應用程式註冊
  3. 選擇「新建註冊」。
  4. 輸入名稱 (例如“測試引擎自動化”)
  5. 保留默認選項並選擇 “註冊”
  6. 創建后,記下 應用程式 (用戶端) ID目錄 (租戶) ID

步驟 2:為 Dataverse 配置 API 權限

完成以下步驟以設定 Dataverse 的 API 許可權。

  1. 在應用程式註冊中,轉到 API 許可權
  2. 選取新增權限
  3. 選擇 我的組織使用的 API
  4. 搜索並選擇 Dataverse
  5. 選擇「委派許可權」。
  6. 檢查 user_impersonation
  7. 選擇 新增權限
  8. 選擇 “授予管理員同意”

步驟 3:創建客戶端密碼

完成以下步驟以創建客戶端密碼。

  1. 轉到 證書和機密
  2. 選擇 “新建客戶端密碼”
  3. 添加描述並選擇到期時間
  4. 立即複製機密 (無法再次看到它)

步驟 4:將應用程式使用者添加到 Dataverse

完成以下步驟以將應用程式使用者新增到 Dataverse。

  1. 打開 Power Platform 管理中心
  2. 選取您的環境
  3. 轉到設定>使用者 + 權限>應用程式使用者
  4. 按一下新增應用使用者
  5. 搜索並選擇您的應用程式
  6. 分配適當的營業單位和安全角色 (包括“測試引擎使用者”角色)
  7. 儲存變更

步驟 5:配置 CI/CD 管道

將以下變數新增到管道中:

AZURE_CLIENT_ID: (your application ID)
AZURE_CLIENT_SECRET: (your client secret)
AZURE_TENANT_ID: (your tenant ID)
DataProtectionCertificateValue: (base64 encoded certificate)
ENVIRONMENT_URL: (your Dataverse environment URL)

對於Azure DevOps,請以適當的權限安全地存放在變數群組中。

PowerFx 和即時 Dataverse 測試身份驗證

對於 PowerFx 提供程式測試和直接 Dataverse 測試,身份驗證的工作方式與基於 Web 的測試不同。

PowerFx/Dataverse 身份驗證的工作原理

  1. 測試引擎使用 Azure CLI 來取得資源專屬的存取權杖
  2. 令牌用於直接與 Dataverse API 進行身份驗證
  3. 不涉及瀏覽器或基於 Web 的身份驗證

設置 PowerFx/Dataverse 身份驗證

  1. 確保 Azure CLI 已安裝且是最新的:

    winget install -e --id Microsoft.AzureCLI
    # Or update it if already installed
    az upgrade
    
  2. 用 Azure CLI 登入:

    # The --allow-no-subscriptions flag is important as you may not have Azure subscriptions
    az login --allow-no-subscriptions
    
  3. 使用 PowerFx 提供程式執行測試:

    pac test run `
       --provider powerfx `
       --test-plan-file testplan.yaml `
       --tenant your-tenant-id `
       --environment-id your-environment-id `
       --domain "https://your-environment.crm.dynamics.com"
    

身份驗證故障排除

本節包含有關使用測試引擎進行身份驗證故障排除的資訊。

StorageState 的常見問題

  • 問題:每次運行時都會出現身份驗證提示。

    • 解決方案:檢查您是否選擇了 登錄期間保持登錄 狀態。
  • 問題Cannot access secure storage 錯誤。

    • 解決方案:確保您對使用者配置檔資料夾具有適當的訪問許可權。

Dataverse 身份驗證常見問題

  • 問題Certificate not found 錯誤。

    • 解決方案:驗證證書名稱是否與證書存儲中的名稱完全匹配。
  • 問題Unable to connect to Dataverse 錯誤。

    • 解決方案:檢查 Azure CLI 是否已成功登入az login --allow-no-subscriptions
  • 問題Access denied 服務主體出錯。

    • 解決方案:確認應用在 Dataverse 中具有正確的許可權和適當的安全角色。

PowerFx/Dataverse 身份驗證的常見問題

  • 問題Unable to obtain access token 錯誤

    • Solution:請使用 az account get-access-token 確認你已登入 Azure CLI
  • 問題Access denied 到 Dataverse

    • 解決方案:確保登錄用戶在 Dataverse 環境中具有適當的許可權
  • 問題:長時間測試運行期間令牌過期

    • 解決方案:使用令牌過期時間較長的服務主體,或在測試步驟中處理重新身份驗證

身份驗證安全架構
測試 Canvas 應用程式
測試模型驅動應用程式
測試 Dataverse 擴充功能