Power Apps 测试引擎 Power Fx 函数(预览版)

备注

预览功能不适合生产使用且功能可能受限。 这些功能在正式发布之前已经可用,以便客户可以抢先体验并提供反馈。

测试引擎使用以下现有的 PowerFx 函数:

这些函数只能在测试引擎中使用:

测试引擎提供以下 预览功能

测试引擎功能

这些函数仅可用于测试引擎

屏幕截图

Screenshot(fileNameOfScreenshot)

此功能捕获当前时间点应用的屏幕截图。 屏幕截图文件将保存到测试输出文件夹中,并提供名称。

备注

仅支持 jpeg 和 png 文件。

截图示例

Screenshot("buttonClicked.png")

Wait

Wait(Control, Property, Value)

此函数等待控件的属性等于指定的值。

等待示例

Wait(Label1, "Text", "0")

预览功能

当 Preview 命名空间时 Power Fx ,可以通过添加到 PreviewallowPowerFxNamespaces testSettings extensionModules 属性中的列表中,可以选择将以下函数包含在测试中。

备注

  • 预览功能可能会发生变化。 当这些函数准备好更广泛地使用时,它们被视为在命名空间内 TestEngine 移动。
  • 您可以使用用户定义函数来包装 Preview 函数,以便更轻松地迁移到函数的非预览版本。
  • 可以让模型仅返回一个可以使用该函数进行 ParseJSON 解析的 JSON 对象。

Preview.AIExecutePrompt

Preview.AIExecutePrompt(Name, {Property: Type})

调用 自定义 AI Builder 提示 并获取执行的文本结果。

备注

查看 AI 集成 Dataverse 部分, 了解有关此功能的可用性和配置的信息。

查看 使用 Preview.AIExecutePrompt 了解有关使用此函数的更多详细信息和说明。

Preview.AIExecutePrompt 示例

以下示例调用名为 Country Capital 的 AI 提示,参数值为 Country ,并期望模型执行返回单个单词 Paris

Assert("Paris" = Preview.AIExecutePrompt("Country Capital", { Country: "France" }).Text)

预览.同意对话框

Preview.ConsentDialog(Table({Text: Text}));

等待确认画布应用程序或模型驱动应用程序自定义页面的同意对话框

Preview.ConsentDialog 示例

Preview.ConsentDialog(Table({Text: "Your Dialog Title"}));

预览.暂停

Preview.Pause()

暂停测试并显示 Playwright Inspector (如果正在运行交互式测试)

备注

已知问题Preview.Pause 函数无法正确打开 pac 测试运行的检查器
说明: 函数在 Preview.Pause a pac test run.
解决方法: 测试引擎的开源版本可用于暂停功能。

Preview.Pause 示例

Preview.Pause()

Preview.SelectControl

Preview.SelectControl(Control: ControlName, Index: Number)

使用文档对象模型选择控件

Preview.SelectControl 示例

选择第一个 Button3 匹配项

Preview.SelectControl(Button3,1);

预览.Playwright 作

Preview.PlaywrightAction(Text, Text)

使用剧作家 CSS 或 XPath 定位器在当前页面上执行作

Preview.PlaywrightAction 示例

Preview.PlaywrightAction("//button", "click");
Preview.PlaywrightAction("//button", "exists");
Preview.PlaywrightAction("//button", "wait");

预览.剧作家动作值

Preview.PlaywrightActionValue(Text, Text, Text)

使用具有 CSS XPath

Preview.PlaywrightActionValue 示例

Preview.PlaywrightAction("//input[@data-id='1']", "fill", "Hello");

预览.剧作家脚本

Preview.PlaywrightScript(Text)

在当前页面上执行 C# 脚本

备注

此功能仅针对测试引擎的开源版本的调试构建实现,而不是在 pac 测试运行 实现。

Preview.PlaywrightScript 示例

Preview.PlaywrightScript("sample.csx")

内容类似于 sample.csx 以下代码:

// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.

#r "Microsoft.Playwright.dll"
#r "Microsoft.Extensions.Logging.dll"
using Microsoft.Playwright;
using Microsoft.Extensions.Logging;
using System.Linq;
using System.Threading.Tasks;

public class PlaywrightScript {
    public static void Run(IBrowserContext context, ILogger logger) {
        Execute(context, logger).Wait();
    }

    public static async Task Execute(IBrowserContext context, ILogger logger) {
        var page = context.Pages.First();

        if ( page.Url == "about:blank" ) {
            var nextPage = context.Pages.Skip(1).First();
            await page.CloseAsync();
            page = nextPage;
        }

        foreach ( var frame in page.Frames ) {
            if ( await frame.Locator("button:has-text('Button')").CountAsync() > 0 ) {
                await frame.ClickAsync("button:has-text('Button')");
            }
        }
    }
}

预览.模拟连接器

Preview.SimulateConnector({name: Text, then: Record})

当从所有 Power Apps 连接器列表中 找到 Power Apps 的连接器类型发出呼叫时

Preview.SimulateConnector 示例

Preview.SimulateConnector({
   name: "msnweather", 
   then: {responses: { 
      daily: { 
         day: { 
            summary: "You are seeing the mock response" }
            }
         }
      }
   })

Preview.SimulateDataverse

Preview.SimulateDataverse({Action: Text, Entity: Text, Then: Table})

Preview.SimulateDataverse 示例

此示例,当调用 Dataverse 查询具有逻辑名称 sample_combotable 的实体时,它使用 Table 函数返回 记录

Preview.SimulateDataverse({
    Action: "Query",
    Entity: "sample_combotable",
    Then: Table(
    {
        'sample_name': "Item 1",
        'sample_id': 3,
        'sample_combotableid': "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
        'createdon': "2024-12-02T17:52:45Z"
    },
    {
        'sample_name': "RR2",
        'sample_id': 4,
        'sample_combotableid': "bbbbbbbb-1111-2222-3333-cccccccccccc",
        'createdon': "2024-12-02T17:54:45Z"
    },
        {
        'sample_name': "RR3",
        'sample_id': 5,
        'sample_combotableid': "cccccccc-2222-3333-4444-dddddddddddd",
        'createdon': "2024-12-02T17:54:45Z"
    }
    )
});

Dataverse 和使用测试引擎进行连接器模拟(预览版)