备注
预览功能不适合生产使用且功能可能受限。 这些功能在正式发布之前已经可用,以便客户可以抢先体验并提供反馈。
测试引擎使用以下现有的 PowerFx 函数:
这些函数只能在测试引擎中使用:
测试引擎提供以下 预览功能:
- Preview.AIExecutePrompt
- 预览.同意对话框
- 预览.暂停
- 预览.Playwright 作
- 预览.剧作家动作值
- 预览.剧作家脚本
- Preview.SelectControl
- 预览.模拟连接器
- Preview.SimulateDataverse
测试引擎功能
这些函数仅可用于测试引擎
屏幕截图
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 提示 并获取执行的文本结果。
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"
}
)
});