Exécution parallèle de Selenium pour les nuls

Ce blog a été mis à jour le 30 août 2020. Pour consulter la version la plus récente, veuillez lire : ici.

Selenium est un outil d'automatisation des tests open source qui a gagné en popularité ces derniers temps dans le milieu des tests. Selenium propose une suite d'outils permettant aux organisations d'intégrer l'automatisation des tests à leurs systèmes. Pipeline CI / CD et exécuter des opérations parallèles Selenium sur différents appareils et navigateurs fonctionnant sur différentes plateformes.

Nous savons que nombre de nos lecteurs habituels connaissent déjà ces concepts. Cet article se veut une introduction pour les débutants, ainsi qu'une piqûre de rappel pour ceux qui ont l'habitude de travailler avec Selenium, mais qui ne l'ont pas réutilisé pour diverses raisons.

Cet outil est plus populaire car il prend en charge tous les principaux langages de programmation tels que JavaJavaScriptC#RubyPythonPerlVous pouvez donc écrire du code dans votre langage actuel et l'exécuter facilement avec Selenium. De plus, il est compatible avec tous les principaux navigateurs, tels que… Chrome OpéraInternet ExplorerFirefox et Safarice qui signifie que vous pouvez utiliser un seul script de code et l'exécuter facilement. tests multi-navigateurs au lieu d'écrire des scripts différents pour chaque navigateur.

Selenium est non seulement open source et librement accessible, mais il est également très portable. Cela signifie que vous pouvez l'exécuter sur tous les principaux systèmes d'exploitation tels que LinuxMACFenêtres et UNIXSelenium vous permet de l'intégrer à une multitude de frameworks afin de réutiliser le code ou de créer des rapports personnalisés. Vous pouvez l'intégrer à Jenkins Outil CI/CD ou ajouter TestNG Pour générer des rapports, Selenium est simple à installer et à utiliser. Son interface intuitive permet de gérer facilement les environnements de test. Une communauté importante et dynamique est toujours prête à vous aider.

Exécution de tests en parallèle avec Selenium

Dans le pré-DevOps et avant l'ère Agile, où l'architecture monolithique dominait les méthodes de développement logiciel, les tests séquentiels étaient tout à fait pertinents. Cependant, l'avènement de DevOps et agile les pratiques ont apporté intégration continue et des tests continus sont entrés en ligne de compte. Aujourd'hui, test continu La scalabilité et l'évolutivité sont des impératifs essentiels, et les tests séquentiels ne permettent pas de répondre à ces exigences de développement en constante évolution. L'exécution parallèle de Selenium permet aux organisations d'exécuter simultanément des tests en parallèle sur différents appareils et navigateurs réduire considérablement les délais de test.

Les tests parallèles sont une méthode d'automatisation qui consiste à exécuter simultanément des cas de test sur de multiples combinaisons de navigateurs, de systèmes d'exploitation et d'appareils. On utilise généralement des machines virtuelles pour l'exécution parallèle des tests, car elles permettent de simuler des centaines d'environnements de test. Les tests séquentiels sont chronophages. En revanche, avec les tests parallèles, il suffit d'écrire un seul script et de l'exécuter plusieurs fois. Une fois les scripts de test prêts, le processus de test devient beaucoup plus simple.

Tester de cette manière permet d'accélérer la mise sur le marché. De plus, c'est rentable car vous pouvez utiliser un environnement de test cloud et un paiement à l'utilisation. Cela offre une meilleure couverture car vous pouvez l'essayer sur différents appareils, navigateurs et plateformes. L'exécution parallèle de Selenium optimise également les processus CI/CD.

C'est également essentiel en raison de la croissance plate-forme numérique Segmentation. Si les systèmes d'exploitation de bureau ont longtemps dominé le monde informatique, la plateforme mobile s'impose rapidement. Windows reste le leader des systèmes d'exploitation de bureau, tandis qu'Android domine le marché des systèmes d'exploitation mobiles. Face à la multitude d'appareils, de plateformes et de navigateurs, les développeurs doivent relever le défi d'adapter dynamiquement la taille, la résolution et les éléments d'écran. De plus, le comportement du CSS diffère selon les navigateurs. Si la conception adaptative (responsive design) résout certains problèmes pour les développeurs, elle les transfère aux équipes de test. Aujourd'hui, ces dernières doivent exécuter des scripts dans tous les environnements et scénarios. Tests multi-navigateurs Il s'agit d'une exigence essentielle. Afin de gagner du temps et de réduire les efforts, les équipes d'assurance qualité doivent exécuter les tests en parallèle, et les tests parallèles avec Selenium constituent une excellente option à cet égard.

