[Selenium] Selenium Grid 4

Dans l’article précédent nous avons présenté Selenium IDE. Dans cette article nous allons parlé de Selenium Grid 4. Tout d’abord un rappel de ce qu’est Selenium Grid.

Selenium Grid permet de distribuer l’exécution des tests sur plusieurs machines, réelles ou virtuelles. Elles correspondent aux nodes. De façon simplifiée, Selenium Grid contient un hub et plusieurs nodes. Le hub est le point d’entrée qui reçoit et dispatche en fonction de la configuration demandée (navigateur, version du navigateur…), les requêtes vers un node libre. Ce node va alors lancer le navigateur et débuter l’exécution du script de test. Le nombre de nodes est décidé par la personne qui met en place l’infrastructure dans laquelle les tests vont s’exécuter. Les tests peuvent ainsi s’exécuter en parallèle sur plusieurs nodes. Un node peut contenir une version et une configuration de navigateur différente des autres nodes. C’est à l’utilisateur de définir et de déployer les configurations dont il a besoin.

Les principaux changements avec la Selenium Grid 4 :

  • La version 4 ne partage pas de code avec l’ancienne version, il s’agit d’une nouvelle implémentation.
  • L’interface Web a été totalement refaite. Elle est moderne et permet d’avoir accès aux informations importantes (nombre de nodes, version des navigateurs, nombre de sessions, durée des sessions…).
  • L’architecture a été revue et a été pensée pour faciliter la scalabilité en s’appuyant sur des infrastructures modernes comme Docker et Kubernetes. Pour un descriptif complet de l’architecture voir la documentation.
  • Le mode de fonctionnement (full) Distributed a été ajouté en plus des modes Standalone et Hub & Node(s) qui étaient déjà présents dans la grid v3.
    • En mode Standalone il n’est plus nécessaire de lancer la partie serveur et client séparément. En effet l’archive Java selenium-server contient maintenant le Hub et le Node. Il faut tout de même que les drivers des navigateurs soient accessibles au selenium-server. Le mode Standalone est à utiliser dans le cas d’une petite infrastructure de test où la diversité des environnements n’est pas nécessaire. Les tests sont exécutés sur la machine où est lancée la grid en mode standalone.
    • Le mode Hub & Node(s) est le mode classique. Il est destiné aux petites et moyennes infrastructures de test. Il facilite la création de nodes et la gestion de différents environnements de test (système d’exploitation, navigateur). L’utilisation de Docker permet de facilement mettre en place l’infrastructure de test. Ce mode permet la scalabilité.
    • Le mode Distributed est adapté aux grandes infrastructures où il faut gérer plusieurs centaines de nodes. Ça mise ne œuvre nécessite de démarrer séparément les différents composants de la grid (Event Bus, Session Map, New Session Queue, Distributor, Router, Node(s)). Le mode Distributed est prévu pour être utilisé avec Kubernetes. Ce mode a été pensé pour la scalabilité.
  • Selenium Grid 4 est aussi observable et utilise OpenTelemetry. Cela permet de tracer les requêtes et d’avoir les logs des événements, le tout dans un contexte de tests distribués. L’analyse des problèmes s’en trouve facilitée, particulièrement en mode distributed.
  • La Grid 4 est capable de lire un fichier de configuration TOML.

Sources :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *