Partage via


Déterminer la configuration optimale de la suite de tests

Microsoft Playwright Testing Preview vous permet d’accélérer l’exécution de votre test Playwright en augmentant le parallélisme à l’échelle du cloud. Plusieurs facteurs affectent le temps d’achèvement de votre suite de tests. La détermination de la configuration optimale pour réduire le temps d’achèvement de la suite de tests est spécifique à l’application et nécessite une expérimentation. Cet article explique les différents niveaux pour configurer le parallélisme pour vos tests, les facteurs qui influencent la durée des tests et comment déterminer votre configuration optimale pour réduire le temps d’achèvement des tests.

Dans Playwright, vous pouvez exécuter des tests en parallèle à l’aide de processus de travail. À l’aide de Microsoft Playwright Testing, vous pouvez augmenter davantage le parallélisme à l’aide de navigateurs hébergés dans le cloud. En général, l’ajout d’un parallélisme supplémentaire réduit le temps nécessaire pour terminer votre suite de tests. Toutefois, l’ajout de processus de travail supplémentaires n’entraîne pas toujours des temps d’achèvement de suite de tests plus courts. Par exemple, les ressources de calcul automatique du client, la latence réseau ou la complexité des tests peuvent également affecter la durée du test.

Le graphique suivant donne un exemple d’exécution d’une suite de tests. En exécutant la suite de tests avec Microsoft Playwright Testing au lieu de localement, vous pouvez augmenter considérablement le parallélisme et réduire le temps d’achèvement des tests. Notez que, lors de l’exécution avec le service, le temps d’achèvement atteint une limite minimale, après quoi l’ajout de plus de workers n’a qu’un effet minimal. Le graphique montre également comment l’utilisation de ressources informatiques supplémentaires sur l’ordinateur client affecte positivement le temps d’achèvement des tests pour les tests exécutés avec le service.

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

Processus de travail

Dans Playwright, tous les tests s’exécutent dans les processus de travail. Ces processus sont des processus de système d’exploitation, exécutés indépendamment, en parallèle, orchestrés par l’exécuteur de test playwright. Tous les workers ont des environnements identiques et chaque processus démarre son propre navigateur.

En règle générale, l’augmentation du nombre de travailleurs parallèles peut réduire le temps nécessaire pour terminer la suite de tests complète. Vous pouvez en savoir plus sur le parallélisme du test playwright dans la documentation playwright.

Comme indiqué précédemment dans le graphique, le temps d’achèvement de la suite de tests ne continue pas à diminuer lorsque vous ajoutez d’autres processus de travail. Il existe d’autres facteurs qui influencent la durée de la suite de tests.

Exécuter des tests localement

Par défaut, @playwright/test limite le nombre de workers à 1/2 du nombre de cœurs d’UC sur votre ordinateur. Vous pouvez remplacer le nombre de workers pour l’exécution de votre test.

Lorsque vous exécutez des tests localement, le nombre de processus de travail est limité au nombre de cœurs de processeur sur votre ordinateur. Au-delà d’un certain point, l’ajout de travailleurs entraîne une contention de ressources, ce qui ralentit chaque travailleur et introduit des flakines de test.

Pour remplacer le nombre de workers à l’aide de l’indicateur --workersde ligne de commande :

npx playwright test --workers=10

Pour spécifier le nombre de workers dans playwright.config.ts l’utilisation du workers paramètre :

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

Exécuter des tests avec le service

Lorsque vous utilisez Microsoft Playwright Testing, vous pouvez augmenter le nombre de travailleurs à l’échelle du cloud à un plus grand nombre. Lorsque vous utilisez le service, les processus de travail continuent à s’exécuter localement, mais les instances de navigateur gourmandes en ressources s’exécutent désormais à distance dans le cloud.

Étant donné que les processus de travail s’exécutent toujours sur l’ordinateur client (station de travail développeur ou ordinateur agent CI), l’ordinateur client peut encore devenir un goulot d’étranglement pour l’exécution évolutive lorsque vous ajoutez d’autres workers. Découvrez comment déterminer la configuration optimale.

Vous pouvez spécifier le nombre de workers sur la ligne de commande avec l’indicateur --workers :

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

Vous pouvez également spécifier le nombre de travailleurs dans playwright.service.config.ts utilisant le workers paramètre :

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

Facteurs qui influencent le temps d’achèvement

En plus du nombre de processus de travail parallèles, il existe plusieurs facteurs qui influencent le temps d’achèvement de la suite de tests.

