Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Notiz
Previewfunktionen sind nicht für den Produktionseinsatz gedacht und können eine eingeschränkte Funktionalität aufweisen. Diese Funktionen stehen vor dem offiziellen Release zur Verfügung, damit Kunden früher Zugriff darauf erhalten und Feedback geben können.
Die Test Engine verwendet die folgenden vorhandenen PowerFx-Funktionen:
Diese Funktionen stehen nur in der Test-Engine zur Verfügung:
Test Engine bietet die folgenden Vorschaufunktionen:
- Preview.AIExecutePrompt
- Preview.ConsentDialog
- Preview.Pause
- Preview.PlaywrightAction
- Preview.PlaywrightActionValue
- Preview.PlaywrightScript
- Preview.SelectControl
- Preview.SimulateConnector
- Preview.SimulateDataverse
Funktionen für Test Engine
Diese Funktionen stehen nur in der Test-Engine zur Verfügung
Screenshot
Screenshot(fileNameOfScreenshot)
Diese Funktion erfasst einen Screenshot der App zum aktuellen Zeitpunkt. Die Screenshot-Datei wird im Testausgabeordner und unter dem angegebenen Namen gespeichert.
Notiz
Es werden nur JPEG- und PNG-Dateien unterstützt.
Screenshot-Beispiel
Screenshot("buttonClicked.png")
Warten
Wait(Control, Property, Value)
Diese Funktion wartet darauf, dass die Eigenschaft des Steuerelements dem angegebenen Wert entspricht.
Warte-Beispiel
Wait(Label1, "Text", "0")
Vorschau-Funktionen
Die folgenden Funktionen können optional in Tests eingeschlossen werden, wenn der Power Fx Vorschau-Namespace verwendet wird, indem Preview der allowPowerFxNamespaces Liste in der extensionModules Eigenschaft der testSettings hinzugefügt wird.
Notiz
- Vorschaufunktionen können sich ändern. Wenn diese Funktionen für eine breitere Verwendung bereit sind, wird in Betracht gezogen, sie innerhalb des
TestEngineNamespace zu verschieben. - Sie können benutzerdefinierte Funktionen verwenden, um
PreviewFunktionen zu verpacken, um die Migration zu Nicht-Vorschauversionen der Funktion zu vereinfachen. - Sie könnten festlegen, dass das Modell nur ein JSON-Objekt zurückgibt, das Sie mit der
ParseJSONFunktion analysieren können.
Preview.AIExecutePrompt
Preview.AIExecutePrompt(Name, {Property: Type})
Rufen Sie eine benutzerdefinierte AI Builder Eingabeaufforderung auf, und rufen Sie die Textergebnisse der Ausführung ab.
Notiz
Im Abschnitt Dataverse KI-Integration finden Sie Informationen zur Verfügbarkeit und Konfiguration dieser Funktion.
Weitere Details und Beschreibungen zur Verwendung dieser Funktion finden Sie unter Verwenden von Preview.AIExecutePrompt.
Preview.AIExecutePrompt(Beispiel)
Im folgenden Beispiel wird die KI-Eingabeaufforderung mit dem Namen Country Capital mit dem Parameterwert Country aufgerufen, und es wird erwartet, dass die Modellausführung das einzelne Wort Paris zurückgibt.
Assert("Paris" = Preview.AIExecutePrompt("Country Capital", { Country: "France" }).Text)
Preview.ConsentDialog
Preview.ConsentDialog(Table({Text: Text}));
Warten auf die Bestätigung eines Zustimmungsdialogfelds für eine Canvas-App oder eine modellgesteuerte App auf einer benutzerdefinierten Seite
Preview.ConsentDialog-Beispiel
Preview.ConsentDialog(Table({Text: "Your Dialog Title"}));
Preview.Pause
Preview.Pause()
Pausieren Sie den Test und zeigen Sie den Playwright-Inspektor an, wenn Sie einen interaktiven Test ausführen
Notiz
Bekanntes Problem: Die Preview.Pause-Funktion öffnet den Inspektor für den PAC-Testlauf nicht ordnungsgemäß
Beschreibung: Die Preview.Pause Funktion kann den Inspektor während eines pac test run Vorgangs nicht öffnen.
Problemumgehung: Die Open-Source-Version der Test Engine kann für die Pausierungsfunktion verwendet werden.
Preview.Pause(Beispiel)
Preview.Pause()
Preview.SelectControl
Preview.SelectControl(Control: ControlName, Index: Number)
Wählen Sie ein Steuerelement mithilfe des Dokumentobjektmodells aus
Preview.SelectControl-Beispiel
Wählen Sie zuerst Button3 Übereinstimmung
Preview.SelectControl(Button3,1);
Preview.PlaywrightAction
Preview.PlaywrightAction(Text, Text)
Führen Sie eine Aktion auf der aktuellen Seite mithilfe eines Playwright CSS oder XPath Locators aus
Preview.PlaywrightAction Examples
Preview.PlaywrightAction("//button", "click");
Preview.PlaywrightAction("//button", "exists");
Preview.PlaywrightAction("//button", "wait");
Preview.PlaywrightActionValue
Preview.PlaywrightActionValue(Text, Text, Text)
Führen Sie eine Aktion auf der aktuellen Seite mithilfe eines Playwright CSS oder XPath Locators mit einem Wert aus
Preview.PlaywrightActionValue-Beispiele
Preview.PlaywrightAction("//input[@data-id='1']", "fill", "Hello");
Preview.PlaywrightScript
Preview.PlaywrightScript(Text)
Führt das C#-Skript auf der aktuellen Seite aus
Notiz
Diese Funktion ist nur für den Debug-Build aus der Open-Source-Version der Test Engine implementiert, die sich nicht im pac-Testlauf befindet.
Preview.PlaywrightScript-Beispiel
Preview.PlaywrightScript("sample.csx")
Mit einem Inhalt, der sample.csx diesem Code ähnlich ist:
// 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
Preview.SimulateConnector({name: Text, then: Record})
Wenn ein Anruf von Power Apps zu einem Konnektortyp erfolgt, der aus der Liste aller Konnektoren Power Apps gefunden wurde
Preview.SimulateConnector-Beispiel
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-Beispiel
Wenn ein Aufruf zum Abfragen der Dataverse Entität mit logischem Namen erfolgt sample_combotable werden in diesem Beispiel die Datensätze zurückgegeben, die die Tabellen-Funktion verwenden
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"
}
)
});
Ähnliche Artikel
Dataverse und Konnektor-Simulation mit Test Engine (Vorschauversion)