what is headless browser
Ce tutoriel explique ce qu'est un navigateur sans tête, ses avantages, des exemples et des tests de navigateur sans tête avec Selenium. Vous découvrirez également HtmlUnitDrvier:
Au cours des dernières années, nous avons vu le Web évoluer de sites Web simples à très avancés construits avec une belle interface utilisateur. En bref, de nos jours, JavaScript contrôle extrêmement bien le Web afin de pouvoir gérer presque toutes les interactions sur les sites Web.
Aujourd'hui, nous pouvons voir que les navigateurs sont si efficaces qu'ils peuvent facilement comprendre comment traiter JavaScript. En coordination avec JavaScript, un navigateur est pris en charge par programme. Les navigateurs sans tête sont considérés comme très utiles pour les tests de navigateurs Web car ils améliorent nos efforts.
qu'est-ce que dev c ++
Ce que vous apprendrez:
- Qu'est-ce qu'un navigateur sans tête?
- Conclusion
Qu'est-ce qu'un navigateur sans tête?
Sans tête - Oh oui, vous avez bien lu. Headless, signifie un navigateur Web sans interface utilisateur. Pour préciser, les navigateurs sans tête sont ceux qui accèdent réellement à la page Web, mais l'interface graphique est cachée à l'utilisateur.
Un navigateur sans tête est comme n'importe quel autre navigateur, la seule différence est que nous ne pouvons rien voir à l'écran. Ici, nous pouvons dire que le programme s'exécute réellement dans le backend et que rien ne peut être affiché à l'écran. Ainsi, il est connu pour être celui sans tête / GUI.
Tout comme un navigateur normal, un navigateur sans tête exécute toutes les fonctions telles que cliquer sur des liens, naviguer dans les pages, télécharger le document, télécharger un document, etc. en exécutant toutes les instructions selon notre programme.
Un navigateur normal procéderait à chaque étape du programme avec une présentation GUI, alors que pour un navigateur sans tête, toutes les étapes du programme sont effectuées séquentiellement et correctement et nous pouvons en garder une trace à l'aide d'une console ou d'une commande. interface de ligne.
Avantages du navigateur sans tête
#1) Les navigateurs sans tête sont utilisés lorsque la machine n'a pas d'interface graphique, c'est-à-dire que lorsque Linux (un système d'exploitation sans interface graphique) est exécuté via l'interface de ligne de commande et n'a en fait aucune interface à afficher.
#deux) En outre, ceux-ci peuvent être utilisés dans un cas où il n'est pas nécessaire de voir quoi que ce soit et notre but est simplement de nous assurer que tous les tests sont exécutés avec succès ligne par ligne.
# 3) Lorsqu'il est nécessaire d'exécuter des tests parallèles, les navigateurs basés sur l'interface utilisateur consomment beaucoup de mémoire et / ou de ressources. Par conséquent, ici, le navigateur Headless est préférable d'utiliser.
# 4) Si nous voulons effectuer des tests de régression pour les prochaines versions à venir avec intégration continue et que nous en avons terminé avec les tests de navigateurs croisés, alors les tests de navigateur sans tête peuvent être utilisés.
# 5) Si nous souhaitons simuler plusieurs navigateurs sur une seule machine ou exécuter des cas de test uniquement pour la création de données, nous utilisons des navigateurs sans tête.
# 6) Par rapport aux navigateurs réels, les navigateurs sans tête sont plus rapides. Ainsi, ceux-ci sont choisis pour une exécution plus rapide.
Inconvénients du navigateur sans tête
#1) Bien que les navigateurs sans tête soient très rapides, il y a encore quelques inconvénients. En raison de sa capacité de chargement de page plus rapide, il est parfois difficile de déboguer les problèmes.
#deux) Real Browser Testing comprend la réalisation de cas de test en présence d'une interface graphique. En outre, ces tests sont effectués devant l'utilisateur, ce qui permet à l'utilisateur d'interagir avec l'équipe, en se référant à l'interface graphique et en discutant des changements ou des corrections nécessaires. Dans un tel cas, les navigateurs sans tête ne peuvent pas être utilisés.
# 3) Comme les navigateurs sans tête ne représentent pas l'interface graphique, il est difficile de signaler les erreurs à l'aide de captures d'écran. Un vrai navigateur aide à présenter les défauts en générant des captures d'écran, car les captures d'écran sont un must dans les tests.
# 4) Dans le cas où beaucoup de débogage du navigateur est nécessaire, l'utilisation de navigateurs sans tête peut être difficile.
Exemples de navigateurs sans tête
Il existe différents navigateurs sans tête disponibles.
Voici quelques exemples:
Avantages et inconvénients des bases de données relationnelles ou non relationnelles
- Navigateurs d'unités HTML
- Firefox
- Chrome
- PhantomJS
- Zombie.js
- TrifleJS
- SlimerJS
- Éclaboussure
- SimpleBrowser
- NodeJS
Test sans tête avec du sélénium
Selenium est un outil de test gratuit et open source. C'est un outil d'automatisation assez connu et efficace pour effectuer des tests d'automatisation.
Selenium nous permet d'écrire des scripts de test dans divers langages comme Java, Python, C #, Ruby, Perl, Scala, etc. en prenant en charge de nombreux navigateurs comme Firefox, Chrome, Internet Explorer, Opera, Safari, etc. et est capable de fonctionner sous Windows , Linux et macOS.
Selenium Webdriver fournit une bonne prise en charge des pages Web dynamiques, où divers éléments Web changent sans que la page elle-même ne soit rechargée.
Chrome sans tête et Firefox
Firefox, ainsi que les navigateurs Chrome, prennent en charge les tests d'automatisation Headless qui sont une implémentation du code dans Firefox et Chrome sans interface graphique.
Exemple de Firefox sans tête
Headless Firefox prend en charge les versions à partir de 56 et est disponible sur Windows, Linux et macOS. Nous devons télécharger le fichier geckodriver.exe de la dernière version de Firefox et nous assurer que la version que nous utiliserons est supérieure à la version minimale prise en charge. Firefox fonctionne en mode sans tête via la méthode headless ().
Voyons le code du navigateur Firefox en mode sans tête:
package headless_testing; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class HeadlessFirefox { public static void main(String() args) { // TODO Auto-generated method stub System.setProperty('webdriver.gecko.driver',' E://Selenium/latest firefox exe/geckodriver.exe'); FirefoxOptions options = new FirefoxOptions(); options.setHeadless(true); WebDriver driver = new FirefoxDriver(options); driver.get('www.google.com/'); System.out.println('Executing Firefox Driver in Headless mode..
'); System.out.println('>> Page Title : '+driver.getTitle()); System.out.println('>> Page URL : '+driver.getCurrentUrl()); } }
Lors de l'exécution du code ci-dessus pour le navigateur Firefox en mode sans tête, le titre de la page et son URL s'affichent. Le code est exécuté en mode sans tête et peut être suivi sur la console.
Tout comme Headless Firefox est pris en charge par Selenium, il fonctionne également sur SlimmerJS et W3C WebDrier.
Exemple de Chrome sans tête
Headless Chrome prend en charge les versions 60 et suivantes de Chrome et est disponible pour Windows, Linux et macOS. Nous devons télécharger le fichier .exe de la dernière version du navigateur Chrome.
Vous trouverez ci-dessous la syntaxe pour utiliser Chrome en mode sans tête:
ChromeOptions options = new ChromeOptions(); options.addArguments(“--headless”); OR options.setHeadless(true);
Voyons le code du navigateur Chrome en mode sans tête:
package headless_testing; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; public class HeadlessChrome { public static void main(String() args) { // TODO Auto-generated method stub System.setProperty('webdriver.chrome.driver','E://Selenium/latest chrome exe/chromedriver.exe'); ChromeOptions options = new ChromeOptions(); options.addArguments('--headless'); WebDriver driver = new ChromeDriver(options); driver.get('www.google.com/'); System.out.println('Executing Chrome Driver in Headless mode..
'); System.out.println('>> Page Title : '+driver.getTitle()); System.out.println('>> Page URL : '+driver.getCurrentUrl()); } }
Lors de l'exécution du code ci-dessus pour le navigateur Chrome en mode sans tête, le titre de la page et son URL s'affichent. Le code est exécuté et l'exécution peut être suivie sur la console.
Headless HtmlUnitDriver
Qu'est-ce que HtmlUnitDriver?
HtmlUnitDriver est un navigateur Web Headless écrit en Java. Le nom suggère qu'il s'agit d'un pilote Headless basé sur HtmlUnit. HtmlUnitDriver est un navigateur sans tête intégré dans Selenium WebDriver. Il est considéré comme le navigateur le plus léger et le plus rapide.
Passons à l'implémentation de HtmlUnitDriver. Les fichiers JAR HtmlUnitDriver peuvent être téléchargés à partir du site officiel de Selenium.
HtmlUnitDriver en mode sans tête
Comme tous les autres navigateurs, pour le HtmlUnitDriver également, nous devons créer un objet pour que la classe exécute le code en mode sans tête.
package headless_testing; import org.openqa.selenium.WebDriver; import org.openqa.selenium.htmlunit.HtmlUnitDriver; public class HtmUnitDriver { public static void main(String() args) { // TODO Auto-generated method stub WebDriver driver = new HtmlUnitDriver(); driver.get('https://www.google.com/'); System.out.println('Executing HtmlUnitDriver in Headless mode..
'); System.out.println('>> Page Title : '+ driver.getTitle()); System.out.println('>> Page URL : '+ driver.getCurrentUrl()); } }
Ainsi lors de l'exécution du code ci-dessus pour HtmlUnitDriver en mode Headless, la sortie reçue affiche le titre de la page et son URL. La sortie est reçue via la console où toutes les fonctions exécutées dans le programme peuvent être visualisées par étapes.
Ci-dessous, la capture d'écran du code exécuté ci-dessus:
Caractéristiques / avantages de HtmlUnitDriver
(image la source )
- Fournit la prise en charge des protocoles HTTPS et HTTP.
- Excellent support pour JavaScript.
- Aide au multitâche, permettant ainsi d'exécuter plusieurs tests.
- Fournit un support pour les cookies. En outre, prend en charge les serveurs proxy.
- Améliore les performances et la vitesse des scripts de test, car il a l'implémentation la plus rapide de WebDriver.
- HtmlUnitDriver est indépendant de la plate-forme.
- Comme il est sans tête par défaut, il prend en charge les tests sans tête.
Inconvénients de HtmlUnitDriver
- L'utilisation de HtmlUnitDriver n'est pas possible pour les sites Web complexes.
- En comparant avec un vrai test de navigateur, pour les navigateurs sans tête comme HtmlUnitDriver, il devient très difficile de déboguer le script.
- La génération de captures d'écran n'est pas possible avec HtmlUnitDriver.
- Les navigateurs sans tête émulent d'autres navigateurs.
Conclusion
Les tests de navigateur sans tête sont en fait plus rapides, en fournissant une grande vitesse et une grande efficacité, mais ils ne parviennent pas à atteindre certaines fonctionnalités spécifiques qui sont en effet remplies par un navigateur sans tête / réel.
implémentation de liste double chaînée c ++
Headless Browser a ses propres avantages tandis que Real Browser a les siens. Selon le besoin de test, on peut choisir la technique qui est préférable et avantageuse pour le testeur.
Par exemple: Dans le cas où il existe une implication de l'utilisateur, le test Real Browser peut être choisi. S'il n'y a pas d'exigences de présentation de l'interface utilisateur pour effectuer les tests rapidement, vous pouvez alors opter pour les tests du navigateur sans tête.
Un test plus efficace serait celui qui combine à la fois Headless et Real Browser. De ce fait, surmonter les limites de chacun individuellement.
J'espère que ce tutoriel aurait clarifié toutes vos requêtes sur les tests de navigateur sans tête et de navigateur sans tête !!
lecture recommandée
- 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
- Tutoriel Browserstack: Plateforme de test d'applications et de navigateurs (GUIDE)
- Tutoriel IE Tester - Test du navigateur Internet Explorer en ligne
- Test de charge avec de vrais navigateurs utilisant l'élément Tricentis Flood
- Tutoriel Selenium Grid: configuration et exemple de test de navigateur croisé
- Top 10 des outils de test multi-navigateurs en 2021 (dernier classement)
- Qu'est-ce que le test croisé et comment le réaliser: un guide complet