Déterminer la configuration optimale de la suite de tests
Microsoft Playwright Testing Préversion 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 Worker. À 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 de la machine du cliente, 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 le faire 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 la machine cliente affecte positivement le temps d’achèvement des tests pour les tests exécutés avec le service.
Processus de travail
Dans Playwright, tous les tests s’exécutent dans les processus Worker. Ces processus sont des processus de système d’exploitation, exécutés indépendamment, en parallèle, orchestrés par le Test Runner 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 Workers 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 de 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 Worker. 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 machine. 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 Workers est limité au nombre de cœurs d’UC sur votre machine. Au-delà d’un certain point, l’ajout de Workers entraîne une contention de ressources, ce qui ralentit chaque Worker et introduit une instabilité des tests.
Pour remplacer le nombre de Workers à l’aide de l’indicateur de ligne de commande --workers
:
npx playwright test --workers=10
Pour spécifier le nombre de Workers dans playwright.config.ts
à l’aide du paramètre workers
:
export default defineConfig({
...
workers: 10,
...
});
Exécuter des tests avec le service
Lorsque vous utilisez Microsoft Playwright Testing, vous pouvez augmenter le nombre de Workers à l’échelle du cloud à un plus grand nombre. Lorsque vous utilisez le service, les processus de Worker 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 Worker s’exécutent toujours sur la machine cliente (station de travail développeur ou machine agent CI), la machine cliente peut encore devenir un goulot d’étranglement pour l’exécution évolutive à mesure que vous ajoutez d’autres Workers. Découvrez comment vous pouvez 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 Workers dans playwright.service.config.ts
à l’aide du paramètre workers
:
export default defineConfig({
...
workers: 30,
...
});
Facteurs qui influencent le temps d’achèvement
En plus du nombre de processus de Worker 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 la machine cliente | Les processus Worker s’exécutent toujours sur la machine cliente (station de travail développeur ou machine 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 la machine cliente 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 la machine cliente et les navigateurs distants | Les Workers s’exécutent sur la machine cliente 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 vous pouvez 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 workflow pour déterminer la configuration optimale afin de réduire la durée de la suite de tests.
Workflow 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 workflow 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 une exécution par lots (nocturne), vous pouvez avoir des exigences moins grandes.
2. Vérifier que vos tests s’exécutent correctement sur la machine cliente
Avant d’exécuter votre suite de tests Playwright avec Microsoft Playwright Testing, assurez-vous que vos tests s’exécutent correctement sur votre machine cliente. Si vous exécutez vos tests dans le cadre d’un workflow CI, vérifiez que vos tests s’exécutent correctement sur la machine 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 le Playwright.
3. Exécuter avec des navigateurs hébergés dans le cloud sur Microsoft Playwright Testing
Une fois vos tests s’exécutent 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 machine cliente (station de travail développeur ou machine agent CI).
Commencez avec le 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 machinez cliente, ou utiliser la région fixe sur laquelle votre espace de travail a été créé.
Découvrez comment vous pouvez optimiser la latence régionale pour votre espace de travail.
5. Expérimenter avec le nombre de Workers parallèles
Expérimentez avec le nombre de Workers 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 ne diminue plus à mesure 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 Workers 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 de calcul sur la machine cliente, par exemple en sélectionnant des exécuteurs hébergés par GitHub plus grands.
Sinon, si vous avez des limitations matérielles, vous pouvez étendre vos tests clients.
Réexécutez vos tests et expérimentez avec le nombre de Workers 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, les paramètres de trace ou les nouvelles tentatives de tests.