Comienza con los ejemplos de Power Platform Playwright

Esta guía le ayuda a empezar a trabajar con ejemplos de Power Platform Playwright mediante la clonación del repositorio, la configuración de variables de entorno, la autenticación y la ejecución de la primera prueba de un extremo a otro.

Prerrequisitos

Antes de comenzar, asegúrese de que tiene:

  • Node.js 20 o posterior
  • Git
  • Un entorno de Power Platform con al menos una aplicación implementada
  • Una cuenta de usuario con acceso a la aplicación que desea probar

Nota:

Las pruebas de ejemplo de este repositorio tienen como destino la solución Northwind Traders . Puede usar su propia aplicación siguiendo los mismos patrones. Consulte Pruebas de ejemplo para obtener instrucciones de configuración.

Paso 1: Clonar el repositorio

git clone https://github.com/microsoft/power-platform-playwright-samples.git
cd power-platform-playwright-samples

Paso 2: Instalación de dependencias

El repositorio usa Rush para administrar el monorepo. Instale las dependencias con:

node common/scripts/install-run-rush.js install

Si prefiere trabajar directamente con el e2e-tests paquete:

cd packages/e2e-tests
npm install

Paso 3: Instalar exploradores

Instale Microsoft Edge (el explorador predeterminado para las pruebas de Power Platform):

cd packages/e2e-tests
npx playwright install msedge

Paso 4: Configurar el entorno

Copie la plantilla de entorno y rellene los valores:

cp .env.example .env

Abra .env y establezca las variables necesarias:

# Power Apps
POWER_APPS_BASE_URL=https://make.powerapps.com
POWER_APPS_ENVIRONMENT_ID=<your-environment-guid>

# Model-driven app (for model-driven app tests)
MODEL_DRIVEN_APP_URL=https://<org>.crm.dynamics.com/main.aspx?appid=<app-guid>

# Canvas app (for canvas tests)
CANVAS_APP_ID=<canvas-app-guid>
CANVAS_APP_TENANT_ID=<tenant-guid>

# Authentication
MS_AUTH_EMAIL=<your-test-user@domain.com>
MS_AUTH_CREDENTIAL_TYPE=password
MS_USER_PASSWORD=<password>

Sugerencia

En el caso de las canalizaciones de CI/CD, use la autenticación basada en certificados en lugar de contraseñas. Consulte la guía de autenticación para obtener más información.

Para obtener la lista completa de variables de entorno, consulte Referencia de variables de entorno.

Paso 5: Autenticación

La autenticación se ejecuta una vez para capturar un estado de almacenamiento del explorador que todas las pruebas reutilizan.

Autentícate en Power Apps

Ejecute el siguiente comando: Se abre una ventana del explorador para que inicie sesión:

npm run auth:headful

El estado de almacenamiento se guarda en .playwright-ms-auth/state-<email>.json.

Autenticación en la aplicación controlada por modelos (opcional)

Si está probando aplicaciones controladas por modelos, ejecute una segunda autenticación en el dominio de Dynamics 365:

npm run auth:mda:headful

El estado de almacenamiento de la aplicación controlada por modelos se guarda en .playwright-ms-auth/state-mda-<email>.json.

Nota:

Los estados de almacenamiento de autenticación expiran con la sesión. Repita estos pasos cuando las pruebas empiecen a producir errores de autenticación o configure la autenticación de CI/CD para renovar el estado automáticamente.

Paso 6: Ejecutar las pruebas

Ejecute todas las pruebas:

npx playwright test

Ejecute solo pruebas de canvas app:

npx playwright test tests/northwind/canvas --project=default

Ejecute solo pruebas de aplicaciones controladas por modelos:

npx playwright test tests/northwind/mda --project=model-driven-app

Vea el informe HTML después de la ejecución:

npx playwright show-report

Paso 7: Escribe tu primera prueba de Power Platform Playwright

En el ejemplo siguiente se muestra una prueba de aplicación de lienzo mínima. Cree un archivo en tests/my-app/my-app.test.ts:

import { test, expect } from '@playwright/test';
import { AppProvider, AppType, AppLaunchMode } from 'power-platform-playwright-toolkit';

const CANVAS_APP_URL = process.env.CANVAS_APP_URL!;

test('should load the app and display the gallery', async ({ page, context }) => {
  const app = new AppProvider(page, context);

  await app.launch({
    app: 'My Canvas App',
    type: AppType.Canvas,
    mode: AppLaunchMode.Play,
    skipMakerPortal: true,
    directUrl: CANVAS_APP_URL,
  });

  const canvasApp = app.getCanvasAppPage();
  const canvasFrame = page.frameLocator('iframe[name="fullscreen-app-host"]');

  await expect(canvasFrame.locator('[data-control-name="Gallery1"]')).toBeVisible();
});

Ejecute la prueba:

npx playwright test tests/my-app/my-app.test.ts --project=default

Pasos siguientes

Consulte también