Share via


Determinación de la configuración óptima del conjunto de pruebas

Microsoft Playwright Testing Preview permite acelerar la ejecución de pruebas de Playwright aumentando el paralelismo a escala de la nube. Varios factores afectan al tiempo de finalización del conjunto de pruebas. Determinar la configuración óptima para reducir el tiempo de finalización del conjunto de pruebas es específico de la aplicación y requiere experimentación. En este artículo se explican los distintos niveles para configurar el paralelismo para las pruebas, los factores que influyen en la duración de las pruebas y cómo determinar la configuración óptima para minimizar el tiempo de finalización de pruebas.

En Playwright, puede ejecutar pruebas en paralelo mediante procesos de trabajo. Mediante Microsoft Playwright Testing, puede aumentar aún más el paralelismo mediante exploradores hospedados en la nube. En general, agregar más paralelismo reduce el tiempo para completar el conjunto de pruebas. Sin embargo, agregar más procesos de trabajo no siempre da lugar a tiempos de finalización más cortos del conjunto de pruebas. Por ejemplo, los recursos informáticos de la máquina cliente, la latencia de red o la complejidad de las pruebas también pueden afectar a la duración de las pruebas.

En el gráfico siguiente se proporciona un ejemplo de ejecución de un conjunto de pruebas. Al ejecutar el conjunto de pruebas con Microsoft Playwright Testing en lugar de localmente, puede aumentar significativamente el paralelismo y reducir el tiempo de finalización de la prueba. Tenga en cuenta que, cuando se ejecuta con el servicio, el tiempo de finalización alcanza un límite mínimo, después de lo cual agregar más trabajos solo tiene un efecto mínimo. El gráfico también muestra cómo el uso de más recursos informáticos en la máquina cliente afecta positivamente al tiempo de finalización de pruebas para las pruebas que se ejecutan con el servicio.

Line chart that shows the relation between the number of parallel workers and the test suite completion time for different run environments.

Procesos de trabajo

En Playwright, todas las pruebas se ejecutan en procesos de trabajo. Estos procesos son procesos del sistema operativo, que se ejecutan de forma independiente, en paralelo, organizados por el ejecutor de pruebas de Playwright. Todos los trabajos tienen entornos idénticos y cada proceso inicia su propio explorador.

Por lo general, aumentar el número de trabajos paralelos puede reducir el tiempo necesario para completar el conjunto de pruebas completo. Puede obtener más información sobre el paralelismo de Playwright Test en la documentación de Playwright.

Como se mostró anteriormente en el gráfico, el tiempo de finalización del conjunto de pruebas no continúa disminuyendo a medida que agrega más procesos de trabajo. Hay otros factores que influyen en la duración del conjunto de pruebas.

Ejecución de pruebas localmente

De forma predeterminada, @playwright/test limita el número de trabajos a 1/2 del número de núcleos de CPU en la máquina. Puede invalidar el número de trabajos para ejecutar la prueba.

Al ejecutar pruebas localmente, el número de procesos de trabajo se limita al número de núcleos de CPU de la máquina. Más allá de un punto determinado, agregar más trabajos conduce a la contención de recursos, lo que ralentiza cada trabajo e introduce flakiness de prueba.

Para invalidar el número de trabajos mediante la --workers marca de línea de comandos:

npx playwright test --workers=10

Para especificar el número de trabajos en playwright.config.ts mediante la workers configuración:

export default defineConfig({
  ...
  workers: 10,
  ...
});

Ejecución de pruebas con el servicio

Al usar Microsoft Playwright Testing, puede aumentar el número de trabajadores a escala en la nube a números mayores. Cuando se usa el servicio, los procesos de trabajo continúan ejecutándose localmente, pero las instancias del explorador que consumen muchos recursos ahora se ejecutan de forma remota en la nube.

Dado que los procesos de trabajo se siguen ejecutando en la máquina cliente (estación de trabajo de desarrollador o máquina del agente de CI), es posible que la máquina cliente se convierta en un cuello de botella para la ejecución escalable a medida que agrega más trabajos. Obtenga información sobre cómo puede determinar la configuración óptima.

Puede especificar el número de trabajos en la línea de comandos con la --workers marca :

npx playwright test --config=playwright.service.config.ts --workers=30

Como alternativa, puede especificar el número de trabajos en playwright.service.config.ts mediante la workers configuración :

export default defineConfig({
  ...
  workers: 30,
  ...
});

Factores que influyen en el tiempo de finalización

Además del número de procesos de trabajo paralelos, hay varios factores que influyen en el tiempo de finalización del conjunto de pruebas.

