selenium grid tutorial
Introduction à Selenium Grid et comment effectuer des tests entre navigateurs à l'aide de Selenium Grid:
Nous sommes maintenant proches de la fin de cette série complète de didacticiels Selenium . La semaine prochaine, nous conclurons cette série de formation en ligne sur Selenium avec des didacticiels «Estimation de l'effort des projets Selenium» et «Questions et réponses d'entrevue avec Selenium».
Aujourd'hui, dans ce tutoriel, nous allons vous présenter Grille de sélénium - a exécution de test distribuée environnement pour accélérer l'exécution d'un test réussi. Découvrez comment effectuer des tests sur plusieurs navigateurs à l'aide de Selenium Grid.
Ce que vous apprendrez:
- Quel est le besoin de la grille de sélénium?
- Avantages de la grille de sélénium
- Installez Selenium GRID
- Navigateur et nœuds
- maxInstances
- maxSession
- Exemple de code de grille
- Configuration à l'aide d'un fichier JSON
- Conclusion
- lecture recommandée
Quel est le besoin de la grille de sélénium?
Alors que vous traversez tout Tutoriels Selenium WebDriver vous découvrirez que WebDriver exécutera vos cas de test sur une seule machine.
Voici quelques problèmes avec une telle configuration:
- Que faire si vous souhaitez exécuter vos scénarios de test pour différents systèmes d'exploitation?
- Comment exécuter vos cas de test dans les différentes versions du même navigateur?
- Comment exécuter vos cas de test dans plusieurs navigateurs?
- Pourquoi un scénario devrait-il attendre l'exécution d'autres cas de test même s'il ne dépend d'aucun cas de test?
Tous ces problèmes sont traités dans Selenium GRID.
Au fur et à mesure que nous poursuivrons le cours Selenium, nous aurons une idée de la manière dont nous pouvons surmonter ces problèmes. Fondamentalement, l'architecture Grid est basée sur une architecture maître-esclave. La machine maître distribue les cas de test à différentes machines esclaves.
Il existe 2 versions de Grid disponibles. Selenium Grid 2.0 est le dernier né de Selenium. Selenium 1.0 était la version antérieure. La plupart des experts de Selenium préfèrent utiliser Selenium Grid 2.0 car il regorge de nouvelles fonctionnalités. Selenium Grid 2.0 prend en charge les scripts Selenium RC et Selenium WebDriver.
Outil recommandé:
# 1) Test Lambda
Effectuez des tests d'automatisation Selenium sur une grille Selenium en ligne évolutive, sécurisée et fiable basée sur le cloud. Accélérez votre automatisation des tests Selenium en même temps augmentez votre couverture de test en testant sur une infrastructure en ligne de plus de 2000 environnements de navigateur de bureau et mobiles.
Suggestion de lecture = >> Automatisez les tests du navigateur avec LambdaTest
Avantages de la grille de sélénium
- Selenium Grid donne la flexibilité de distribuer vos cas de test pour exécution.
- Réduit le temps de traitement par lots.
- Peut effectuer des tests multi-navigateurs.
- Peut effectuer des tests multi-OS.
Terminologie de base de la grille de sélénium:
Moyeu : Hub est le point central de toute l'architecture GRID qui reçoit toutes les demandes. Il n'y a qu'un seul hub dans la grille de sélénium. Hub distribue les cas de test sur chaque nœud.
Nœud : Il peut y avoir plusieurs nœuds dans Grid. Les tests s'exécuteront dans les nœuds. Chaque nœud communique avec le concentrateur et effectue le test qui lui est attribué.
Installez Selenium GRID
Étape 1 : Téléchargez le fichier jar Selenium Server à partir du site Web officiel de Selenium, anciennement connu sous le nom de Selenium RC Server, et enregistrez-le à n’importe quel emplacement sur le disque local.
URL du siège social de sélénium: http://www.seleniumhq.org/download/
Étape 2 : Ouvrez l'invite de commande et accédez à un dossier dans lequel se trouve le serveur. Exécutez le serveur en utilisant la commande ci-dessous
java -jar selenium-server-standalone-2.41.0.jar -role hub
Le hub utilisera le port 4444 par défaut. Ce port peut être modifié en passant le numéro de port différent dans l'invite de commande à condition que le port soit ouvert et qu'aucune tâche ne lui ait été attribuée.
Le statut peut être vérifié à l'aide de l'interface Web: http: // localhost: 4444 / grid / console
Étape 3 : Accédez à l'autre ordinateur sur lequel vous souhaitez configurer les nœuds. Ouvrez l'invite de commande et exécutez la ligne ci-dessous.
java -jar selenium-server-standalone-2.41.0.jar -role node -hub http://localhost:4444/grid/register -port 5556
Exécutez le serveur sélénium sur d'autres machines pour démarrer les nœuds.
Navigateur et nœuds
Après avoir démarré le hub et les nœuds sur chaque machine, lorsque vous naviguerez vers GRID Console
Vous trouverez 5 Chrome, 5 Firefox et 1 navigateur IE dans la section Navigateur comme ci-dessous.
Cela indique que par défaut, vous pouvez utiliser 5 Chrome, 5 Firefox et 1 navigateur IE.
Par exemple, si vous souhaitez utiliser uniquement IE, vous pouvez démarrer le nœud en utilisant la commande ci-dessous:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=iexplore
Vérifiez le type de navigateur ainsi que d'autres détails dans GRID Console en cliquant sur voir la configuration .
De même pour Firefox:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=firefox
Pour Chrome:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=chrome
Il existe quelques scénarios où vous pourriez avoir besoin du navigateur de chaque type, à savoir: IE, Chrome et Firefox.
Par exemple, vous devrez peut-être utiliser 1 navigateur Internet Explorer et 1 navigateur Firefox et 1 navigateur Chrome
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=iexplore -browser browserName=firefox -browser browserName=chrome
maxInstances
maxInstance est utilisé pour limiter le nombre d'initialisations du navigateur dans un nœud.
Par exemple, si vous souhaitez travailler avec 2 Firefox et 2 IE, vous pouvez démarrer le nœud en utilisant maxInstance.
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=firefox,maxInstance=3
L'instance maximale peut être vérifiée sous l'onglet de configuration.
De même, d'autres instances de navigateur peuvent être configurées à l'aide de maxInstances.
maxSession
maxSession est utilisé pour configurer le nombre de navigateurs pouvant être utilisés en parallèle dans le système distant.
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=chrome,maxInstance=3 -browser browserName=firefox,maxInstance=3 –maxSession 3
De même, vous pouvez démarrer plusieurs nœuds et la configuration peut être vérifiée dans la console.
NODE1:
NODE2:
Exemple de code de grille
Ici, j'ai utilisé TestNG pour exécuter un exemple de cas de test GRID.
Prérequis : Créez le Hub et les nœuds comme expliqué précédemment et TestNG doit être configuré dans eclipse.
Ici, j'ai pris un exemple de test pour me connecter à Gmail et entrer le nom d'utilisateur et le mot de passe
public class GridExample { @Test public void mailTest() throws MalformedURLException{ DesiredCapabilities dr=null; if(browserType.equals('firefox')){ dr=DesiredCapabilities.firefox(); dr.setBrowserName('firefox'); dr.setPlatform(Platform.WINDOWS); }else{ dr=DesiredCapabilities.internetExplorer(); dr.setBrowserName('iexplore'); dr.setPlatform(Platform.WINDOWS); } RemoteWebDriver driver=new RemoteWebDriver(new URL('http://localhost:4444/wd/hub'), dr); driver.navigate().to('http://gmail.com'); driver.findElement(By.xpath('//input(@id='Email')')) .sendKeys('username'); driver.findElement(By.xpath('//input(@id='Passwd')')) .sendKeys('password'); driver.close(); }
Comme dans l'exemple, vous devez utiliser RemoteWebDriver si vous utilisez le GRID et vous devez fournir des fonctionnalités au navigateur. Vous devez configurer le navigateur et la plate-forme comme ci-dessus.
C ++ 11 questions d'entretien
Dans cet exemple, j'ai utilisé la plate-forme sous WINDOWS. Vous pouvez utiliser n'importe quelle plate-forme selon vos besoins.
Une version du navigateur peut également être définie en utilisant dr.setVersion («version»)
Pour l'instance, vous devez exécuter ce test en série dans plusieurs navigateurs, vous devez configurer votre testng.xml.Below est la suite testng.XML pour le test ci-dessus pour exécuter votre test en série.
Pour exécuter le test en parallèle, vous devez modifier votre testng.xml comme ci-dessous.
Ici, dans le testng.XML, vous devez spécifier le paramètre comme Parllel = «Tests» et nombre de threads = '3' décrit le nombre maximum de threads à exécuter en parallèle.
Configuration à l'aide d'un fichier JSON
La grille peut également être lancée avec sa configuration à l'aide d'un fichier de configuration JSON.
Créez un fichier JSON pour avoir la configuration ci-dessous. Ici, j'ai créé un fichier JSON nommé grid_hub.json
{ 'host': null, 'port': 4444, 'newSessionWaitTimeout': -1, 'servlets' : (), 'prioritizer': null, 'capabilityMatcher': 'org.openqa.grid.internal.utils.DefaultCapabilityMatcher', 'throwOnCapabilityNotPresent': true, 'nodePolling': 5000, 'cleanUpCycle': 5000, 'timeout': 300000, 'maxSession': 5 }
Démarrez le hub en utilisant la commande ci-dessous
java -jar selenium-server-standalone-2.41.0.jar -role hub –hubConfig grid_hub.json
De même, créez un fichier json différent pour différents nœuds selon la configuration requise.
Voici un exemple de fichier de configuration JSON pour le nœud nommé grid_node.json
{ 'capabilities': ( { 'browserName': 'chrome', 'maxInstances': 2 }, { 'browserName': 'firefox', 'maxInstances': 2 }, { 'browserName': 'internet explorer', 'maxInstances': 1 } ), 'configuration': { 'nodeTimeout':120, 'port':5555, 'hubPort':4444, 'hubHost':'localhost', 'nodePolling':2000, 'registerCycle':10000, 'register':true, 'cleanUpCycle':2000, 'timeout':30000, 'maxSession':5, } }
Pour démarrer le nœud
java -jar selenium-server-standalone-2.41.0.jar -role rc –nodeConfig grid_node.json
Vous pouvez modifier toute la configuration d'un navigateur, maxInstances, port, maxSession etc. dans le fichier JSON.
Vous pouvez fournir la version du navigateur, la plate-forme dans le fichier de configuration JSON comme ci-dessous:
{
'BrowserName': 'chrome', 'version': '8', 'platform': 'Windows'
}
Conclusion
Il est conseillé de utilisez Selenium Grid lorsque vous devez effectuer des tests multi-navigateurs et que vous disposez d'un grand nombre de cas de test.
Dans ce module, nous avons expliqué comment configurer le hub et les nœuds Grid, ainsi que comment exécuter des cas de test Grid à l'aide du fichier testng.XML et JSON.
Tutoriel suivant # 30 : Test d'automatisation avec l'outil Selenium et Cucumber . Concombre est un test BDD outil et cadre. Nous allons apprendre les fonctionnalités de l'outil Cucumber et son utilisation dans des scénarios en temps réel, y compris comment intégrer Selenium WebDriver avec Cucumber .
Veuillez poster vos questions relatives à Selenium Grid dans les commentaires ci-dessous.
lecture recommandée
- Tutoriel Docker Selenium: Comment intégrer Selenium Grid avec Docker
- Test d'automatisation à l'aide de l'outil Cucumber et du sélénium - Tutoriel Selenium # 30
- Tutoriel Cucumber Selenium: Intégration Cucumber Java Selenium WebDriver
- Spock pour l'intégration et les tests fonctionnels avec sélénium
- Tutoriels Eclipse détaillés pour les débutants
- Introduction à Selenium WebDriver - Tutoriel Selenium # 8
- Tutoriel Geb - Test d'automatisation du navigateur à l'aide de l'outil Geb
- Tutoriel Parrot QA: Revue de l'outil de test fonctionnel Cross Browser