Compartir a través de


Formato YAML del motor de pruebas de Power Apps (versión preliminar)

Nota:

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

Las pruebas se definen en YAML siguiendo las mismas directrices que Power Fx. Obtenga más información sobre la gramática de fórmulas YAML de Power Fx.

Vea la carpeta PowerApps-TestEngine/samples para obtener ejemplos detallados.

Definiciones de esquema DE YAML

Propiedad Description
testSuite Define un conjunto de pruebas, los casos de prueba del conjunto de pruebas y la configuración específicos del conjunto de pruebas.
testSettings Define la configuración del conjunto de pruebas que se reutiliza en varios casos de prueba.
environmentVariables Define variables que podrían cambiar a medida que la aplicación se porte en distintos entornos.

testSuite

Se usa para definir una prueba.

Propiedad Tipo Description
persona cuerda / cadena Obligatorio. El usuario que ha iniciado sesión para realizar la prueba. Debe coincidir con un rol que aparezca en la sección Usuarios .
testCases TestCases Obligatorio. Define los casos de prueba en el conjunto de pruebas. Los casos de prueba incluidos en los conjuntos de pruebas se ejecutan secuencialmente. El estado de la aplicación se conserva en todos los casos de prueba de un conjunto de aplicaciones.
testSuiteName cuerda / cadena Obligatorio. Nombre del conjunto de pruebas.
appLogicalName cuerda / cadena Optional. Nombre lógico de la aplicación que se va a iniciar. Se puede obtener de la solución. Para las aplicaciones de lienzo, debe agregarla a una solución para obtenerla. Consulte Identificación de la aplicación en el plan de prueba
appId GUID Optional. Identificador de la aplicación que se va a iniciar. Obligatorio y usado solo cuando appLogicalName no está presente. El identificador de aplicación solo se debe usar para las aplicaciones de lienzo que no están en la solución. Consulte Identificación de la aplicación en el plan de prueba
networkRequestMocks NetworkRequestMocks Optional. Define los simulacros de solicitud de red necesarios para la prueba.
onTestCaseComplete cuerda / cadena Optional. Define los pasos que deben desencadenarse para cada caso de prueba de un conjunto después de que el caso termine de ejecutarse.
onTestCaseStart cuerda / cadena Optional. Define los pasos que deben desencadenarse para cada caso de prueba de un conjunto antes de que el caso comience a ejecutarse.
onTestSuiteComplete cuerda / cadena Optional. Define los pasos que deben desencadenarse después de que el conjunto termine de ejecutarse.
testSuiteDescription cuerda / cadena Optional. Información adicional describe lo que hace el conjunto de pruebas.

Identificación de la aplicación en el plan de prueba

Debe establecer o appLogicalNameappId para identificar la aplicación. El uso depende de si la aplicación se define dentro de una solución.

Al definir las aplicaciones dentro de las soluciones, las pruebas permanecen portátiles entre entornos. Establezca la appLogicalName propiedad para indicar que la aplicación está basada en la solución.

Para buscar el nombre lógico de la aplicación:

  1. Abra la solución que contiene la aplicación en Power Apps.
  2. Use el nombre (no nombre para mostrar) de la lista. El valor de nombre incluye el prefijo de personalización para el publicador de soluciones.

Aplicaciones independientes

Cuando la aplicación no está definida dentro de una solución, debe usar la appId propiedad .

Para buscar el identificador de la aplicación:

  1. Buscar la aplicación en la lista de Power Apps
  2. Abra Detalles y anote el GUID del identificador de aplicación.

NetworkRequestMocks

Propiedad Tipo Description
requestURL cuerda / cadena Obligatorio. Dirección URL de solicitud que obtiene una respuesta ficticia. Se aceptan patrones Glob
responseDataFile cuerda / cadena Obligatorio. Un archivo de texto con el contenido de respuesta ficticio. Todo el texto de este archivo se lee como respuesta.
headers array Optional. Lista de campos de encabezado en la solicitud con el formato de [fieldName: fieldValue]
method cuerda / cadena Optional. Método de la solicitud (GET, POST, etc.)
requestBodyFile cuerda / cadena Optional. Un archivo de texto con el cuerpo de la solicitud. Todo el texto de este archivo se lee como el cuerpo de la solicitud.

