Compartir a través de


Power Apps Test Engine Power Fx Functions (versión preliminar)

Nota

Las características en vista previa no se han diseñado para un uso de producción y pueden tener una funcionalidad restringida. Estas características están disponibles antes del lanzamiento oficial para que los clientes puedan tener un acceso anticipado y proporcionar comentarios.

Test Engine utiliza estas funciones PowerFx existentes:

  • Assert
  • Seleccionar función
  • Función SetProperty

Estas funciones están disponibles para usarlas únicamente en Test Engine:

  • Captura de pantalla
  • Espera

Test Engine proporciona estas funciones de versión preliminar:

  • Preview.AIExecutePrompt
  • Preview.ConsentDialog
  • Preview.Pause
  • Preview.PlaywrightAction
  • Preview.PlaywrightActionValue
  • Preview.PlaywrightScript
  • Preview.SelectControl
  • Preview.SimulateConnector
  • Preview.SimulateDataverse

Funciones de Test Engine

Estas funciones solo están disponibles para usarlas con Test Engine

Captura de pantalla

Screenshot(fileNameOfScreenshot)

Esta función captura una captura de pantalla de la aplicación en el momento actual. El archivo de captura de pantalla se guarda en la carpeta de resultados de la prueba y con el nombre proporcionado.

Nota

Solo se admiten archivos jpeg y png.

Ejemplo de captura de pantalla

Screenshot("buttonClicked.png")

Esperar

Wait(Control, Property, Value)

Esta función espera a que la propiedad del control sea igual al valor especificado.

Ejemplo de tiempo de espera

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

Funciones de versión preliminar

Las siguientes funciones se pueden incluir opcionalmente en las pruebas cuando se agrega el espacio de nombres de versión preliminar de Power Fx agregando a la lista extensionModules en la propiedad extensionModules de testSettings.

Nota

  • Las funciones de versión preliminar están sujetas a cambios. A medida que estas funciones están listas para un uso más amplio, se considera moverlas dentro del espacio de nombres .
  • Puede utilizar funciones definidas por el usuario para encapsular funciones y facilitar la migración a versiones que no sean de versión preliminar de la función.
  • Podría hacer que el modelo solo devuelva un objeto JSON que pueda analizar mediante la función .

Preview.AIExecutePrompt

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

Llame a un Custom AI Builder prompt y obtenga los resultados de texto de la ejecución.

Nota

Revise la sección Integración de IA de Dataverse para obtener información sobre la disponibilidad y configuración de esta función.

Revise Usar Preview.AIExecutePrompt para obtener más detalles y descripciones sobre el uso de esta función.

Ejemplo de Preview.AIExecutePrompt

El siguiente ejemplo llama al indicador de IA llamado Capital del país con un valor de parámetros de País y espera que la ejecución del modelo devuelva una sola palabra París

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

Preview.ConsentDialog

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

Esperar para confirmar un cuadro de diálogo de consentimiento para una aplicación de lienzo o una página personalizada de una aplicación basada en modelos

Ejemplo de Preview.ConsentDialog

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

Preview.Pause

Preview.Pause()

Pause la prueba y muestre el Inspector de Playwright si se está ejecutando una prueba interactiva

Nota

Problema conocido:: La función Vista previa.Pausa no abre correctamente el inspector para la ejecución de pruebas de pac
Descripción: la función no puede abrir el inspector durante una .
Workaround: La versión código abierto del motor de pruebas se puede usar para la funcionalidad de pausa.

Ejemplo de Preview.Pause

Preview.Pause()

Preview.SelectControl

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

Seleccionar un control utilizando el modelo de objetos de documento

Ejemplo de Preview.SelectControl

Seleccione la primera coincidencia de

Preview.SelectControl(Button3,1);

Preview.PlaywrightAction

Preview.PlaywrightAction(Text, Text)

Ejecutar una acción en la página actual usando un localizador CSS o XPath de Playwright

Ejemplos de Preview.PlaywrightAction

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

Preview.PlaywrightActionValue

Preview.PlaywrightActionValue(Text, Text, Text)

Ejecutar una acción en la página actual usando un localizador CSS o XPath con un valor

Ejemplos de Preview.PlaywrightActionValue

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

Preview.PlaywrightScript

Preview.PlaywrightScript(Text)

Ejecutar el script de C# en la página actual

Nota

Esta función está implementada solo para la versión de depuración de la versión de código abierto del Test Engine, no en pac test run.

Ejemplo de Preview.PlaywrightScript

Preview.PlaywrightScript("sample.csx")

Con un contenido de similar a este código:

// 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})

Cuando se realiza una llamada desde Power Apps a un tipo de conector que se encuentra en Lista de todos los conectores de Power Apps

Ejemplo de 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})

Ejemplo de Preview.SimulateDataverse

En este ejemplo, cuando se realiza una llamada para consultar la entidad de Dataverse con nombre lógico, devuelve los registros utilizando la función Tabla

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 y simulación de conectores con Test Engine (versión preliminar)