什么是 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接受controltypeText的参数,并使用 DOM 选择器等待指定的控件可见。 -
GetOptions采用controltypeControlName的参数,并返回从模型驱动应用(MDA)使用指定 Power Fx 控件的选项。
在测试用例中使用这些函数来执行特定作或检索数据。 例如,可用于 WaitUntilVisible 确保控件在与控件交互之前可见,并 GetOptions 检索和验证可用于控件的选项。