Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.
Aplicaciones basadas en soluciones (recomendadas)
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:
- Abra la solución que contiene la aplicación en Power Apps.
- 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:
- Buscar la aplicación en la lista de Power Apps
- 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
-
TestStepspuede 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:
- Para las regiones que usan punto y coma como separadores de lista
- Para las regiones que usan comas como separadores decimales
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)