Réduire le temps de test et améliorer les performances des tests sont les principales promesses de l'exécution de tests à l'aide de navigateurs headless. Maintenant … comment y parvenir en pratique?
Cet article vous guidera à travers un scénario de test AWS sur la façon d'utiliser de manière optimale la puissance de votre abonnement au serveur privé virtuel (VPS) AWS Lightsail pour exécuter des tests d'interface utilisateur automatisés en mode sans tête et économiser du temps et des coûts.
Exécution de test sans tête?
Avant de sauter dans le cas de test que je veux illustrer, fournissons un peu de contexte. Par tests de navigateur sans tête je veux dire l’exécution de tests fonctionnels de bout en bout de l’interface utilisateur à l’aide d’un navigateur dépourvu de tout élément de l’interface utilisateur. Lors de l'exécution d'un test «insouciant», le navigateur accède à une page, se connecte, effectue des actions et / ou des vérifications basées sur le script de test, mais sans afficher l'interface utilisateur sur le bureau. Tous les navigateurs basés sur Chromium offrent un mode sans tête. Test Studio prend en charge l'exécution de tests sur Chrome Headless .
La question ici est de savoir comment tirer parti de l'exécution de tests headless lorsque votre infrastructure d'automatisation de test est hébergée dans le cloud.
AWS Test: mesure des indicateurs de performance clés de l'exécution de tests sans tête dans une infrastructure de test basée sur le cloud
Dans notre cas, trois aspects des tests AWS avec exécution de tests sans tête sont essentiels à comprendre lors du test des indicateurs de performance clés dans des infrastructures basées sur le cloud AWS Lightsail .
- Les tests fonctionnels exécutés en mode headless se termineront au moins 50% plus rapidement que les tests d'interface utilisateur non headless.
- L'exécution de tests headless peut réduire la mémoire et le processeur jusqu'à 30% (selon le test
- L'exécution de tests sans tête entraînera des exécutions de test intrinsèquement plus stables car les événements inattendus du système d'exploitation (boîtes de dialogue, erreurs Windows, erreurs client, interaction de l'utilisateur avec le bureau pendant l'exécution des tests) t affectent l'exécution du test.
En même temps, quelques caractéristiques des machines virtuelles (VM) basées sur Amazon sont directement liées aux performances et à la stabilité des tests.
Les plus évidentes sont les spécifications globales de la machine, telles que mémoire, configuration du processeur, etc. Il est cependant essentiel de comprendre qu'il existe d'autres aspects, qui ne sont pas si évidents, mais qui affecteront les performances des tests. Il s'agit de CPU burst capacity et CPU usage performance de base . C'est là où il est important de savoir si les tests sont exécutés en mode interface utilisateur headless ou headless.
CPU Utilization Performance Baseline and Burst Capacity dans AWS Lightsail
Voici un document très détaillé fourni par Amazon sur comment afficher la capacité de rafale d'instance dans AWS Lightsail . Pour votre commodité, voici un bref résumé:
Base de référence des performances d'utilisation du processeur: Ceci est mesuré en pourcentages et en temps par processeur virtuel. Par exemple, à partir des options d'abonnement AWS Lightsail ci-dessus, le niveau recommandé de 70 USD par mois comprend 30% d'utilisation du processeur. Mais qu'est-ce que cela signifie dans un scénario réel? Il existe une zone dite durable lorsque les processeurs de la VM ne sont pas utilisés à plus de 30%.
CPU burst capacity: Cette métrique correspond à la durée pendant laquelle la charge du processeur était supérieure à 30%. La capacité d'éclatement est essentiellement un seau qui n'est pas infini. Il est cependant rechargé lorsque le processeur est sous-utilisé. Il y a un laps de temps défini pendant lequel l'utilisation du processeur peut atteindre 100% ou près de 100%, et lorsque ce délai est écoulé, le processeur ralentit vers la zone durable et y reste.
Expliquons ce qui se passe si la capacité de rafale d'un processeur VM est surexploitée. Sachez que cela peut se produire en quelques heures de charge CPU soutenue, par exemple, si vous exécutez des tests sur quelques heures. La machine ralentira; respectivement, le CPU ralentira également. De plus, cela deviendra extrêmement lent, car le processeur ne sera pas limité pour fonctionner avec plus de 30% de capacité (ou même 20% si la machine provient d'un abonnement de niveau inférieur).
Comment cela m'affecte-t-il?
Les opérations normales sur les machines virtuelles Windows seront considérablement ralenties. Le lancement d'un navigateur prendra au moins une minute. Le chargement d'applications Web dynamiques et complexes modernes qui calculent côté client sera extrêmement lent. L'exécution de tests ne sera pas durable, surtout si vous les exécutez en mode interface utilisateur dirigée. Les tests ne seront pas synchronisés correctement et les actions et les étapes de vérification expireront, ce qui entraînera l'échec de vos tests. À certaines occasions, les navigateurs ne répondront plus.
Maintenant, puisque vous avez ces informations, je suis sûr que vous vous efforcerez à tout prix d'atteindre ces deux objectifs:
- Ne jamais manquer de vitesse de processeur en rafale.
- Si la VM n'a plus de capacité de vitesse de rafale, assurez-vous d'exécuter les tests les plus légers possibles.
Les pierres angulaires de l'exécution des tests sans tête
Vous vous souvenez encore des trois pierres angulaires de l'exécution sans tête?
Le premier et le plus important est la vitesse d'exécution. Accélérer l'exécution vous aidera en optimisant la machine. Un seul test, par exemple, peut être exécuté deux ou trois fois en mode sans tête. Pendant le même laps de temps, vous ne pourrez exécuter ce même test qu'une seule fois en mode Head-UI.
Même si le test est exécuté sur une machine où la capacité de rafale du processeur est déjà à zéro, les tests headless seront
Scénarios réels et implications
Vous vous demandez probablement ce que tout cela signifie pour vous. Parlons en termes pratiques.
Il existe une différence significative entre l'exécution de tests avec Test Studio en mode sans tête sur des machines basées sur Amazon et l'exécution des mêmes tests à l'aide de navigateurs d'interface utilisateur.
Les implications réelles ici sont que si un utilisateur est prêt à exécuter des tests * en mode interface utilisateur dirigée pendant plus de quelques heures par jour sur une VM, il devra investir au moins 120 USD par mois et par machine (sur la base de la tarification officielle du niveau AWS Lightsail) .
L'exécution des mêmes tests * avec la même intensité mais en mode sans tête peut être réalisée sur une machine pour 70 $ par mois (voire 40 $ par mois) avec beaucoup d'espace libre et une capacité pour les exécutions à la demande, le débogage ou autre les actions essentielles à votre architecture de test. En d'autres termes, vous n'aurez pas à vous inquiéter de manquer de capacité de processeur et de pouvoir vous concentrer sur le travail critique.
* Toutes les mesures ont été effectuées en testant des scénarios fonctionnels de bout en bout avec Test Studio. Un tel scénario pourrait être Connexion 3 – sélectionnez des éléments dans un catalogue de commerce électronique – ajoutez-les au panier .
Récapitulatif
Depuis sa dernière version R1 2021 Test Studio propose des fonctionnalités d'exécution de navigateur sans tête pour aider les testeurs et les ingénieurs en automatisation à moderniser leur cycle de test et à améliorer la couverture des scénarios de test. La mise en place d'architectures de test dans le cloud est à la fois moderne et puissante, mais elle nécessite certainement de lire les petits caractères. L'exécution de tests sans tête prend en charge les tests AWS en vous aidant à utiliser la pleine capacité de votre abonnement Amazon sans courir le risque d'échec des tests, d'intégrations de build sabotées et de qualité de publication compromise.
Source link