what is headless browser
Αυτό το σεμινάριο εξηγεί τι είναι το πρόγραμμα περιήγησης χωρίς κεφαλή, τα πλεονεκτήματά του, τα παραδείγματα και τη δοκιμή προγράμματος περιήγησης χωρίς κεφαλή με το σελήνιο. Θα μάθετε επίσης για το HtmlUnitDrvier:
Τα τελευταία χρόνια, έχουμε δει τον ιστό να εξελίσσεται από απλούς σε πολύ προηγμένους ιστότοπους που έχουν κατασκευαστεί με όμορφη διεπαφή χρήστη. Εν ολίγοις, στις μέρες μας η JavaScript ελέγχει τον ιστό πολύ καλά, ώστε να μπορεί να χειρίζεται σχεδόν κάθε αλληλεπίδραση σε ιστότοπους.
Σήμερα, βλέπουμε ότι τα προγράμματα περιήγησης είναι τόσο αποτελεσματικά που μπορούν εύκολα να καταλάβουν πώς να επεξεργαστούν τη JavaScript. Σε συντονισμό με JavaScript, ένα πρόγραμμα περιήγησης φροντίζεται μέσω προγραμματισμού. Τα προγράμματα περιήγησης χωρίς κεφαλή θεωρούνται πολύ χρήσιμα για τη δοκιμή προγράμματος περιήγησης στο Web καθώς βελτιώνουν τις προσπάθειές μας.
ερωτήσεις συνέντευξης συντονισμού απόδοσης oracle dba
Τι θα μάθετε:
- Τι είναι ένα πρόγραμμα περιήγησης χωρίς κεφάλι;
- συμπέρασμα
Τι είναι ένα πρόγραμμα περιήγησης χωρίς κεφάλι;
Headless - Ω Ναι, το διάβασες σωστά. Headless, σημαίνει πρόγραμμα περιήγησης στο Web χωρίς περιβάλλον εργασίας χρήστη. Για να εξηγήσουμε, τα Headless Browsers είναι αυτά που έχουν πρόσβαση στην Ιστοσελίδα, αλλά το GUI είναι κρυμμένο από τον χρήστη.
Ένα πρόγραμμα περιήγησης χωρίς κεφάλι είναι ακριβώς όπως οποιοδήποτε άλλο πρόγραμμα περιήγησης, η μόνη διαφορά είναι ότι δεν μπορούμε να δούμε τίποτα στην οθόνη. Εδώ μπορούμε να πούμε ότι το πρόγραμμα εκτελείται πραγματικά στο backend και τίποτα δεν μπορεί να προβληθεί στην οθόνη. Έτσι, είναι γνωστό ότι είναι αυτό χωρίς Head / GUI.
Ακριβώς όπως ένα κανονικό πρόγραμμα περιήγησης, το Headless Browser εκτελεί όλες τις λειτουργίες όπως κλικ σε συνδέσμους, πλοήγηση σε σελίδες, λήψη του εγγράφου, μεταφόρτωση ενός εγγράφου κ.λπ. εκτελώντας όλες τις οδηγίες σύμφωνα με το πρόγραμμά μας.
Ένα κανονικό πρόγραμμα περιήγησης θα προχωρούσε σε κάθε βήμα του προγράμματος με παρουσίαση GUI, ενώ για ένα πρόγραμμα περιήγησης χωρίς κεφαλή όλα τα βήματα του προγράμματος εκτελούνται διαδοχικά και σωστά και μπορούμε να το παρακολουθούμε με τη βοήθεια μιας κονσόλας ή μιας εντολής- διασύνδεση γραμμής.
Πλεονεκτήματα του Headless Browser
# 1) Τα Headless Browser χρησιμοποιούνται όταν το μηχάνημα δεν έχει GUI, δηλαδή κατά τη χρήση Linux (ένα λειτουργικό σύστημα χωρίς GUI) εκτελείται μέσω της διεπαφής γραμμής εντολών και στην πραγματικότητα δεν έχει διεπαφή για εμφάνιση.
#δύο) Επίσης, αυτά μπορούν να χρησιμοποιηθούν σε περίπτωση που δεν χρειάζεται να δείτε τίποτα και σκοπός μας είναι απλώς να διασφαλίσουμε ότι όλες οι δοκιμές εκτελούνται επιτυχώς γραμμή προς γραμμή.
# 3) Όταν υπάρχει ανάγκη για παράλληλες δοκιμές, τα προγράμματα περιήγησης που βασίζονται σε διεπαφή χρήστη καταναλώνουν πολλή μνήμη και / ή πόρους. Ως εκ τούτου, εδώ το πρόγραμμα περιήγησης Headless προτιμάται να χρησιμοποιείται.
# 4) Εάν θέλουμε να εκτελέσουμε τον έλεγχο παλινδρόμησης για τις επόμενες κυκλοφορίες με συνεχή ενοποίηση και τελειώσαμε με τη δοκιμή Cross Browser, τότε μπορεί να χρησιμοποιηθεί η δοκιμή προγράμματος περιήγησης Headless.
# 5) Εάν θέλουμε να προσομοιώσουμε πολλά προγράμματα περιήγησης σε ένα μηχάνημα ή να εκτελέσουμε δοκιμαστικές περιπτώσεις μόνο για τη δημιουργία δεδομένων, τότε χρησιμοποιούμε προγράμματα περιήγησης χωρίς κεφαλή.
# 6) Σε σύγκριση με τα Real Browsers, τα Headless Browser είναι ταχύτερα. Έτσι, αυτά επιλέγονται για ταχύτερη εκτέλεση.
Μειονεκτήματα του Headless Browser
# 1) Αν και τα προγράμματα περιήγησης χωρίς κεφαλή είναι πολύ γρήγορα, εξακολουθούν να υπάρχουν και ορισμένα μειονεκτήματα. Λόγω της ταχύτερης δυνατότητας φόρτωσης σελίδων, μερικές φορές είναι δύσκολο να εντοπιστεί το πρόβλημα.
#δύο) Το Real Browser Testing περιλαμβάνει εκτέλεση δοκιμαστικών περιπτώσεων παρουσία GUI. Επίσης, αυτές οι δοκιμές εκτελούνται μπροστά από τον χρήστη, επομένως ο χρήστης μπορεί να αλληλεπιδράσει με την ομάδα, παραπέμποντας στο GUI και να συζητήσει πού απαιτούνται πάντα αλλαγές ή διορθώσεις. Σε μια τέτοια περίπτωση, τα Headless Browsers δεν μπορούν να χρησιμοποιηθούν.
# 3) Καθώς τα προγράμματα περιήγησης χωρίς κεφαλή δεν αντιπροσωπεύουν GUI, είναι ενοχλητικό να αναφέρετε σφάλματα με τη βοήθεια στιγμιότυπων οθόνης. Ένα πραγματικό πρόγραμμα περιήγησης βοηθά στην παρουσίαση των ελαττωμάτων δημιουργώντας στιγμιότυπα οθόνης, καθώς τα στιγμιότυπα οθόνης είναι απαραίτητα κατά τη δοκιμή.
# 4) Σε περίπτωση που απαιτείται πολλή αποσφαλμάτωση του προγράμματος περιήγησης, η χρήση των Headless Browsers μπορεί να είναι δύσκολη.
Παραδείγματα προγραμμάτων περιήγησης χωρίς κεφαλή
Υπάρχουν διάφορα προγράμματα περιήγησης Headless.
τεχνικές απαίτησης απαίτησης στη μηχανική λογισμικού
Παρατίθενται παρακάτω μερικά παραδείγματα:
- Πρόγραμμα περιήγησης μονάδας HTML
- Firefox
- Χρώμιο
- PhantomJS
- Zombie.js
- TrifleJS
- SlimerJS
- Βουτιά
- SimpleBrowser
- NodeJS
Δοκιμή χωρίς κεφαλή με σελήνιο
Το Σελήνιο είναι ένα δωρεάν, εργαλείο δοκιμής ανοιχτού κώδικα. Είναι ένα πολύ γνωστό και αποτελεσματικό εργαλείο αυτοματισμού για την εκτέλεση δοκιμών αυτοματισμού.
Το Selenium μας επιτρέπει να γράφουμε δοκιμαστικά σενάρια σε διάφορες γλώσσες όπως Java, Python, C #, Ruby, Perl, Scala κ.λπ. υποστηρίζοντας πολλά προγράμματα περιήγησης όπως Firefox, Chrome, Internet Explorer, Opera, Safari κ.λπ. και είναι σε θέση να εκτελείται σε Windows , Linux και macOS.
Το Selenium Webdriver παρέχει καλή υποστήριξη σε δυναμικές ιστοσελίδες, όπου διάφορα στοιχεία ιστού αλλάζουν χωρίς να επαναφορτώνεται η ίδια η σελίδα.
Headless Chrome και Firefox
Τόσο ο Firefox, όσο και τα προγράμματα περιήγησης Chrome, υποστηρίζουν τη δοκιμή αυτοματισμού Headless που αποτελεί εφαρμογή του κώδικα στο Firefox και στο Chrome χωρίς GUI.
Παράδειγμα Headless Firefox
Το Headless Firefox παρέχει υποστήριξη για εκδόσεις από το 56 και διατίθεται σε Windows, Linux και macOS. Πρέπει να κατεβάσετε το αρχείο geckodriver.exe της τελευταίας έκδοσης του Firefox και να διασφαλίσουμε ότι η έκδοση που θα χρησιμοποιήσουμε είναι μεγαλύτερη από την ελάχιστη υποστηριζόμενη έκδοση. Ο Firefox εκτελείται σε λειτουργία χωρίς κεφαλή μέσω της μεθόδου headless ().
Ας δούμε τον κώδικα για το πρόγραμμα περιήγησης Firefox σε λειτουργία Headless:
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()); } }
Κατά την εκτέλεση του παραπάνω κώδικα για το πρόγραμμα περιήγησης Firefox σε λειτουργία Headless, εμφανίζεται ο τίτλος της σελίδας και η διεύθυνση URL της. Ο κωδικός εκτελείται σε λειτουργία Headless και μπορεί να εντοπιστεί στην Κονσόλα.
Ακριβώς όπως το Headless Firefox υποστηρίζεται από το Selenium, λειτουργεί και σε SlimmerJS και W3C WebDrier.
Παράδειγμα χωρίς κεφαλή Chrome
Το Headless Chrome παρέχει υποστήριξη για το Chrome εκδόσεις 60 και μετά και είναι διαθέσιμο για Windows, Linux και macOS. Πρέπει να πραγματοποιήσουμε λήψη του αρχείου .exe της τελευταίας έκδοσης του προγράμματος περιήγησης Chrome.
Παρακάτω δίνεται η σύνταξη για τη χρήση του Chrome σε λειτουργία Headless:
ChromeOptions options = new ChromeOptions(); options.addArguments(“--headless”); OR options.setHeadless(true);
Ας δούμε τον κώδικα για το πρόγραμμα περιήγησης Chrome σε λειτουργία χωρίς κεφαλή:
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()); } }
Κατά την εκτέλεση του παραπάνω κώδικα για το πρόγραμμα περιήγησης Chrome σε λειτουργία χωρίς κεφαλή, εμφανίζεται ο τίτλος της σελίδας και η διεύθυνση URL της. Ο κωδικός εκτελείται και η εκτέλεση μπορεί να παρακολουθείται στην Κονσόλα.
Headless HtmlUnitDriver
Τι είναι το HtmlUnitDriver;
Το HtmlUnitDriver είναι ένα πρόγραμμα περιήγησης ιστού Headless γραμμένο σε Java. Το όνομα υποδηλώνει ότι είναι ένα πρόγραμμα οδήγησης χωρίς κεφαλή που βασίζεται στο HtmlUnit. Το HtmlUnitDriver είναι ένα ενσωματωμένο πρόγραμμα περιήγησης χωρίς κεφαλή στο Selenium WebDriver. Θεωρείται ως το πιο ελαφρύ και γρήγορο πρόγραμμα περιήγησης.
Ας προχωρήσουμε στην εφαρμογή του HtmlUnitDriver. Μπορείτε να κατεβάσετε τα αρχεία HtmlUnitDriver JAR από την επίσημη ιστοσελίδα του Selenium.
HtmlUnitDriver σε λειτουργία χωρίς κεφαλή
Ακριβώς όπως όλα τα άλλα προγράμματα περιήγησης, για το HtmlUnitDriver, πρέπει να δημιουργήσουμε ένα αντικείμενο για την κλάση να εκτελεί τον κώδικα σε λειτουργία χωρίς κεφαλή.
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()); } }
Έτσι, κατά την εκτέλεση του παραπάνω κώδικα για το HtmlUnitDriver σε λειτουργία Headless, η έξοδος που λαμβάνεται εμφανίζει τον τίτλο της σελίδας και τη διεύθυνση URL της. Η Έξοδος λαμβάνεται μέσω της Κονσόλας όπου όλες οι λειτουργίες που εκτελούνται στο πρόγραμμα μπορούν να προβληθούν σταδιακά.
Δίνεται παρακάτω το στιγμιότυπο οθόνης του παραπάνω εκτελεσθέντος κώδικα:
Χαρακτηριστικά / Πλεονεκτήματα του HtmlUnitDriver
πώς να ανοίξετε κάτι με java
(εικόνα πηγή )
- Παρέχει υποστήριξη για πρωτόκολλα HTTPS και HTTP.
- Μεγάλη υποστήριξη για JavaScript.
- Βοηθά στο Multitasking, επιτρέποντας έτσι την εκτέλεση πολλαπλών δοκιμών.
- Παρέχει υποστήριξη για Cookies. Επίσης, υποστηρίζει διακομιστές μεσολάβησης.
- Βελτιώνει την απόδοση και την ταχύτητα των σεναρίων δοκιμής, καθώς έχει την ταχύτερη εφαρμογή του WebDriver.
- Το HtmlUnitDriver είναι ανεξάρτητο από την πλατφόρμα.
- Δεδομένου ότι είναι Headless από προεπιλογή, υποστηρίζει Headless Testing.
Μειονεκτήματα του HtmlUnitDriver
- Η χρήση του HtmlUnitDriver δεν είναι δυνατή για σύνθετους ιστότοπους.
- Κατά τη σύγκριση με μια πραγματική δοκιμή προγράμματος περιήγησης, για προγράμματα περιήγησης χωρίς κεφαλή όπως το HtmlUnitDriver, καθίσταται πολύ δύσκολο για τον εντοπισμό σφαλμάτων του σεναρίου.
- Η δημιουργία στιγμιότυπων οθόνης δεν είναι δυνατή με το HtmlUnitDriver.
- Τα προγράμματα περιήγησης χωρίς κεφαλή μιμούνται άλλα προγράμματα περιήγησης.
συμπέρασμα
Η δοκιμή Headless Browser είναι στην πραγματικότητα πιο γρήγορη, παρέχοντας μεγάλη ταχύτητα και αποτελεσματικότητα, αλλά δεν καταφέρνει να προσεγγίσει συγκεκριμένες λειτουργίες που πράγματι πληρούνται από προγράμματα περιήγησης χωρίς Headless / Real.
Το Headless Browser έχει τα δικά του πλεονεκτήματα, ενώ το Real Browser έχει τα δικά του. Σύμφωνα με την ανάγκη για δοκιμή, μπορεί κανείς να επιλέξει όποια τεχνική είναι προτιμότερη και ωφέλιμη για τον υπεύθυνο δοκιμών.
Για παράδειγμα: Σε περίπτωση που υπάρχει συμμετοχή των χρηστών, μπορείτε να επιλέξετε τη δοκιμή Real Browser. Εάν δεν υπάρχουν απαιτήσεις παρουσίασης διεπαφής χρήστη για γρήγορη εκτέλεση της δοκιμής, τότε μπορεί κανείς να κάνει δοκιμή προγράμματος περιήγησης χωρίς κεφαλή.
Πιο αποτελεσματικές δοκιμές θα ήταν αυτές με συνδυασμό τόσο Headless όσο και Real Browser. Με αυτόν τον τρόπο ξεπερνώντας τους περιορισμούς του καθενός ξεχωριστά.
Ελπίζω ότι αυτό το σεμινάριο θα είχε διευκρινίσει όλα τα ερωτήματά σας σχετικά με το Headless Browser & Headless Browser Testing !!
Συνιστώμενη ανάγνωση
- Tutorial Geb - Δοκιμή αυτοματισμού προγράμματος περιήγησης με χρήση του εργαλείου Geb
- Tutorial Parrot QA: Ανασκόπηση λειτουργικών δοκιμών Cross Browser
- Tutorial Browserstack: Πλατφόρμα δοκιμών εφαρμογών και προγράμματος περιήγησης (ΟΔΗΓΟΣ)
- Tutorial IE Tester - Έλεγχος προγράμματος περιήγησης Internet Explorer στο διαδίκτυο
- Φόρτωση δοκιμών με πραγματικά προγράμματα περιήγησης χρησιμοποιώντας το Tricentis Flood Element
- Selenium Grid Tutorial: Ρύθμιση και παράδειγμα δοκιμών Cross Browser
- Κορυφαία 10 εργαλεία δοκιμής Cross Browser το 2021 (τελευταία κατάταξη)
- Τι είναι το Cross Browser Testing και πώς να το εκτελέσετε: Ένας πλήρης οδηγός