En tant que testeur ou développeur web expérimenté, vous devez tester vos applications pour bugs et performances sur tous les navigateurs et systèmes d’exploitation disponibles. Cependant, avec toutes ces dépendances en main, il n’est pas seulement question de différents navigateurs, mais aussi de leurs différentes versions, ce qui rend certainement l’affaire complexes.
Il est surtout important que tous ces processus soient automatisés au maximum parce qu’ dans les grandes entreprises, la création individuelle de cas de test et des pipelines serait coûteuse et la méthode la plus évidente, la méthode la moins préférable possible. C’est ici que Selenium Grid, une工具server-based de test automatisé grandement utilisée, entre en scène.
Qu’est-ce que Selenium Grid ?
Selenium Grid est une tool utilisée pour le test parallèle et continu sur plus d’un navigateur et environnement. Il vous permet de lancer des tests en concurrence sur différentes machines contre différents navigateurs et systèmes d’exploitation. L’objectif de Selenium Grid est de distribuer la charge d’exécution des tests sur plusieurs machines, ce qui rend plus rapide l’exécution d’un grand nombre de tests.
L’architecture de Selenium Grid se compose principalement d’un hub et de nombreux nœuds. Le hub agit en tant que point central où les demandes de tests doivent être envoyées. Les nœuds sont les machines (physiques ou virtuelles) où les tests sont exécutés. Le hubroute les demandes d’exécution de tests aux nœuds appropriés en fonction des configurations de navigateur et de plateforme souhaitées spécifiées dans les scripts de test.
Selenium Grid permet diverses configurations et les tests distribués, y compris l’exécution en parallèle et l’essai de capacités de navigateur sélectionnées. Il est couramment utilisé dans les tests automatisés pour s’assurer de la compatibilité et de la fonctionnalité sur différents navigateurs et plateformes.
Pourquoi avons-nous besoin de Selenium Grid ?
Vous pourriez être très intéressé à comprendre pourquoi nous en avons besoin du tout. Si on le voit spécifiquement, il fait partie de la suite Selenium, qui comprend également d’autres logiciels et fonctionnalités telles que Selenium WebDriver et Selenium IDE, et nous avons vu comment il peut soutenir les navigateurs tels que Chrome, Microsoft Edge, Opera, Safari et toutes leurs différentes versions ensemble. De plus, il peut également exécuter ces navigateurs sur plusieurs systèmes d’exploitation, créant ainsi un environnement de test de bout en bout. En tant qu’open-source, il est également gratuitement disponible et bénéficie des mises à jour et des développements les plus rapides avec une accessibilité complète à toutes les informations.
Architecture de Selenium Grid
Examinons l’architecture de Selenium Grid. Selenium Grid fonctionne avec un modèle d’Hub et de Nœud, où un Hub est connecté à plusieurs nœuds et peut être exécuté sur différentes machines, navigateurs et différentes versions de leurs navigateurs.
Le Hub agit en tant que point central dans le réseau Selenium, en dirigeant les commandes de test vers les nœuds. Il reçoit également les demandes de test du client et les transfère vers les nœuds requis. Le Hub est lancé sur une seule machine avec un système d’exploitation défini et un navigateur avec les navigateurs de test complets et leurs versions, ainsi que avec la possibilité de le configurer sur plusieurs appareils fonctionnant sous un système d’exploitation compatible.
Selenium a également défini d’autres composants dans l’architecture, qui sont expliqués en détail sur son site web, ce qui peut être utile pour exécuter Selenium en mode distribué complet avec des routeurs, des sessions et des distributeurs bien définis. Maintenant que nous avons acquis suffisamment de connaissances de base sur SeleniumGrid,
Selenium Grid peut être installé et utilisé en 4 simples étapes
Étape 1
Dans l’étape 1, réglez rapidement les prérequis.
Tout d’abord, nous devons nous assurer que nous exécutons la version la plus récente de Java ou Java 11 et plus haut. Cela peut être téléchargé depuis le site web officiel.
Ensuite, nous devons installer tous les navigateurs nécessaires que nous souhaitons tester. Nous utiliserons un pilote de navigateur Chrome avec la version 123 pour accéder au navigateur Chrome. N’oubliez pas que les versions du pilote et du navigateur doivent correspondre pour que les serveurs Selenium puissent fonctionner. Et enfin, je vais utiliser l’IDE Eclipse, car ce démo sera basé sur Java. Cet IDE peut être téléchargé depuis le site web officiel d’Eclipse.
Pour la dernière condition préalable, nous aurions besoin de télécharger la dernière version du serveur Selenium Grid depuis le site officiel de Selenium.
Étape 2
Maintenant, commençons à l’étape 2. Pour l’étape 2, j’ai créé un nouveau dossier et collé mon serveur Selenium et mon pilote Chrome que je vais utiliser pour ce démonstration.
package Selenium_test1 ;
import java.net.MalformedURLException;
public class test1{
String hubUrl ="https://10.20.31.20";
String url ="https://www.world.co/search";
WebDriver driver;
public void setupGrid()
{
DesiredCapabilities ds= new DesiredCapabilities();
ds.setCapability("browserName", "Chrome");
try{
driver = new RemoteWebDriver( new URL(hubUrl),ds);
} catch (malformedURLException e){
e.printSTackTrace();
}
driver.get(url);
}
public void pageTitleValidation(){
String title = driver.getTitle();
System.out.println("page title :" +title);
}
public static void main(String[] args)
{
test1 obj = new test1();
obj.setupGrid();
obj.pageTitleValidation();
}
}
Étape 3
Maintenant, pour l’étape 3, j’ai ouvert mon IDE Eclipse et en utilisant WebDriver, j’ai écrit mon cas de test. Nous allons vérifier un nouveau projet Maven parmi les autres. De plus, nous aurons également besoin de coller le pilote Chrome qui sera utilisé dans un dossier particulier ici. La version du serveur Selenium utilisée doit être arrachée au chemin de ce projet par les étapes que je vais maintenant suivre. Je peux descendre vers le nom de mon projet, cliquer droit et aller à la build path. Depuis là, je peux descendre jusqu’à configurer la build path, et à droite, je verrai une possibilité appelée ajouter des outils externes. Depuis cet endroit, je peux ajouter le serveur Selenium que je utilise.
Cliquer appliquer et fermer, puis passons à l’étape 4.
Étape 4
Maintenant, pour l’étape 4, je suis retourné à mon dossier de l’étape 2. Ici, je vais utiliser le terminal.
Cela facilite beaucoup la recherche de dossiers et est un processus simple. Comme c’est seulement une machine et un navigateur, je vais utiliser le mode Grid Selenium avec Edge Sandbox.
Le serveur est maintenant démarré. Il ajoute les dépendances requises une par une, et le processus est en train d’être achevé. Il nous a donné une adresse spécifique à rejoindre. Maintenant, je vais copier cette adresse et retourner à l’étape 3. Ici, dans l’URL du hub, je collerai cette adresse, et après que mon code soit terminé, je vais aller au fichier et exécuter cela en tant qu’application.
D’accord, donc maintenant que je vois que l’application est en cours d’exécution, je vais aller dans mon navigateur Chrome, et je vais coller l’adresse que j’ai reçue depuis le prompt de commandes. C’est l’adresse de Selenium que je vois et les sessions sont en cours d’exécution. Dans l’aperçu, je peux voir que des schémas complets pour Chrome ont été créés. Et dans les sessions, mon cas de test par défaut est actif. Vous pouvez aussi voir la page Web.
Rôles du Grid
Le Grid est composé de six composants différents, ce qui vous permet de déployer vos exécutions d’automatisation de tests de diverses manières. Vous pouvez les démarrer individuellement ainsi que les grouper en tant que hub ou les exécuter sur une seule machine.
1. Autonome
En intégrant toutes les composantes du Grid de manière transparente, l’autonome fonctionne comme une entité unique. En démarrant le mode autonome, vous déployez facilement un Grid opérationnel complet avec une seule commande, tout cela dans un seul processus. Il est important de noter que l’autonome ne peut être exécuté qu’ sur une seule machine.
java -jar selenium-server-<version>.jar standalone
2. Hub et Nœud
Le hub et le nœud sont les composants les plus populaires et les plus largement utilisés. Ils permettent aux utilisateurs de combiner différentes machines avec différents systèmes d’exploitation et des versions différentes de navigateurs. En conséquence, vous obtiendrez une seule entrée pour exécuter des tests WebDriver dans plusieurs environnements.
Le hub
est composé de Routeur
, Distributeur
, Bus d'événements
et File de sessions
:
java -jar selenium-server-<version>.jar hub
node
détecte plusieurs pilotes disponibles à partir du chemin système.
java -jar selenium-server-<version>.jar node
Résumé
Enfin, pour résumer, Selenium Grid facilite l’exécution en parallèle de multiples tests sur plusieurs navigateurs et plateformes, en utilisant l’architecture hub-node. Le hub sert de référentiel central pour les tests, tandis que les nœuds agissent comme des instances Selenium, exécutant ces tests à la demande du hub. L’installation de Selenium Grid consiste à télécharger le fichier JAR du serveur Selenium, le même fichier utilisé pour exécuter les tests Selenium RC. Pour vérifier si le hub est opérationnel ou non, cela peut être réalisé à travers le prompt de commandes ou un navigateur Web. Pour exécuter les scripts de test sur le Grid, il est nécessaire d’utiliser les objets DesiredCapabilities
et RemoteWebDriver
. DesiredCapabilities
configure le type de navigateur et le système d’exploitation pour l’automatisation, tandis que RemoteWebDriver
désigne le nœud ou l’ordinateur pour l’exécution de nos tests.