TestNG est un framework d'automatisation des tests qui permet d'organiser efficacement vos tests tout en préservant leur lisibilité. Grâce à sa prise en charge des tests parallèles, TestNG simplifie leur exécution. À l'aide d'un fichier XML prédéfini, vous pouvez spécifier les attributs de parallélisation pour les classes, les tests et les méthodes. La fonctionnalité multithread de Java vous permet de définir le nombre de threads pour les tests parallèles.

Voici un tutoriel étape par étape sur l'exécution de tests parallèles Selenium.

  1. Installation de Java et configuration des variables d'environnement
  2. Installation de Selenium
  3. Installation de l'IDE Eclipse
  4. Installation de TestNG
  5. Exécuter des scripts de test dans Eclipse

Étape 1: Installer Java

Le logiciel Selenium est fourni sous forme de fichier JAR. Par conséquent, vous devez installer Java avant d'utiliser Selenium. Consultez le site web d'Oracle pour plus d'informations. télécharger Java. 

Exécution parallèle Selenium - Java

  1. Choisissez la version adaptée à votre système d'exploitation. Par exemple, le programme d'installation Windows x64.
  2. Acceptez le contrat de licence et téléchargez le fichier.
  3. Une fois le fichier téléchargé, double-cliquez dessus pour lancer la procédure d'installation.
  4. Choisissez le dossier de destination et cliquez sur Suivant.
  5. Le processus d'installation commence.
  6. Une fois l'installation terminée, cliquez sur Terminer.

Configurer les variables d'environnement Java

Pour configurer les variables d'environnement Java :

  1. Cliquez avec le bouton droit sur le bouton Démarrer de Windows.
  2. Sélectionnez Système et accédez aux Paramètres système avancés.
  3. Cliquez sur l'onglet Système, puis sur Variables d'environnement.
  4. Accédez à l'onglet des variables système et définissez le chemin d'accès au dossier Java.
  5. Pour vérifier si Java est correctement installé, ouvrez l'invite de commandes et saisissez la commande suivante.
    • Version Java

Exécution parallèle de Selenium version Java

Il a affiché la version de Java et les détails de la compilation. Java est donc maintenant installé sur la machine.

Étape 2 : Installation de Selenium

L'étape suivante consiste à télécharger Selenium. Pour ce faire, Visitez le site Web de Selenium ici.

Selenium Webdriver

La dernière version stable est la 3.141.59. Elle est fournie sous forme de fichier JAR. Téléchargez le fichier et enregistrez-le dans un dossier distinct.

Étape 3 : Installation d'Eclipse

Pour installer l'IDE Eclipse, rendez-vous sur le lien suivant et télécharger l'outil Eclipse.

Éclipse d'exécution parallèle de Selenium

  1. Choisissez le site miroir le plus proche de votre emplacement et téléchargez le logiciel. Double-cliquez sur le fichier pour lancer l'installation.
  2. Lorsque le programme d'installation d'Eclipse démarre, choisissez Eclipse IDE pour développeurs.
  3. Sélectionnez le dossier Eclipse et cliquez sur Installation
  4. Une fois l'installation terminée, cliquez sur Lancer
  5. Lors du premier lancement de l'outil, il vous sera demandé de sélectionner le dossier de votre espace de travail. L'écran d'accueil d'Eclipse ressemble à ceci.
  6. L'environnement de développement intégré Eclipse est maintenant installé avec succès.

