注意
預覽功能不供生產時使用,而且可能功能受限。 這些功能是在正式發行前先行推出,讓客戶能夠搶先體驗並提供意見反應。
為 Power Platform 應用程式創建全面的測試計劃可能非常耗時,尤其是對於複雜的場景。 人工智慧輔助創作工具等 GitHub Copilot 可以通過生成測試範本、建議測試用例和自動創建樣板代碼來顯著加速這一過程。
本指南介紹如何與原始程式碼管理解決方案一起使用 GitHub Copilot Power Platform ,以有效地創建測試引擎測試計劃。
必要條件
在開始之前,請確保您擁有:
- Visual Studio 已安裝代碼
- GitHub Copilot 訂閱
- GitHub Copilot VS Code 的聊天擴展
- Power Platform 已安裝 CLI
- 源頭控制 Power Platform 的解決方案
設置測試創作環境
為了最大限度地提高 AI 輔助測試創作的有效性,請將這些工具組合到結構化工作流程中:
- 獲取源檔
- 從原始程式碼管理克 Power Platform 隆 環境或解決方案
- 使用 pac solution export Power Platform 和 pac solution unpack 從 文件中 匯出和解壓解決方案
- 初始化 git 儲存庫以進行版本控制 (如果尚未完成)
- 在解決方案存儲庫中創建專用測試資料夾
- 在 Code 中 Visual Studio 開啟解決方案資料夾
用於 GitHub Copilot 創建測試
GitHub Copilot 可以幫助您根據原始程式碼控制的解決方案生成各種測試元件。 以下是如何有效使用其功能:
使用範例文件作為上下文
測試引擎示例目錄 提供了豐富的參考資料 GitHub Copilot來源。 您可以透過以下方式説明 Copilot 產生更高品質的測試:
- 在工作區中包含 samples.md 檔
- 在提示中引用特定範例
- 提供指向示例 GitHub 儲存庫的連結
例如,您可以:
- 在 VS Code 中開啟應用程式代碼和 samples.md 檔案
- 要求 Copilot 創建「類似於 ButtonClicker 範例」或「使用範例中的 Dataverse 模式」的測試
- 從符合您測試需求的樣品中參考特定功能
此方法有助於 Copilot 瞭解 Power Platform 測試引擎模式並生成更準確的測試。
在代理模式下使用 GitHub Copilot
Visual Studio Code's GitHub Copilot Chat 提供了一種 代理模式 ,可以幫助根據您的解決方案檔生成測試。 此模式允許 Copilot 更深入地訪問和瞭解您的專案上下文。
要使用代理模式產生測試:
- 在 VS Code 中,打開 GitHub Copilot “聊天”(Ctrl+Shift+I)
- 從 Copilot 模式選擇器中選擇 代理
- 製作有關您要創建的測試的詳細提示
測試生成的示例提示
嘗試使用這樣的提示來產生測試:
目標:
使用以 ButtonClicker 示例為 Power Apps 模型的測試引擎為 畫布應用生成全面的測試套件。
提示:
使用 at 示例 https://github.com/microsoft/PowerApps-TestEngine/tree/main/samples/buttonclicker 作為引用,為 ./SolutionPackage/src/CanvasApps/src/MyApp/Src/App.fx.yaml 生成測試。 創建預期案例、邊緣案例和異常案例。 測試應根據範例創建一個測試 YAML 檔和 Power Fx 測試步驟、config.json 和 RunTest.ps1,以便我能夠運行測試。
目標:
為模型驅動應用制定詳細的測試計劃,以確保核心功能和業務邏輯按預期工作。
提示:
為位於 ./SolutionPackage/src/Other/Solution.xml 的模型驅動應用創建全面的測試計劃。 測試應驗證表單載入、記錄創建和業務規則執行。 生成測試 YAML、 Power Fx 步驟和 PowerShell 腳本以運行測試。
目標:
為實體構建 Dataverse 測試計劃,通過作驗證 Power Fx CRUD 作。
提示:
為我的 Dataverse 實體制定全面的測試計劃。 測試應執行創建、更新、刪除 Power Fx 作。 生成測試 YAML、 Power Fx 步驟和 PowerShell 腳本以運行測試。
瞭解生成的測試元件
生成測試時 GitHub Copilot ,通常會創建以下元件:
- YAML 測試計劃:定義測試結構、應用 URL 和測試步驟
- Power Fx test steps:包含使用表達式的 Power Fx 測試邏輯
- config.json:測試執行參數的配置
- RunTest.ps1:用於執行測試的 PowerShell 腳本
範例:生成的測試結構
MyAppTests/
├── MyAppTest.fx.yaml # Power Fx test steps
├── MyAppTest.yml # Test plan definition
├── config.json # Test configuration
└── RunTest.ps1 # Test execution script
AI 輔助測試創作的最佳實踐
請考慮以下部分,以充分利用 GitHub Copilot 測試引擎測試創建。
在提示中提供清晰的上下文
具體說明要測試的內容,並包含對以下內容的引用:
- 要測試的確切檔
- 用作範本的範例測試
- 要涵蓋的特定測試方案
- 任何身份驗證或環境要求
使用測試引擎範例獲取上下文
# samples.md 文檔對測試引擎存儲庫中的所有可用示例進行了分類,這在製作提示 GitHub Copilot時可以作為很好的參考。 例如,在測試帶有按鈕的畫布應用時,可以參考 按鈕點擊器範例:
提示:
使用 ButtonClicker 示例 https://github.com/microsoft/PowerApps-TestEngine/tree/main/samples/buttonclicker,在 ./SolutionPackage/src/CanvasApps/src/MyApp/Src/App.fx.yaml 中為我的 Canvas 應用生成測試。 測試應該:
1. 驗證我的計數器按鈕是否在螢幕上遞增一個值
2. 測試邊界條件 (例如,最大值)
3. 包括 OnTestCaseStart 和 OnTestCaseComplete 生命週期鉤子
4. 使用適當的環境變數生成 config.json
這種方法有助於 Copilot 瞭解測試結構,並根據經過驗證的示例生成更準確、與上下文相關的測試。
使用原始程式碼控制的解決方案作為上下文
當 Copilot 能夠分析您的解決方案結構時,它的性能最佳。 使用解決方案 的 Power Platform 原始程式碼管理來 提供此上下文。 此上下文允許 Copilot:
- 瞭解應用的結構
- 標識控制項名稱和屬性
- 生成更準確的測試步驟
- 引用正確的文件路徑
查看和優化生成的測試
雖然人工智慧生成的測試提供了一個很好的起點,但始終:
- 驗證控件引用是否與應用程式匹配
- 為關鍵業務功能添加斷言
- 確保正確處理邊緣情況
- 驗證身份驗證配置
與手動專業知識相結合
對於複雜的測試方案,用於 GitHub Copilot :
- 生成測試框架和結構
- 創建標準驗證模式
- 建議要考慮的邊緣情況
然後,利用您的領域專業知識進行以下方面的增強:
- 特定於業務的驗證規則
- 環境考慮
- 專業測試數據
常見的測試生成模式
本節包含一些常見的測試生成模式:
測試畫布應用
對於畫布應用,請使用引用 App.fx.yaml 原始程式碼控制解決方案中檔的提示:
提示:
在 ./SolutionPackage/src/CanvasApps/src/MyExpenseApp/Src/App.fx.yaml 中為我的 Canvas 應用生成測試,以驗證費用提交過程。 測試應填充費用欄位,提交表單,並驗證是否顯示確認消息。
測試模型驅動應用
對於模型驅動應用,請重點關注實體導航、表單交互和業務規則:
提示:
為我的模型驅動應用創建一個測試,以測試客戶實體窗體。 測試應創建新的帳戶記錄,驗證必填欄位,並驗證信用額度計算的業務規則是否正常工作。
測試 Dataverse 擴展
對於 Dataverse 測試,強調數據作和業務邏輯驗證:
提示:
生成一個 Dataverse 測試來驗證我的解決方案中的自定義外掛程式。 測試應創建測試記錄,觸發外掛程式執行,並驗證是否發生了預期的數據轉換。
特定於樣本的測試提示
若要獲得最準確的測試生成,請參考測試引擎樣本目錄 中 符合測試需求的特定樣本。 以下是針對常見測試場景的定製提示:
ButtonClicker 示例提示
ButtonClicker 示例 演示了基本的計數器功能測試。 使用以下提示:
提示:
為我的計數器應用生成一個測試,其結構與 ButtonClicker 示例類似。 我的應用具有名為“IncrementBtn”和“ResetBtn”的按鈕,其中包含顯示當前計數的“CounterLabel”。 創建一個測試,以驗證兩個按鈕是否正常工作,並且最大計數為 10。
提示:
使用 ButtonClicker 示例作為參考,為我的按鈕交互應用創建測試。 我的應用有一個「SubmitButton」,只有在完成「NameInput」和「EmailInput」字段時才應啟用該按鈕。 生成一個測試計劃,其中包含 Power Fx 驗證此行為的步驟。
庫測試提示
BasicGallery 和 NestedGallery 示例演示如何測試庫交互:
提示:
為我的庫應用生成一個測試,其中我有一個「產品」庫,其中包含包含「TitleLabel」、“PriceLabel”和“SelectButton”控件的產品項。 使用 BasicGallery 示例結構來驗證我是否可以選擇項,以及正確的詳細資訊是否顯示在“DetailPanel”中。
數據作提示
該 Dataverse 範例 演示了資料作測試:
提示:
使用範例模式為 Dataverse 我的 CRM 應用創建測試。 測試我是否可以創建新的聯繫人記錄,對其進行更新,然後驗證更改是否持久。 包括 UI 測試和直接 Dataverse 作。
AI 測試提示
要測試 AI 支援的功能,請參閱 AI 提示範例:
提示:
根據 AI 提示示例為我的情緒分析應用生成測試。 我的應用程式有一個“FeedbackInput”文字框,用於 AI Builder 將其分類為正面、負面或中性。 創建一個測試,以驗證不同的輸入在可接受的閾值內產生預期輸出。
先進技術
本節提供高級提示功能的示例。
創建多環境測試套件
可以提示 Copilot 產生跨多個環境工作的測試:
提示:
為我的應用程式生成一個測試套件,該套件可以在 DEV、TEST 和 PROD 環境中運行,併為每個環境提供適當的配置變數。
生成數據模擬場景
對於使用連接器模擬 的隔離測試:
提示:
為使用 Outlook 連接器的 Office 365 應用建立具有模擬連接器響應的測試。 測試應類比接收電子郵件並驗證應用的處理邏輯。
測試 AI 功能並處理非確定性結果
當您使用 AI 驅動的應用程式時,測試會帶來獨特的挑戰,因為即使輸入相同,AI 輸出也可能在運行之間略有不同。 這種非確定性行為需要特殊的測試方法。
瞭解非確定性測試
非確定性測試涉及驗證可能在測試運行中合法變化的輸出:
- AI 模型輸出:來自 GPT 或自定義 AI Builder 元件等 AI 模型的回應
- 置信度分數:可能在可接受範圍內波動的數值評估
- 生成的內容:人工智慧系統生成的文本或推薦
使用 Preview.AIExecutePrompt 對 AI 功能進行確定性測試
測試引擎提供 Preview.AIExecutePrompt ,支援對 AI 回應進行確定性驗證。 此方法允許您:
- 在測試場景中執行 AI 提示
- 解析和驗證結構化回應
- 驗證關鍵輸出是否符合預期,儘管存在潛在變化
範例:使用 AI Builder
以下範例演示了如何使用該 Preview.AIExecutePrompt 函數來測試 AI 驅動的評級系統:
EvaluateTestQuestionPrompt(Prompt: TestQuestion): TestResult =
With({
Response: ParseJSON(
Preview.AIExecutePrompt("PromptEvaluator",
{
Context: "You are a helpful agent asking about external customer service questions.",
Question: Prompt.Question
}).Text)
},If(
IsError(AssertNotError(Prompt.ExpectedRating=Response.Rating, Prompt.Question & ", Expected " & Prompt.ExpectedRating & ", Actual " & Response.Rating)),
{PassFail: 1, Summary: Prompt.Question & ", Expected " & Prompt.ExpectedRating & ", Actual " & Response.Rating}, {PassFail: 0, Summary: "Pass " & Prompt.Question}
))
在此範例中:
- 該測試針對“PromptEvaluator”模型執行 AI 提示
- 它傳遞了一個上下文和一個問題以供評估
- 它驗證返回的評級是否與預期值匹配
- 它提供有關測試成功或失敗的清晰反饋
您可以在 TestEngine 儲存庫中的 AI 提示示例 PowerApps中 探索完整的實現。
結合人工智慧感知測試
用於 GitHub Copilot 為 AI 驅動的應用程式產生測試時:
提示:
為使用表單處理的 AI Builder AI 驅動的應用生成測試。 包括測試步驟,以對非確定性輸出的適當容差來驗證 AI 結果。
故障排除和優化
如果 GitHub Copilot 生成不符合需求的測試:
- 優化提示:更具體地說明要測試的內容
- 提供範例:連結到符合您所需風格的特定測試樣品
- 分解複雜的測試:請求生成更小、更集中的測試元件
- 反覆運算:使用 Copilot 的響應來優化下一個提示
相關文章
探索測試引擎功能
瀏覽測試引擎範例目錄
了解 Power Fx 測試函數
瞭解 YAML 測試格式
探索身份驗證選項
培訓:使用代理模式構建 GitHub Copilot 應用程式