Test du navigateur sans tête Selenium: HTMLUnitDriver & PhantomJS

Table des matières:

Anonim

Le pilote Web Selenium est un outil d'automatisation Web qui vous permet d'exécuter les tests sur différents navigateurs. Ces navigateurs peuvent être Internet Explorer, Firefox ou Chrome. Pour utiliser un navigateur particulier avec Selenium, vous avez besoin du pilote correspondant.

Lors du test, Selenium lance le navigateur correspondant appelé dans le script et exécute les étapes de test. Vous pouvez voir le navigateur et l'exécution du test en action.

Qu'est-ce que le navigateur sans tête?

Un navigateur sans tête est un navigateur Web sans interface utilisateur graphique . Ce programme se comportera comme un navigateur mais n'affichera aucune interface graphique.

Certains des exemples de pilotes sans tête incluent

  • HtmlUnit
  • Fantôme
  • PhantomJS
  • ZombieJS
  • Pilote Web Watir

Dans ce tutoriel, nous nous concentrerons sur HtmlUnit et PhatomJS

HTMLUnitDriver

HTML UnitDriver est le navigateur sans tête d'implémentation le plus léger et le plus rapide de WebDriver. Il est basé sur HtmlUnit. Il est connu sous le nom de pilote de navigateur sans tête . C'est le même que le pilote Chrome, IE ou FireFox, mais il n'a pas d'interface graphique, donc on ne peut pas voir l'exécution du test à l'écran.

Caractéristiques du pilote d'unité HTML

  • Prise en charge des protocoles HTTPS et HTTP
  • Prise en charge des réponses HTML (cliquer sur des liens, soumettre des formulaires, parcourir le modèle DOM du document HTML, etc.)
  • Prise en charge des cookies
  • Prise en charge du serveur proxy
  • Prise en charge de l'authentification de base et NTLM
  • Excellent support JavaScript
  • Prise en charge des méthodes d'envoi GET et POST
  • Possibilité de personnaliser les en-têtes de demande envoyés au serveur
  • Capacité à déterminer si les réponses échouées du serveur doivent lever des exceptions ou être renvoyées sous forme de pages du type approprié

Étapes pour utiliser le pilote HTMLUnit avec Selenium

Étape 1) Dans Eclipse, copiez le code suivant. Ajoutez les fichiers de bibliothèque de sélénium standard au projet. Aucun fichier jar supplémentaire n'est requis.

package htmldriver;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.htmlunit.HtmlUnitDriver;classe publique htmlUnitYest {public static void main (String [] args) {// Création d'une nouvelle instance du pilote d'unité HTMLPilote WebDriver = nouveau HtmlUnitDriver ();// Accédez à Googledriver.get ("http://www.google.com");// Localise la boîte de recherche en utilisant son nomÉlément WebElement = driver.findElement (By.name ("q"));// Entrez une requête de rechercheelement.sendKeys ("Guru99");// Soumettez la requête. Webdriver recherche automatiquement le formulaire à l'aide de l'élément de saisie de texte// Pas besoin de localiser / trouver le bouton d'envoielement.submit ();// Ce code imprimera le titre de la pageSystème. out .println ("Le titre de la page est: + driver.getTitle ());driver.quit ();}}

Étape 2) Exécutez le code. Vous observerez qu'aucun navigateur n'est lancé et les résultats sont affichés dans la console.

Avantages du pilote d'unité Html:

  • Puisqu'il n'utilise aucune interface graphique pour tester, vos tests s'exécuteront en arrière-plan sans aucune interruption visuelle
  • Par rapport à toutes les autres instances, l'exécution est plus rapide
  • Pour exécuter vos tests via le pilote HtmlUnit, vous pouvez également sélectionner d'autres versions de navigateur
  • Il est indépendant de la plate-forme et plus facile d'exécuter plusieurs tests simultanément. Idéal pour les tests de charge.

Limites:

  • Il ne peut pas émuler le comportement JavaScript d'autres navigateurs

PhantomJS

PhantomJS est un navigateur sans tête avec API JavaScript. C'est une solution optimale pour les tests de sites Web sans tête, l'accès et la manipulation des pages Web et est livré avec l'API DOM standard.

Pour utiliser PhantomJS avec Seleniun, il faut utiliser GhostDriver. GhostDriver est une implémentation du protocole Webdriver Wire en JS simple pour PhantomJS.

La dernière version de PhatomJS a intégré GhostDriver et il n'est pas nécessaire de l'installer séparément.

Voici comment fonctionne le système-

Étapes pour exécuter Selenium avec PhatomJS

Étape 1) Vous avez besoin d'Eclipse avec Selenium installé

Étape 2) Téléchargez PhantomJS ici

Étape 3) Extrayez le dossier téléchargé dans Program Files

Étape 4) Téléchargez le pilote PhantomJS à partir d'ici. Ajoutez le pot à votre projet

Étape 5) Collez le code suivant dans eclipse

package htmldriver;import java.io.File;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.phantomjs.PhantomJSDriver;fantôme de classe publique {public static void main (String [] args) {Fichier fichier = nouveau fichier ("C: / Program Files / phantomjs-2.0.0-windows / bin / phantomjs.exe");System.setProperty ("phantomjs.binary.path", file.getAbsolutePath ());Pilote WebDriver = nouveau PhantomJSDriver ();driver.get ("http://www.google.com");Élément WebElement = driver.findElement (By.name ("q"));element.sendKeys ("Guru99");element.submit ();System.out.println ("Le titre de la page est: + driver.getTitle ());driver.quit ();}}

Étape 6) Exécutez le code. Vous observerez que la sortie est affichée dans la console et qu'aucun navigateur n'est lancé.

REMARQUE : lors de la première exécution, en fonction de vos paramètres, vous pouvez recevoir un avertissement de sécurité de Windows pour autoriser l'exécution de PhantomJS. Cliquez sur Autoriser l'accès.

De nombreuses organisations utilisent Phantom.JS à des fins diverses, par exemple,

  • Test sans tête
  • Capture d'écran
  • Automatisation de la page
  • Surveillance du réseau
  • Pour rendre des captures d'écran du tableau de bord pour leurs utilisateurs
  • Pour exécuter des tests unitaires sur la ligne de commande
  • Pour générer des manuels d'employés du HTML au PDF
  • Combiné avec QUnit pour la suite de tests

Résumé

Pour tester rapidement l'application dans divers navigateurs et sans aucune interruption visuelle, le test de navigateur sans tête est utilisé. En raison de sa vitesse, de sa précision et de ses fonctionnalités faciles d'accès, le pilote d'unité HTML et PhantomJS gagnent en popularité pour les tests de navigateur sans tête. En suivant quelques étapes simples, vous découvrez avec quelle facilité ces outils peuvent être intégrés à d'autres outils et exécuter le code de test.