Étape 4 : Installation de TestNG

  1. Pour installer TestNG, ouvrez l'IDE Eclipse et cliquez sur Aide
  2. Dans la barre de recherche d'Eclipse Marketplace, saisissez « testng » et cliquez sur « Rechercher ». Le plugin TestNG apparaîtra dans la liste. Cliquez sur « Installer » pour installer TestNG.
  3. Cependant, la nouvelle version d'Eclipse ne propose pas TestNG sur sa plateforme. Dans ce cas, vous pouvez le télécharger directement depuis ce site : http://dl.bintray.com/testng-team/testng-eclipse-release/
  4. Cliquez sur le répertoire compressé
  5. Téléchargez la dernière version sur la page suivante.
  6. Ouvrez maintenant Eclipse, cliquez sur Aide puis sur Installer un nouveau logiciel.
  7. Cliquez sur Ajouter.
  8. Sur l'écran suivant, allez dans Archives.
  9. Sélectionnez le dossier compressé et cliquez sur « Ajouter ». Sur l’écran suivant, sélectionnez TestNG et cliquez sur « Suivant ».
  10. Acceptez le contrat de licence sur l'écran suivant et cliquez sur Suivant.
  11. Une fois l'installation terminée, cliquez sur Terminer, et Eclipse redémarre.

Étape 5 : Exécution parallèle des scripts de test

Ouvrez Eclipse et cliquez sur Fichier -> Créer un nouveau projet Java. Par exemple : ExperitestParallelTesting.

Exécution parallèle de Selenium

Exécution parallèle Selenium

Cliquez sur l'onglet Bibliothèques, puis sur Ajouter une bibliothèque.

Exécution de tests parallèles

Sélectionnez TestNG, cliquez sur Suivant, puis sur Terminer.

Exécution de tests parallèles

TestNG est désormais prêt pour les tests parallèles Selenium.

De même, cliquez sur « Ajouter des fichiers JAR externes » et sélectionnez le fichier JAR du serveur Selenium. Selenium sera ainsi ajouté à votre projet.

Exécution parallèle de Selenium

Maintenant, ouvrez l'explorateur de packages d'Eclipse, faites un clic droit sur votre projet, puis cliquez sur « src » et choisissez « Nouveau » → « Package ». Donnez un nom au package, par exemple : ExperitestParallelTesting.

Exécution parallèle de Selenium

Cliquez sur Nouveau -> Classe et créez une nouvelle classe. Par exemple : Experitestparalleltest.java

Créez maintenant un programme simple qui ouvre un navigateur, accède au site Google et effectue une recherche par mot-clé. Créez ensuite un autre test avec le même code, mais avec un navigateur différent.

Voici le code:

[Java] package ExperitestParallelTesting; import org.openqa.selenium.*; import org.openqa.selenium.remote.BrowserType; import org.openqa.selenium.remote.CapabilityType; import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.RemoteWebDriver; import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.WebDriverWait; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; import java.net.MalformedURLException; import java.net.URL; public class Experitestparalleltest1 { private static final String ACCESS_KEY = "Entrez votre clé d'accès ici."; private URL url; @BeforeTest public void Setup() throws MalformedURLException { url = new URL("https://cloud.seetest.io/wd/hub"); } @Test public void ExperitestGoogleSearch() { RemoteWebDriver driver; DesiredCapabilities dc = new DesiredCapabilities(); dc.setCapability(CapabilityType.BROWSER_NAME, BrowserType.FIREFOX); dc.setCapability(CapabilityType.PLATFORM, Platform.ANY); dc.setCapability("accessKey", ACCESS_KEY); dc.setCapability("testName", "Démo de démarrage rapide du navigateur Firefox"); driver = new RemoteWebDriver(url, dc); driver.get("https://www.google.com"); new WebDriverWait(driver, 10).until(ExpectedConditions.presenceOfElementLocated(By.name(“q”))); WebElement searchBar = driver.findElement(By.name(“q”)); searchBar.click(); searchBar.sendKeys(“Experitest”); searchBar.sendKeys(Keys.ENTER); System.out.print(“Experitest TestCase is running in Thread ” + Thread.currentThread().getId()); driver.quit(); } @Test public void DécouvrirTestGoogleSearch() { RemoteWebDriver driver1; DesiredCapabilities dc1 = new DesiredCapabilities(); dc1.setCapability(CapabilityType.BROWSER_NAME, BrowserType.CHROME); dc1.setCapability(CapabilityType.PLATFORM, Platform.ANY); dc1.setCapability(“accessKey”, ACCESS_KEY); dc1.setCapability("testName", "Démo de démarrage rapide du navigateur Chrome"); driver1 = new RemoteWebDriver(url, dc1); driver1.get("https://www.google.com"); new WebDriverWait(driver1, 10).until(ExpectedConditions.presenceOfElementLocated(By.name("q"))); WebElement searchBar1 = driver1.findElement(By.name("q")); searchBar1.click(); searchBar1.sendKeys("DécouvrirTest"); searchBar1.sendKeys(Keys.ENTER); System.out.print("DécouvrirTest TestCase is running in Thread " + Thread.currentThread().getId()); driver1.quit(); } } [/Java]

