Test Engine 使用基於提供程式的架構,使其能夠支援跨不同應用程式類型的測試。 每個供應商都針對特定的應用程式類型進行了優化,從而實現高效的測試自動化,同時提供一致的測試體驗。
什麼是供應商?
提供程式是測試引擎中的專用模組,用於處理與不同應用程式類型互動的細節:
- 它們抽象了測試不同應用技術的複雜性
- 它們提供特定於類型的測試作實現
- 它們針對每種應用程式類型適當地處理身份驗證和上下文
- 它們決定了測試的執行和解釋方式
提供程式類型
以下部分介紹測試引擎中可用的不同類型的提供程式。 每個供應商都針對特定的應用場景而設計,為基於 Web 和基於 API 的測試提供定製功能。
基於 Web 的供應商
基於 Web 的供應商透過添加特定於應用程式的抽象來擴展 Playwright 的瀏覽器自動化功能,從而更輕鬆地測試 Web 應用程式,而無需處理低級 DOM 元素。
畫布應用程式提供者
Canvas 應用程式提供者 (canvas) 專門用於測試 Power Apps 畫布應用程式:
- 抽象級別:使用應用程式製作工作室中定義的控件名稱
- 技術:擴展 Playwright 以實現基於瀏覽器的自動化
-
主要功能:
- 按邏輯名稱訪問畫布應用控制件
- 處理特定於畫布的控制項類型和事件
- 支援圖庫控制件導航和互動
命令範例:
pac test run `
--provider canvas `
--test-plan-file your-testplan.te.yaml `
--tenant your-tenantid-guid-value `
--environment-id your-environmentid-guid-value
模型驅動應用程式提供者
模型驅動應用程式提供者 (mda) 專門用於 Dataverse 模型驅動應用程式:
- 抽象級別:適用於模型驅動的應用程式元素,如窗體、視圖和業務流程
- 技術:擴展 Playwright 以實現基於瀏覽器的自動化
-
主要功能:
- 導航複雜的模型驅動應用介面
- 處理表單數據輸入和驗證
- 支援實體記錄作
命令範例:
pac test run `
--provider mda `
--test-plan-file your-testplan.te.yaml `
--tenant your-tenantid-guid-value `
--environment-id your-environmentid-guid-value `
--domain "https://contoso.crm.dynamics.com/main.aspx?appid=00001111-aaaa-2222-bbbb-3333cccc4444&pagetype=entityrecord&etn=account"
基於 API 的供應商
基於 API 的供應商直接與後端服務交互,而不必使用瀏覽器介面。
Power Fx 供應商
Power Fx Provider (powerfx) 允許直接執行 Power Fx 公式,對於集成測試很 Dataverse 有用:
- 身份驗證:使用 OAuth 通過 Azure CLI az login 命令獲取的令牌
- 技術:直接調用 Dataverse API 端點
-
主要功能:
- 對表執行 Dataverse CRUD 作
- 無需 UI 交互即可執行業務邏輯
- 實現有針對性的集成測試
命令範例:
pac test run `
--provider powerfx `
--test-plan-file your-testplan.te.yaml `
--tenant your-tenantid-guid-value `
--environment-id your-environmentid-guid-value `
--domain "https://contoso.crm.dynamics.com"
技術實現
以下部分介紹了測試引擎提供程式的底層架構、身份驗證流和 Dataverse 集成。 瞭解這些詳細資訊有助於您根據特定測試需求配置和擴展提供程式。
架構
Test Engine 的提供程序架構遵循分層方法:
- 核心引擎層:包含所有供應商之間的共用功能
- 提供者層:實現特定於應用程式的測試邏輯
- 身份驗證層:處理身份和安全上下文
- 擴展層:允許添加自定義功能
身份驗證流程
供應商根據其要求使用不同的身份驗證流:
- Web 提供程式 (畫布、模型驅動):使用基於瀏覽器的身份驗證和儲存狀態
- API Providers (Power Fx):使用 OAuth Azure CLI 中的令牌進行直接 API 訪問
Dataverse 整合
所有供應商都可以從集成中受益 Dataverse ,從而實現:
- 通過函數直接 Power Fx 訪問表格
- 數據播種和清理作
- 驗證後端狀態更改
要啟用 Dataverse 整合,請將以下內容添加到測試設置中:
testSettings:
extensionModules:
enable: true
parameters:
enableDataverseFunctions: true
選擇合適的供應商
根據您的應用程式類型和測試要求選擇提供者:
| 應用程式類型 | Provider | 最適合 |
|---|---|---|
| 畫布應用程式 | canvas |
UI 測試、控制件交互、屏幕導航 |
| 模型導向應用程式 | mda |
表單、視圖、業務流程、實體作 |
| 純粹的 Dataverse 集成 | powerfx |
後端邏輯、表作、外掛程式驗證 |