注意
預覽功能不供生產時使用,而且可能功能受限。 這些功能是在正式發行前先行推出,讓客戶能夠搶先體驗並提供意見反應。
本指南提供了在測試引擎中設置身份驗證的分步說明。 有關身份驗證選項的快速概述,請參閱 測試引擎中的身份驗證。
身份驗證入門
測試引擎支援兩種基於 Web 的畫布測試和模型驅動應用程式的身份驗證方法:
- StorageState - 用於單個開發的預設、輕鬆設置 (用於基於 Web 的畫布和模型驅動應用測試)
- Dataverse - 用於共享測試使用者和 CI/CD 的基於團隊的方法 (用於基於 Web 的畫布和模型驅動應用測試)
PowerFx 提供程式和直接 Dataverse 測試的身份驗證處理方式不同。 這些測試使用命令直接從登錄的 Azure CLI 工作階段獲取訪問權杖,以 az 獲取資源訪問令牌。 在運行這些類型的測試之前,請確保您已登錄。 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
注意
此示例中未使用 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-id注意
與 StorageState 不同,在這種情況下,您必須使用
--user-auth值為的Dataverse參數。出現提示時完成互動式登錄。
設定服務主體 (適用於 CI/CD)
對於 CI/CD 管道中的自動化測試,可以使用服務主體而不是互動式用戶帳戶。
第 1 步:在 ID 中 Microsoft Entra 創建應用程式註冊
完成以下步驟,在 ID 中 Microsoft Entra 創建應用程式註冊。
- 登錄到 Microsoft Entra 管理中心
- 導航到 應用程式應用程式註冊>
- 選擇「新建註冊」。
- 輸入名稱 (例如“測試引擎自動化”)
- 保留默認選項並選擇 “註冊”
- 創建后,記下 應用程式 (用戶端) ID 和 目錄 (租戶) ID
步驟 2:配置 API 許可權 Dataverse
完成以下步驟以配置 API 許可權 Dataverse。
- 在應用程式註冊中,轉到 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 獲取特定於資源的訪問令牌
- 令牌用於直接使用 API 進行 Dataverse 身份驗證
- 不涉及瀏覽器或基於 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錯誤-
解決方案:使用 Azure CLI 驗證是否登錄
az account get-access-token
-
解決方案:使用 Azure CLI 驗證是否登錄
問題:
Access denied到 Dataverse- 解決方案:確保登錄用戶在 Dataverse 環境中具有適當的許可權
問題:長時間測試運行期間令牌過期
- 解決方案:使用令牌過期時間較長的服務主體,或在測試步驟中處理重新身份驗證