Споделяне чрез


Power Apps Тестови функции на двигателя Power Fx (предварителен преглед)

Бележка

Функциите за предварителен преглед не са предназначени за производствена употреба и може да са с ограничена функционалност. Тези функции са достъпни преди официалното издание, за да могат клиентите да получат ранен достъп и да дадат обратна връзка.

Тестовият двигател използва следните съществуващи функции на PowerFx:

Тези функции са достъпни за използване само в тестовата машина:

Тестовият двигател предоставя следните функции за предварителен преглед:

Функции на тестовия двигател

Тези функции са налични само за използване с тестов двигател

Екранна снимка

Screenshot(fileNameOfScreenshot)

Тази функция заснема екранна снимка на приложението в текущия момент. Файлът с екранна снимка се записва в тестовата изходна папка и с предоставеното име.

Бележка

Поддържат се само jpeg и png файлове.

Пример за екранна снимка

Screenshot("buttonClicked.png")

Изакване

Wait(Control, Property, Value)

Тази функция изчаква свойството на контролата да се изравни с зададената стойност.

Пример за изчакване

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

Функции за визуализация

Следните функции могат по избор да бъдат включени в тестове при Power Fx предварителен преглед чрез добавяне Preview към списъка allowPowerFxNamespaces в свойството extensionModules на testSettings.

Бележка

  • Функциите за визуализация подлежат на промяна. Тъй като тези функции станат готови за по-широко използване, се счита, че те се преместват в пространството на TestEngine имена.
  • Можете да използвате дефинирани от потребителя функции, за да обвиете Preview функциите, за да улесните миграцията към версии на функцията, които не са за предварителен преглед.
  • Можете да накарате модела да върне само JSON обект, който можете да анализирате с помощта на ParseJSON функцията.

Preview.AIExecutePrompt

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

Извикайте персонализирана AI Builder подкана и получете текстови резултати от изпълнението.

Бележка

Прегледайте раздела Dataverse за интегриране на AI за информация относно наличността и конфигурацията на тази функция.

Прегледайте с помощта на Preview.AIExecutePrompt за повече подробности и описания на използването на тази функция.

Пример за Preview.AIExecutePrompt

Следващият пример извиква подканата с изкуствен интелект, наречена Държава столица , със стойност на параметрите Държава и очаква изпълнението на модела да върне една дума Париж

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

Preview.ConsentDialog

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

Изчакайте да потвърдите диалогов прозорец за съгласие за приложение за платно или персонализирана страница на приложение, управлявано от модел

Пример за Preview.ConsentDialog

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

Преглед.Пауза

Preview.Pause()

Поставете теста на пауза и покажете инспектора на драматурга, ако изпълнявате интерактивен тест

Бележка

Известен проблем: Preview.Pause функцията не отваря правилно инспектора за pac test run
Описание: Функцията Preview.Pause не успява да отвори инспектора по време на a pac test run.
Заобиколно решение: Версията с отворен код на тестовия двигател може да се използва за функционалност за пауза.

Пример за преглед.пауза

Preview.Pause()

Преглед.SelectControl

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

Изберете контрола с помощта на обектен модел на документ

Пример за Preview.SelectControl

Изберете първо Button3 съвпадение

Preview.SelectControl(Button3,1);

Преглед.ДраматургДействие

Preview.PlaywrightAction(Text, Text)

Изпълнете действие на текущата страница с помощта на драматург CSS или XPath локатор

Предварителен преглед.Примери за действие на драматургията

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

Preview.PlaywrightActionValue

Preview.PlaywrightActionValue(Text, Text, Text)

Изпълнете действие на текущата страница с помощта на драматург CSS или XPath локатор със стойност

Примери за Preview.PlaywrightActionValue

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

Preview.PlaywrightScript

Preview.PlaywrightScript(Text)

Изпълнение на C# скрипта на текущата страница

Бележка

Тази функция е имплементирана само за компилацията за отстраняване на грешки от версия с отворен код на Test Engine, която не е в 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

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 и симулация на конектор с тестов двигател (предварителен преглед)