Nous avons écrit deux méthodes de test. La première ouvre le navigateur Google Chrome depuis DécouvrirTest Cloud et recherche le terme « Experitest ». La seconde ouvre le navigateur Firefox depuis DécouvrirTest Cloud et recherche le terme « DécouvrirTest ». Les résultats indiquent que ces deux tests ont été réussis.

Exécution parallèle Selenium

Cependant, les tests étaient exécutés séquentiellement. TestNG offre une solution simple pour les exécuter en parallèle. Il permet de spécifier le mode d'exécution des tests dans un fichier XML. Pour ce faire, créez un fichier XML TestNG.

Faites un clic droit sur le projet et cliquez sur Nouveau -> Fichier.

Exécution parallèle du sélénium

Donnez un nom avec une extension XML.

Exécution parallèle Selenium

Vous pouvez également cliquer avec le bouton droit sur le projet, puis cliquer sur TestNG et choisir « Convertir en TestNG ».

Exécution parallèle Selenium

Sur l'écran suivant, choisissez le nom du fichier XML, le nom de la suite, etc.

Exécution parallèle Selenium

Dans l'option « Mode parallèle », vous pouvez visualiser les méthodes, les classes, les tests, etc. Vous pouvez spécifier si l'exécution parallèle doit s'effectuer au niveau des méthodes, des tests ou des classes. Vous pouvez également choisir le nombre de threads. Cliquez sur « Terminer » pour créer le fichier testng.xml.

Maintenant, exécutez le fichier testng.xml.

  Exécution parallèle de Selenium

Notez l'heure de début des deux cas de test. Les deux tests ont démarré simultanément et s'exécutent dans des threads différents (14 et 15).

Le Thread.CurrentThread().getID() Cette fonction vous fournira les détails du thread sur lequel le test est exécuté. C'est ainsi que vous pouvez effectuer une exécution parallèle avec Selenium.

Résumé

Face à l'innovation technologique rapide et constante, de nouvelles technologies font leur apparition sur le marché chaque jour. Avec l'arrivée de nouveaux modèles d'appareils, de navigateurs, de plateformes et l'évolution des exigences en matière de développement web, les entreprises sont confrontées au défi de taille d'exécuter des suites de tests complètes dans une multitude d'environnements. Les tests parallèles Selenium offrent une solution simple et économique pour exécuter simultanément des scripts de test sur plusieurs navigateurs et appareils.

Cependant, l'exécution parallèle de Selenium présente ses propres défis. Pour effectuer des tests mobiles, il est nécessaire de l'intégrer à des outils tels qu'Appium. De même, un outil de reporting et d'analyse est requis. Par conséquent, la mise en place d'un environnement d'automatisation des tests avec plusieurs outils et frameworks constitue une tâche complexe. Plus le nombre de nœuds augmente, plus la vitesse et les performances diminuent.

DécouvrirTest est un framework d'automatisation de tests hautement évolutif DécouvrirTest permet aux équipes d'assurance qualité d'exploiter pleinement les capacités d'exécution parallèle de Selenium. Les tests en temps réel sur des appareils situés partout dans le monde offrent une couverture de test étendue. De plus, vous pouvez les superviser et les gérer depuis un tableau de bord centralisé, tout en générant des rapports personnalisés. Grâce à une équipe d'assistance dédiée, DécouvrirTest simplifie et optimise les tests parallèles.

Mettre en place un environnement de tests continus et tous les outils associés demande du temps et des efforts. Découvrez comment implémenter des tests continus dans ce guide. en direct

Vous aimerez aussi