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 检索和验证可用于控件的选项。