Facteur Effets sur la durée des tests
Ressources de calcul de machine cliente Les processus worker s’exécutent toujours sur l’ordinateur client (station de travail développeur ou ordinateur agent CI) et doivent communiquer avec les navigateurs distants. L’augmentation du nombre de workers parallèles peut entraîner une contention de ressources sur l’ordinateur client et ralentir les tests.
Complexité du code de test À mesure que la complexité du code de test augmente, le temps nécessaire pour effectuer les tests peut également augmenter.
Latence entre l’ordinateur client et les navigateurs distants Les workers s’exécutent sur l’ordinateur client et communiquent avec les navigateurs distants. Selon la région Azure où les navigateurs sont hébergés, la latence réseau peut augmenter. Découvrez comment optimiser la latence régionale dans microsoft Playwright Testing.
Paramètres de configuration playwright Les paramètres de playwright tels que les délais d’expiration du service, les nouvelles tentatives ou le suivi peuvent affecter négativement le temps d’achèvement du test. Testez la configuration optimale pour ces paramètres lors de l’exécution de vos tests dans le cloud.
Capacité de gestion de charge de l’application cible L’exécution de tests avec Microsoft Playwright Testing vous permet d’exécuter avec un parallélisme supérieur, ce qui entraîne une charge plus élevée sur l’application cible. Vérifiez que l’application peut gérer la charge générée en exécutant vos tests playwright.

En savoir plus sur le flux de travail pour déterminer la configuration optimale pour réduire la durée de la suite de tests.

Flux de travail pour déterminer votre configuration optimale

La configuration optimale pour réduire le temps d’achèvement de la suite de tests est spécifique à votre application et à votre environnement. Pour déterminer votre configuration optimale, testez différents niveaux de parallélisation, de configuration matérielle de la machine cliente ou de la configuration de la suite de tests.

L’approche suivante peut vous aider à trouver la configuration optimale pour l’exécution de vos tests avec Microsoft Playwright Testing :

1. Déterminer l’objectif de temps d’achèvement de votre test

Déterminez le temps d’achèvement d’une suite de tests acceptable et le coût associé par exécution de test.

Selon le scénario, vos besoins en matière d’achèvement de test peuvent être différents. Lorsque vous exécutez vos tests de bout en bout avec chaque modification de code, dans le cadre d’un flux de travail d’intégration continue (CI), la réduction du temps d’achèvement des tests est essentielle. Lorsque vous planifiez vos tests de bout en bout dans un lot (nocturnement), vous avez peut-être des exigences moins exigeantes.

2. Vérifiez que vos tests s’exécutent correctement sur l’ordinateur client

Avant d’exécuter votre suite de tests Playwright avec Microsoft Playwright Testing, assurez-vous que vos tests s’exécutent correctement sur votre ordinateur client. Si vous exécutez vos tests dans le cadre d’un flux de travail CI, vérifiez que vos tests s’exécutent correctement sur l’ordinateur de l’agent CI. Vérifiez que vous exécutez vos tests avec au moins deux workers parallèles pour vérifier que vos tests sont correctement configurés pour l’exécution parallèle. En savoir plus sur le parallélisme dans playwright.

3. Exécuter avec des navigateurs hébergés dans le cloud sur microsoft Playwright Testing

Une fois vos tests exécutés correctement, ajoutez la configuration du service pour exécuter vos tests sur les navigateurs hébergés dans le cloud avec le service. Vérifiez que vos tests continuent à s’exécuter correctement à partir de votre ordinateur client (station de travail développeur ou ordinateur agent CI).

Prise en main du guide de démarrage rapide : exécuter des tests playwright à grande échelle avec Microsoft Playwright Testing.

4. Vérifier les navigateurs distants de la région Azure

Microsoft Playwright Testing peut utiliser des navigateurs distants dans la région Azure la plus proche de votre ordinateur client, ou utiliser la région fixe sur laquelle votre espace de travail a été créé.

Découvrez comment optimiser la latence régionale pour votre espace de travail.

5. Expérimenter le nombre de travailleurs parallèles

Expérimentez le nombre de travailleurs parallèles pour exécuter vos tests. Mesurez le temps d’achèvement du test et comparez l’objectif cible que vous avez défini précédemment.

Notez à quel moment le temps d’achèvement du test n’est plus réduit lorsque vous ajoutez d’autres workers. Passez à l’étape suivante pour optimiser davantage votre configuration.

Remarque

Bien que le service soit en préversion, le nombre de travailleurs parallèles par espace de travail est limité à 50. Vous pouvez demander une augmentation de cette limite pour votre espace de travail.

6. Mettre à l’échelle le client

Lorsque vous augmentez le parallélisme, la machine cliente peut rencontrer une contention de ressources de calcul. Augmentez les ressources informatiques sur l’ordinateur client, par exemple en sélectionnant des exécuteurs hébergés par GitHub plus volumineux.

Sinon, si vous avez des limitations matérielles, vous pouvez partitionner vos tests clients.

Réexécutez vos tests et testez le nombre de travailleurs parallèles.

7. Mettre à jour vos paramètres de configuration de test Playwright

Configurez vos paramètres de configuration de test Playwright, tels que les délais d’expiration des tests, les paramètres de trace ou les nouvelles tentatives.