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 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 obtener acceso anticipado y proporcionar comentarios.
Descripción general
Power Apps Test Engine utiliza Playwright como su tecnología principal de automatización del navegador. ... Esta integración proporciona a Test Engine capacidades de prueba potentes, confiables y entre navegadores, al tiempo que agrega varias capas de abstracción para simplificar la creación de pruebas para aplicaciones. Power Platform
Cómo Test Engine mejora Playwright
Si bien Playwright ofrece excelentes capacidades de automatización del navegador, Test Engine extiende estas capacidades específicamente para: Power Platform
| Mejora del motor de pruebas | Description |
|---|---|
| Abstracciones a nivel de aplicación | Test Engine trabaja con objetos de nivel de aplicación en lugar de elementos DOM, lo que hace que las pruebas sean más resistentes a los cambios de la interfaz de usuario. |
| Power Fx Integración | Test Engine agrega Power Fx soporte, lo que permite un enfoque de código bajo para la creación de pruebas. |
| Autenticación incorporada | Mecanismos de autenticación prediseñados que controlan escenarios de acceso condicional y de acceso Microsoft Entra |
| Dataverse Integración | La integración directa con Dataverse permite realizar pruebas integrales de extremo a extremo |
| Proveedores especializados | Proveedores optimizados para aplicaciones de Canvas y aplicaciones basadas en modelos... |
Implementación técnica
Las siguientes secciones describen cómo Test Engine se basa en la base de automatización del navegador de Playwright y la integra con abstracciones específicas, lo que permite una automatización de pruebas sólida y fácil de mantener. Power Platform
Fundamentos de la automatización del navegador
Test Engine utiliza las capacidades principales de Playwright para una automatización consistente del navegador:
- Compatibilidad entre navegadores para Chrome, Firefox y Microsoft Edge
- Mecanismos de espera confiables que esperan automáticamente a que los elementos estén listos
- Interceptación de solicitudes de red para simular respuestas de API
- Herramientas de rastreo y depuración para diagnosticar fallos en las pruebas
Integración arquitectónica de Test Engine
- Capa de proveedor: La capa de proveedor en Test Engine interactúa directamente con las API de Playwright para controlar el comportamiento del navegador
- Modelo de objetos: en lugar de trabajar con elementos DOM sin procesar, Test Engine asigna modelos de objetos específicos de la aplicación.
- Power Fx Capa: Los pasos de prueba escritos en Power Fx se interpretan y ejecutan a través de la capa del proveedor
Características técnicas clave
Las siguientes secciones destacan características técnicas importantes que Test Engine agrega a Playwright, incluidos selectores específicos de la aplicación, administración del contexto del navegador y acceso directo a las funciones de Playwright para escenarios avanzados.
Selectores específicos de la aplicación
El motor de pruebas utiliza selectores específicos de la aplicación en lugar de selectores CSS o XPath :
# Test Engine (using app-level selectors)
- testSteps: |
Select(Button1)
# Equivalent in raw Playwright (using DOM selectors)
Select(Button1)
# page.locator('div[data-control-name="Button1"]').click();
Gestión del contexto del navegador
El motor de pruebas administra los contextos del navegador para admitir diversos escenarios de autenticación:
# Test Engine handles browser context automatically
pac test run `
--provider canvas `
--test-plan-file testplan.te.yaml `
--tenant $tenantId `
--environment-id $environmentId
Funciones directas del dramaturgo
Si bien Test Engine abstrae muchas interacciones de Playwright, hay escenarios en los que acceder directamente a las capacidades de Playwright puede resultar valioso. Test Engine proporciona varias funciones de vista previa que permiten la interacción directa con Playwright desde los pasos de prueba. Power Fx
Uso de las funciones de Playwright en Test Engine
Test Engine incluye las siguientes funciones de vista previa que le permiten aplicar las capacidades de selección de elementos de Playwright:
| Function | Description | Ejemplo |
|---|---|---|
| Vista previa. DramaturgoAcción | Ejecutar una acción sobre elementos usando CSS o selectores DOM | Preview.PlaywrightAction("//button", "click") Véase Operaciones de acción comunes del dramaturgo |
| Vista previa.PlaywrightActionValue | Ejecutar una acción que requiere un parámetro de valor | Preview.PlaywrightActionValue("//input[@data-id='1']", "fill", "Hello") Consulte las operaciones de valor de acción de dramaturgos comunes |
| Vista previa. Guión del dramaturgo | Ejecutar un script C# personalizado que interactúe con Playwright | Preview.PlaywrightScript("sample.csx") Ver Avanzado: Guiones de dramaturgos personalizados |
| Vista previa.Pausa | Pausa la ejecución de la prueba y muestra el Inspector de Playwright | Preview.Pause() |
Nota
Para utilizar estas funciones de vista previa, debe agregarlas a la lista de permitidos en la sección de configuración de pruebas.
Operaciones de acción de dramaturgo común
Las siguientes operaciones se pueden realizar con Preview.PlaywrightAction:
| Acción | Description | Ejemplo |
|---|---|---|
click |
Selección de un elemento mediante el evento de clic | Preview.PlaywrightAction("//button[@id='submit']", "click") |
exists |
Comprobar si existe un elemento | Preview.PlaywrightAction("//div[@class='error-message']", "exists") |
wait |
Esperar a que un elemento esté disponible | Preview.PlaywrightAction("//table[@data-loading='false']", "wait") |
Operaciones de valor de acción de dramaturgo común
Las siguientes operaciones se pueden realizar con Preview.PlaywrightActionValue:
| Acción | Description | Ejemplo |
|---|---|---|
fill |
Rellene un campo de formulario con texto | Preview.PlaywrightActionValue("//input[@name='search']", "fill", "Product name") |
select |
Seleccione una opción de una lista de selección | Preview.PlaywrightActionValue("//select", "select", "Option2") |
setAttribute |
Establecer un atributo en un elemento | Preview.PlaywrightActionValue("//div", "setAttribute", "data-custom='value'") |
Cuándo utilizar las funciones directas del dramaturgo
Si bien se prefieren las abstracciones a nivel de aplicación, las funciones directas de Playwright son útiles en estos escenarios:
- Interacciones de interfaz de usuario complejas no cubiertas por las funciones estándar del motor de pruebas
- Componentes de terceros dentro de aplicaciones que requieren un manejo especial Power Platform
- Depuración de escenarios de prueba complejos donde se necesita más control
- Validación avanzada de estados o propiedades de elementos
Ejemplo: Enfoque combinado
Este ejemplo demuestra la combinación de abstracciones a nivel de aplicación con acciones directas de Playwright:
testSteps: |
# Use app-level abstraction for Power Apps control
Select(SubmitButton);
# Use direct Playwright action for a third-party component
Preview.PlaywrightAction("//div[@class='custom-calendar']//button[@data-day='15']", "click");
# Wait for a specific condition using Playwright
Preview.PlaywrightAction("//div[@data-status='complete']", "wait");
# Resume using app-level abstractions
Assert(Label1.Text = "Submission Complete");
Avanzado: Guiones de dramaturgos personalizados
Para escenarios altamente especializados, puedes crear guiones de Playwright personalizados:
- Crea un archivo con tu lógica de Playwright personalizada
.csx - Referencia requerida Ensambles de dramaturgos
- Implementar la estructura de clase requerida
- Llama al script desde tus pasos de prueba
// sample.csx
#r "Microsoft.Playwright.dll"
#r "Microsoft.Extensions.Logging.dll"
using Microsoft.Playwright;
using Microsoft.Extensions.Logging;
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();
// Custom Playwright logic here
}
}
Nota
Preview.PlaywrightScript solo se implementa para compilaciones de depuración de Test Engine creadas desde la fuente, no en la herramienta publicada. pac test run
Integración con el proceso de desarrollo
Las siguientes secciones describen cómo se pueden utilizar Test Engine y Playwright tanto en entornos de desarrollo local como de CI/CD, admitiendo una variedad de flujos de trabajo, desde la depuración interactiva hasta la ejecución automatizada de canalizaciones.
Desarrollo local
Para el desarrollo local, Test Engine proporciona un entorno completo:
- Ejecución del navegador local con visibilidad de la interfaz de usuario
- Ejecución de pruebas paso a paso
- Registros y diagnósticos detallados
Integración CI/CD
En entornos CI/CD, Test Engine puede ejecutar Playwright en modo sin cabeza:
# Example Azure DevOps pipeline step
- task: PowerShell@2
displayName: 'Run Test Engine Tests'
inputs:
script: |
pac test run `
--provider canvas `
--test-plan-file "$(Build.SourcesDirectory)/tests/testplan.te.yaml" `
--tenant "$(TenantId)" `
--environment-id "$(EnvironmentId)"
Procedimientos recomendados
Al trabajar con la integración de Playwright de Test Engine:
- Concéntrese en los objetos de nivel de aplicación en lugar de en los elementos DOM
- Utilice funciones para lógica compleja en lugar de JavaScript puro. Power Fx
- Aproveche los mecanismos de autenticación integrados
- Reserve las funciones directas de Playwright para escenarios donde las abstracciones a nivel de aplicación son insuficientes
- Revisar las pruebas generadas para optimizar la legibilidad y el mantenimiento.