En el caso de las propiedades opcionales, si no se especifica ningún valor, el enrutamiento se aplica a todos. Por ejemplo, si method es NULL, se devuelve la respuesta ficticia, sea cual sea el método, siempre que todas las demás propiedades coincidan.

En el caso de las aplicaciones de Sharepoint/Dataverse/Connector, requestURL y method pueden ser iguales para todas las solicitudes. x-ms-request-method y x-ms-request-url en los encabezados podrían tener que configurarse en ese caso para identificar diferentes solicitudes.

TestCases

Propiedad Tipo Description
testCaseName cuerda / cadena Obligatorio. Nombre del caso de prueba que se usa en la generación de informes de éxito y error.
testSteps TestSteps Obligatorio. Conjunto de funciones de Power Fx que describen los pasos necesarios para realizar el caso de prueba. Consulte ejemplo de TestSteps.
testCaseDescription No Optional. Información adicional describe lo que hace el caso de prueba.

TestSteps

  • TestSteps puede usar las funciones existentes de power Fx del motor de pruebas o funciones de prueba específicas definidas por este marco.
  • El valor debe comenzar con un símbolo de canalización (|) para permitir expresiones YAML de varias líneas seguidas de un signo igual (=) para indicar que es una expresión de Power Fx.
  • Las funciones deben estar separadas por punto y coma (;).
  • Los comentarios se pueden usar y deben comenzar con caracteres de barra diagonal inversa dobles (//).

Ejemplo de TestSteps

testCases:
   - testCaseName: Fill in a city name and do the search
   testSteps: |
      = Screenshot("connectorapp_loaded.png");
         SetProperty(TextInput1.Text, "Atlanta");
         Select(Button1);
         Assert(Label4.Text = "You are seeing the mock response", "Validate the output is from the mock");
         Screenshot("connectorapp_end.png");

testSettings

Se usa para definir la configuración de las pruebas en el plan de pruebas.

Propiedad Tipo Description
browserConfigurations BrowserConfiguration[] Obligatorio. Lista de configuraciones del explorador que se van a probar. Se debe especificar al menos un explorador.
extensionModules extensionModules Optional. Contiene datos sobre las extensiones que se van a habilitar.
filePath cuerda / cadena Optional. Ruta de acceso del archivo a un archivo yaml independiente con todos los valores de prueba. Si se proporciona, invalidará toda la configuración de prueba del plan de prueba.
headless boolean Optional. El valor predeterminado es true. Si se establece en false, el explorador se muestra durante la ejecución de la prueba.
locale cuerda / cadena Optional. Sintaxis de configuración regional o cultural en la que se escriben los casos de prueba o los pasos de prueba. Si no se especifica, CultureInfo.CurrentCulture se usa para la configuración regional de forma predeterminada para analizar los pasos de prueba. Consulte Consideraciones sobre la región y el idioma.
recordVideo boolean Optional. El valor predeterminado es False. Si se establece en true, se captura una grabación de vídeo de la prueba.
timeout entero Optional. Valor de tiempo de espera en milisegundos. El valor predeterminado es 30 000 milisegundos (30). Si alguna operación tarda más tiempo de espera, finaliza la prueba en un error.
powerFxTestTypes name value par Optional. Una lista de definiciones de tipo nombre y tipo de Power Fx. Consulte el ejemplo de powerFxTestTypes.
testFunctions description code par Optional. Lista de definiciones de funciones de Power Fx y descripción. Consulte el ejemplo de testFunctions.

extensionModules

Contiene datos sobre las extensiones que se van a habilitar.

Propiedad Tipo Description
enable bool Si los módulos de extensión están habilitados o no.
allowPowerFxNamespaces list Lista de los espacios de nombres de PowerFx que se van a habilitar.
parameters pares clave-valor Propiedades con valores para controlar los módulos de extensión. En este momento, solo el parámetro booleano enableDataverseFunctions es válido para esto.

En este ejemplo se muestra cómo habilitar el espacio de nombres de PowerFx Preview :

testSettings:
  extensionModules:
    enable: true
    allowPowerFxNamespaces:
    - Preview

Más información sobre las funciones en versión preliminar

Consideraciones sobre la región y el idioma

El motor de pruebas admite varios idiomas y configuraciones regionales, como separadores decimales y de lista. La testSettings.locale propiedad controla estos comportamientos. Para obtener más información, consulte Compatibilidad global en Microsoft Power Fx.

Examine estas configuraciones de ejemplo en el repositorio de GitHub dePowerApps-TestEngine:

Ejemplo de powerFxTestTypes

powerFxTestTypes:
 - name: ControlName
   value: |
      {ControlName: Text} 
 - name: Options
   value: |
      [{Name: Text, Value: Number}]   

En este ejemplo se muestra cómo definir tipos personalizados de Power Fx para su uso en los casos de prueba. El ControlName tipo se define como un registro con un único Text campo, mientras que el Options tipo se define como una tabla de registros, cada uno de los cuales contiene un Name campo de tipo Text y un Value campo de tipo Number. Los tipos personalizados se pueden usar para crear escenarios de prueba más complejos y específicos, lo que mejora la flexibilidad y la eficacia de las definiciones de prueba.

Ejemplo de testFunctions

testFunctions:
 - description: Wait until control is visible using Document Object Model (DOM) selector
   code: |
    WaitUntilVisible(control: Text): Void = 
      Preview.PlaywrightAction(Concatenate("//div[@data-id='", control, "']"), "wait");
 - description: Get the options for a control using Power Fx control from Model Driven App (MDA)
   code: |
    GetOptions(control: ControlName): Options =
      Preview.GetOptions(control);

Estos ejemplos de funciones de prueba muestran cómo definir funciones personalizadas de Power Fx para su uso en los casos de prueba. La WaitUntilVisible función usa un selector DOM para esperar hasta que un control especificado esté visible, mediante acciones de Playwright. La función GetOptions recupera las opciones de un control especificado de una aplicación controlada por modelos (MDA), utilizando el control Power Fx. Estas funciones personalizadas mejoran la flexibilidad y la eficacia de las definiciones de prueba, lo que permite escenarios de prueba más complejos y específicos.

BrowserConfiguration

Cada testSettings requiere al menos un BrowserConfiguration.

Propiedad Tipo Description
browser cuerda / cadena Obligatorio. Explorador que se va a iniciar al realizar pruebas. Debe coincidir con los exploradores compatibles con Playwright.
device cuerda / cadena Optional. Dispositivo que se va a emular al iniciar el explorador. Debe coincidir con los dispositivos compatibles con Playwright.
screenHeight entero Optional. Alto de la pantalla que se va a usar al iniciar el explorador. Si se especifica, screenWidth también se debe especificar.
screenWidth entero Optional. Ancho de la pantalla que se va a usar al iniciar el explorador. Si se especifica, screenHeight también se debe especificar.

environmentVariables

Puede almacenar diferentes tipos de valores como valores de entorno, pero el caso más común es almacenar información de credenciales con una lista de usuarios.

users

Para asegurarse de que las credenciales se almacenan de forma segura, la definición de prueba hace referencia a los usuarios mediante .personaName No se admite el almacenamiento de credenciales en archivos de plan de prueba.

Ejemplo:

environmentVariables:
    - users:
        - personaName: "User1"
          emailKey: "user1Email"
        - personaName: "User2"
          emailKey: "user2Email"

personaName se usa como parte de la definición de prueba para indicar qué usuario debe ejecutar la prueba como.

Mecanismos de almacenamiento de credenciales admitidos

Para almacenar las credenciales como variables de entorno, puede establecerlas de la siguiente manera:

# In PowerShell - replace variableName and variableValue with the correct values
$env:variableName = "variableValue"

En YAML, se deben definir dos propiedades para indicar que las credenciales de este usuario se almacenan en variables de entorno:

  • emailKey: la variable de entorno que se usa para almacenar el correo electrónico del usuario.

Ejemplo de YAML:

    - personaName: "User1"
      emailKey: "user1Email"

Ejemplo de PowerShell para establecer credenciales de usuario basadas en YAML:

$env:user1Email = "someone@example.com"

Consulte también

Introducción al motor de pruebas de Power Apps (versión preliminar)
Funciones power Fx del motor de prueba de Power Apps (versión preliminar)