Factor Efectos en la duración de la prueba
Recursos de proceso de máquina cliente Los procesos de trabajo se siguen ejecutando en la máquina cliente (estación de trabajo de desarrollador o máquina del agente de CI) y necesitan comunicarse con los exploradores remotos. Aumentar el número de trabajos paralelos podría dar lugar a la contención de recursos en la máquina cliente y ralentizar las pruebas.
Complejidad del código de prueba A medida que aumenta la complejidad del código de prueba, el tiempo para completar las pruebas también puede aumentar.
Latencia entre el equipo cliente y los exploradores remotos Los trabajos se ejecutan en el equipo cliente y se comunican con los exploradores remotos. En función de la región de Azure en la que se hospedan los exploradores, la latencia de red podría aumentar. Obtenga información sobre cómo optimizar la latencia regional en Microsoft Playwright Testing.
Opciones de configuración de Playwright La configuración de playwright, como los tiempos de espera del servicio, los reintentos o el seguimiento, pueden afectar negativamente al tiempo de finalización de la prueba. Experimente con la configuración óptima para estas opciones al ejecutar las pruebas en la nube.
Capacidad de control de carga de la aplicación de destino La ejecución de pruebas con Microsoft Playwright Testing permite ejecutar con un paralelismo superior, lo que da como resultado una carga mayor en la aplicación de destino. Compruebe que la aplicación puede controlar la carga generada mediante la ejecución de las pruebas de Playwright.

Obtenga más información sobre el flujo de trabajo para determinar la configuración óptima para minimizar la duración del conjunto de pruebas.

Flujo de trabajo para determinar la configuración óptima

La configuración óptima para minimizar el tiempo de finalización del conjunto de pruebas es específico de la aplicación y el entorno. Para determinar la configuración óptima, experimente con distintos niveles de paralelización, configuración de hardware del equipo cliente o configuración del conjunto de pruebas.

El siguiente enfoque puede ayudarle a encontrar la configuración óptima para ejecutar las pruebas con Microsoft Playwright Testing:

1. Determinar el objetivo del tiempo de finalización de la prueba

Determine qué es un tiempo de finalización aceptable del conjunto de pruebas y el costo asociado por ejecución de prueba.

En función del escenario, los requisitos para la finalización de pruebas pueden ser diferentes. Al ejecutar las pruebas de un extremo a otro con cada cambio de código, como parte de un flujo de trabajo de integración continua (CI), es esencial minimizar el tiempo de finalización de pruebas. Al programar las pruebas de un extremo a otro en una ejecución por lotes (nocturnamente), es posible que tenga requisitos que sean menos exigentes.

2. Compruebe que las pruebas se ejecutan correctamente en la máquina cliente

Antes de ejecutar el conjunto de pruebas playwright con Microsoft Playwright Testing, asegúrese de que las pruebas se ejecutan correctamente en el equipo cliente. Si ejecuta las pruebas como parte de un flujo de trabajo de CI, valide que las pruebas se ejecuten correctamente en la máquina del agente de CI. Asegúrese de ejecutar las pruebas con un mínimo de dos trabajos paralelos para comprobar que las pruebas están configuradas correctamente para la ejecución en paralelo. Obtenga más información sobre el paralelismo en Playwright.

3. Ejecutar con exploradores hospedados en la nube en Microsoft Playwright Testing

Una vez que las pruebas se ejecuten correctamente, agregue la configuración del servicio para ejecutar las pruebas en exploradores hospedados en la nube con el servicio. Compruebe que las pruebas siguen ejecutándose correctamente desde la máquina cliente (estación de trabajo de desarrollador o máquina del agente de CI).

Introducción al inicio rápido: ejecución de pruebas de Playwright a gran escala con Microsoft Playwright Testing.

4. Comprobación de los exploradores remotos de la región de Azure

Microsoft Playwright Testing puede usar exploradores remotos en la región de Azure más cercana a la máquina cliente o usar la región fija en la que se creó el área de trabajo.

Obtenga información sobre cómo puede optimizar la latencia regional para el área de trabajo.

5. Experimentar con el número de trabajos paralelos

Experimente con el número de trabajos paralelos para ejecutar las pruebas. Mida el tiempo de finalización de la prueba y compárelo con el objetivo de destino que estableció anteriormente.

Observe en qué momento el tiempo de finalización de la prueba ya no se reduce a medida que agrega más trabajos. Vaya al paso siguiente para optimizar aún más la configuración.

Nota:

Aunque el servicio está en versión preliminar, el número de trabajos paralelos por área de trabajo está limitado a 50. Puede solicitar un aumento de este límite para el área de trabajo.

6. Escalado del cliente

A medida que aumenta el paralelismo, la máquina cliente podría experimentar contención de recursos de proceso. Aumente los recursos informáticos en la máquina cliente, por ejemplo seleccionando ejecutores hospedados en GitHub más grandes.

Como alternativa, si tiene limitaciones de hardware, puede particionar las pruebas de cliente.

Vuelva a ejecutar las pruebas y experimente con el número de trabajos paralelos.

7. Actualizar los valores de configuración de prueba de Playwright

Configure las opciones de configuración de prueba de Playwright, como tiempos de espera de prueba, configuración de seguimiento o reintentos.