共用方式為


Power Apps 測試引擎 Power Fx (預覽版)

注意

預覽功能不供生產時使用,而且可能功能受限。 這些功能是在正式發行前先行推出,讓客戶能夠搶先體驗並提供意見反應。

你可以利用 Learning Playground 動手並試用本指南中記錄的功能。

什麼 Power Fx?

Microsoft Power Fx 是一種基於類似電子錶格的公式的低代碼通用程式設計語言。 它是一種類型化、聲明性、函數式語言,可根據需要提供命令式邏輯和狀態管理。 它來自 Excel 的歷史使其可供廣泛的使用者使用,從初學者到經驗豐富的開發人員。

高級 Power Fx 方案

如果您已經熟悉 Power Fx,深入研究高級場景可以顯著增強應用程式的功能和效率。 以下是一些高級方案以及它們可能感興趣的原因:

  • 創建自定義函數:創建自定義函數允許開發人員將複雜的邏輯封裝到可重用的元件中。 這種方法不僅簡化了開發過程,還確保了一致性並減少了出錯的可能性。 自定義功能可以根據特定的業務需求進行定製,使您的測試更加強大和靈活。

  • 與外部數據源集成:與外部數據源集成使您的 Power Fx 測試能夠與從資料庫到 Web 服務的各種資料進行交互。 這種集成可以通過提供即時數據訪問和更新來增強應用程式的功能。 它還允許進行更動態和回應更迅速的測試,以適應不斷變化的數據。

  • 優化大規模測試的性能:隨著測試的複雜性和規模的增加,性能優化變得很重要。 這些優化可能包括性能,例如高效的數據處理和使用 Power Fx內置函數以獲得更好的性能。 這些優化可確保您的測試保持回應和高效,即使使用大型數據集和複雜的邏輯也是如此。

可擴展性模型

Test Engines Power Fx 的 可擴充性模型 是其眾多引人注目的功能之一。 您可以通過自定義函數和作來擴展語言,使其高度適應各種場景。 下面是可擴充性模型的一些關鍵方面:

  • 重用已有的技能: Power Fx的可擴充性模型允許你使用其他程式設計語言 (如 C#) 的 Power Fx 現有技能。 使用這種方法意味著您可以將您的知識和經驗帶入 Power Fx 基於測試中,從而更輕鬆地創建強大的定製解決方案。

  • 允許重複使用現有庫和功能:擴展性模型支援將現有庫和功能集成到。 Power Fx 重用允許開發人員重用久經考驗的代碼,並縮短開發時間以提高可靠性。 通過合併現有庫,您可以增強應用程式的功能 Power Fx ,而無需重新發明輪子。

  • 為函數使用者提供封裝複雜性的模型:可擴充性模型的顯著優勢之一是它能夠封裝複雜性。 製作者和開發人員可以創建自定義函數來隱藏底層邏輯的複雜細節,為最終使用者提供簡單且使用者友好的介面。 抽象使每個人都可以更輕鬆地使用高級功能並從中受益,而無需瞭解其背後的複雜性。

  • 增強協作和一致性:團隊可以創建一組一致的自定義功能和作,這些功能和作可以在不同項目之間共用和重複使用。 使用通用 testSettings.yaml 檔可以促進協作並確保遵循最佳實踐,從而產生更強大和可維護的應用程式。

  • 促進與外部系統的集成:可擴充性模型允許與外部系統和服務無縫集成。 這意味著您可以將 Power Fx 應用程式連接到各種數據源和 API,從而增強其功能並提供即時資料訪問。

  • 支援高級方案:擴展性模型旨在支援高級方案,例如創建特定於域的語言和自定義工作流。 這種靈活性確保 Power Fx 可以進行調整以滿足不同行業和用例的獨特需求。

作為開發人員或高級製作者,瞭解和使用可擴充性模型,開發人員可以使用以下方式創建更強大、更靈活和使用者友好的應用程式 Power Fx。 該模型不僅增強了語言的功能,還使其更容易被更廣泛的用戶訪問和有價值。

使用者定義類型

測試引擎中的 Power Apps 使用者定義類型 (UTT) 允許您定義可在測試計劃中使用的自訂數據結構。 此功能使您能夠創建適合特定測試需求的複雜數據類型,從而增強測試用例的靈活性和可重用性。

UDT 範例

此範例演示如何在檔案中 testSettings.yaml 定義和使用 UDT:

powerFxTestTypes:
 - name: ControlName
   value: |
      {ControlName: Text} 
 - name: Options
   value: |
      [{Name: Text, Value: Number}]   

UDT 示例說明

powerFxTestTypes 部分定義了兩種新類型: ControlName and Options

  • ControlName 是一個簡單類型,具有 type 的單個屬性 ControlNameText
  • Options 是一種更複雜的類型,表示物件清單,每個物件都有 Name (類型 Text)和 Value (類型 Number)。

您可以在測試案例中使用這些類型來定義變數並驗證其屬性。 例如,您可以設置類型 Options 變數,並驗證它是否包含預期 Name 的和 Value 對。

用戶定義函數

測試引擎中的 Power Apps 使用者定義函數 (UDF) 允許您定義可在測試計劃中使用的自定義函數。 此功能使您能夠創建適合特定測試需求的複雜函數,從而增強測試用例的靈活性和可重用性。

UDF 的好處

  • 可重用性:UDF 允許您定義一次複雜函數,並在多個測試用例中重用它們。 這減少了冗餘並確保測試計劃的一致性。
  • 可讀性:使用 UDF 使您的測試計劃更具可讀性和更易於維護。 通過定義自定義函數,您可以封裝複雜的邏輯並使您的測試用例更易於理解。
  • 靈活性:UDF 提供了創建適合您特定測試要求的自定義函數的靈活性。 使用此方法可以定製測試用例,以更好地滿足應用程式的需求。
  • 可維護性:使用 UDF,可以在一個地方對函數進行更改,從而減少更新多個測試用例所需的工作量。 這提高了測試計劃的可維護性。

UDF 範例

此範例演示如何在檔案中 testSettings.yaml 定義和使用 UDF:

testFunctions:
 - description: Wait until control is visible using Document Object Model (DOM) selector
   code: |
    WaitUntilVisible(control: Text): Void = 
      Preview.PlaywrightAction(Concatenate("//div[@data-id='", control, "']"), "wait");
 - description: Get the options for a control using Power Fx control from Model Driven App (MDA)
   code: |
    GetOptions(control: ControlName): Options =
      Preview.GetOptions(control);

UDF 示例說明

testFunctions 部分定義了兩個新函數:

  • WaitUntilVisible 接受 control type Text 的參數,並使用 DOM 選擇器等待指定的控件可見。
  • GetOptions 採用 control type ControlName 的參數,並返回從模型驅動應用 (MDA) 使用指定 Power Fx 控件的選項。

在測試用例中使用這些函數來執行特定作或檢索數據。 例如,可用於 WaitUntilVisible 確保控制件在與控制項交互之前可見,並 GetOptions 檢索和驗證可用於控件的選項。