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:完成互動式登錄
輸入測試用戶帳戶憑據
- 瀏覽器視窗自動打開
- 使用您的測試用戶帳戶登錄
- 如果出現提示,請批准 MFA 和同意提示
- 出現提示時選擇“保持登錄狀態”
您的身份驗證現已保存。
- 測試引擎安全地儲存您的身份驗證
- 將來的測試運行使用保存的狀態,無需登錄
- 令牌在需要時自動更新
團隊設置: Dataverse 身份驗證
Dataverse 身份驗證非常適合團隊和 CI/CD 管道。 它安全地存儲經過身份驗證的用戶 Dataverse狀態,並使用 X.509 證書進行加密。
步驟 1:下載並導入測試引擎解決方案
- 從此處下載 Power Platform 解決方案https://aka.ms/TestEngineAuth。
- 登入Power Apps。
- 選擇目標環境。
- 轉到 解決方案,然後選擇 導入解決方案。
- 按照精靈上傳並安裝測試引擎解決方案。
步驟 2:建立用於加密的證書
對於自簽名證書 (僅限開發),請運行以下 PowerShell 腳本:
$Params = @{
DnsName = @("testengine", "testengine")
CertStoreLocation = "Cert:\CurrentUser\My"
NotAfter = (Get-Date).AddMonths(6)
KeyAlgorithm = "RSA"
KeyLength = 2048
}
New-SelfSignedCertificate @Params
對於生產,請使用企業證書頒發機構提供的證書。
第 3 步:設置測試使用者
完成以下步驟以設定測試使用者:
開啟終端機並登出任何現有的工作階段:
# Clear Power Platform CLI credentials pac auth clear # Clear Azure CLI credentials az logout使用 Azure CLI 登入(Dataverse 認證所需):
az login --allow-no-subscriptions將憑證名稱 設定為名為 PowerShell 的環境變數
DataProtectionCertificateName:$env:DataProtectionCertificateName = "CN=testengine"使用身份驗證執行 Dataverse 測試:
pac test run ` --provider canvas ` --user-auth Dataverse ` --auth Certstore ` --test-plan-file testplan.yaml ` --tenant your-tenant-id ` --environment-id your-environment-idNote
與StorageState不同,在這種情況下,您必須使用
--user-auth,並將其值設定為Dataverse的參數。出現提示時完成互動式登錄。
設定服務主體 (適用於 CI/CD)
對於 CI/CD 管道中的自動化測試,可以使用服務主體而不是互動式用戶帳戶。
步驟 1:在 Microsoft Entra ID 中建立應用程式註冊
請完成以下步驟,在 Microsoft Entra ID 中建立應用程式註冊。
- 登錄到 Microsoft Entra 管理中心
- 導航到 應用程式>應用程式註冊
- 選擇「新建註冊」。
- 輸入名稱 (例如“測試引擎自動化”)
- 保留默認選項並選擇 “註冊”
- 創建后,記下 應用程式 (用戶端) ID 和 目錄 (租戶) ID
步驟 2:為 Dataverse 配置 API 權限
完成以下步驟以設定 Dataverse 的 API 許可權。
- 在應用程式註冊中,轉到 API 許可權
- 選取新增權限
- 選擇 我的組織使用的 API
- 搜索並選擇 Dataverse
- 選擇「委派許可權」。
- 檢查 user_impersonation
- 選擇 新增權限
- 選擇 “授予管理員同意”
步驟 3:創建客戶端密碼
完成以下步驟以創建客戶端密碼。
- 轉到 證書和機密
- 選擇 “新建客戶端密碼”
- 添加描述並選擇到期時間
- 立即複製機密 值 (無法再次看到它)
步驟 4:將應用程式使用者添加到 Dataverse
完成以下步驟以將應用程式使用者新增到 Dataverse。
- 打開 Power Platform 管理中心
- 選取您的環境
- 轉到設定>使用者 + 權限>應用程式使用者
- 按一下新增應用使用者
- 搜索並選擇您的應用程式
- 分配適當的營業單位和安全角色 (包括“測試引擎使用者”角色)
- 儲存變更
步驟 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 身份驗證的工作原理
- 測試引擎使用 Azure CLI 來取得資源專屬的存取權杖
- 令牌用於直接與 Dataverse API 進行身份驗證
- 不涉及瀏覽器或基於 Web 的身份驗證
設置 PowerFx/Dataverse 身份驗證
確保 Azure CLI 已安裝且是最新的:
winget install -e --id Microsoft.AzureCLI # Or update it if already installed az upgrade用 Azure CLI 登入:
# The --allow-no-subscriptions flag is important as you may not have Azure subscriptions az login --allow-no-subscriptions使用 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。
-
解決方案:檢查 Azure CLI 是否已成功登入
問題:
Access denied服務主體出錯。- 解決方案:確認應用在 Dataverse 中具有正確的許可權和適當的安全角色。
PowerFx/Dataverse 身份驗證的常見問題
問題:
Unable to obtain access token錯誤-
Solution:請使用
az account get-access-token確認你已登入 Azure CLI
-
Solution:請使用
問題:
Access denied到 Dataverse- 解決方案:確保登錄用戶在 Dataverse 環境中具有適當的許可權
問題:長時間測試運行期間令牌過期
- 解決方案:使用令牌過期時間較長的服務主體,或在測試步驟中處理重新身份驗證