HTMLUnitDriver μέσα Selenium
Ένα πρόγραμμα περιήγησης χωρίς κεφαλή είναι ένα πρόγραμμα περιήγησης ιστού χωρίς γραφική διεπαφή χρήστη. Μπορεί να εκτελείται στο παρασκήνιο χωρίς οπτική απεικόνιση.tracσεις. Προσφέρει έναν αποτελεσματικό και αποδοτικό τρόπο για τον έλεγχο εφαρμογών ιστού, εξοικονομώντας παράλληλα χρόνο και πόρους. Σε αυτό το σεμινάριο, θα εμβαθύνουμε στο τι είναι ένα πρόγραμμα περιήγησης χωρίς κεφαλή, πότε να χρησιμοποιούμε τον έλεγχο χωρίς κεφαλή και πώς να τον εκτελούμε χρησιμοποιώντας Selenium.
Τι είναι το Headless Browser;
Ένα πρόγραμμα περιήγησης χωρίς κεφάλι είναι ένα πρόγραμμα περιήγησης ιστού χωρίς γραφικό περιβάλλον χρήστη. Αυτό το πρόγραμμα θα συμπεριφέρεται ακριβώς όπως ένα πρόγραμμα περιήγησης, αλλά δεν θα εμφανίζει κανένα GUI.
Μερικά από τα παραδείγματα των Headless Drivers περιλαμβάνουν
- HtmlUnit
- Φάντασμα
- PhantomJS
- ZombieJS
- Watir- πρόγραμμα οδήγησης ιστού
Πότε να χρησιμοποιήσετε το Headless Browser Testing;
Στη σημερινή ψηφιακή εποχή, οι διαδικτυακές εφαρμογές έχουν αναπτυχθεί ώστε να είναι συμβατές με ένα ευρύ φάσμα συσκευών και πλατφορμών. Αυτό συχνά αποτελεί πρόκληση για τους προγραμματιστές ιστοτόπων που πρέπει να διασφαλίσουν ότι οι εφαρμογές τους λειτουργούν απρόσκοπτα σε αυτές τις πλατφόρμες. Η δοκιμή του προγράμματος περιήγησης χωρίς κεφαλή είναι μια ιδανική λύση για αυτό το πρόβλημα, καθώς επιτρέπει στους προγραμματιστές να δοκιμάσουν τις εφαρμογές web τους χωρίς την ανάγκη γραφικής διεπαφής χρήστη. Χρησιμοποιώντας δοκιμές προγράμματος περιήγησης χωρίς κεφάλι, οι προγραμματιστές μπορούν εύκολα να δοκιμάσουν πολύπλοκες εφαρμογές Ιστού με πολλαπλά στοιχεία και εξαρτήσεις, ανοίγοντας το δρόμο για ταχύτερη ανάπτυξη, κώδικα χωρίς σφάλματα και ευχαριστημένους χρήστες.
Δοκιμή προγράμματος περιήγησης χωρίς κεφαλή με Selenium
Selenium είναι ένα ισχυρό εργαλείο για δοκιμές χωρίς κεφάλι του προγράμματος περιήγησης, που επιτρέπει στους προγραμματιστές να εκτελούν αυτοματοποιημένες δοκιμές χωρίς την ανάγκη για ορατή διεπαφή χρήστη. Εκτελώντας δοκιμές στο παρασκήνιο, Selenium μπορεί να εξοικονομήσει χρόνο και πόρους, ενώ παράλληλα βοηθάping εντοπίστε προβλήματα που ενδέχεται να μην είναι εμφανή σε ένα παραδοσιακό περιβάλλον δοκιμών που βασίζεται σε UI. Αυτό περιλαμβάνει προβλήματα που σχετίζονται με την απόδοση και προβλήματα διάταξης που ενδέχεται να γίνουν εμφανή μόνο σε ένα περιβάλλον χωρίς κεφαλή. Ωστόσο, είναι σημαντικό να έχετε κατά νου τους περιορισμούς των δοκιμών χωρίς κεφαλή και να τις εξισορροπήσετε με τις παραδοσιακές μεθόδους που βασίζονται σε UI, για να διασφαλίσετε ολοκληρωμένη κάλυψη δοκιμών.
Δημοφιλή παραδείγματα προγραμμάτων περιήγησης χωρίς κεφαλή
Υπάρχουν πολλά διαθέσιμα προγράμματα περιήγησης χωρίς κεφάλι, το καθένα με τα δικά του μοναδικά χαρακτηριστικά και πλεονεκτήματα, που τα καθιστούν κατάλληλα για διαφορετικές περιπτώσεις χρήσης. Τα συζητάμε παρακάτω: -
PhantomJS
Το PhantomJS είναι ένα πρόγραμμα περιήγησης χωρίς κεφάλι που χρησιμοποιεί το WebKit ως μηχανή απόδοσης και υποστηρίζει διάφορα πρότυπα ιστού όπως HTML5, CSS3 και JavaΓραφή. Μπορεί να χρησιμοποιηθεί για εργασίες λήψης οθόνης και αυτοματισμού σελίδων. Είναι ανοιχτού κώδικα και συμβατό με πολλαπλά λειτουργικά συστήματα.
Παράδειγμα Selenium με Headless PhantomJS in Python
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
# Set up PhantomJS options
phantomjs_options = webdriver.DesiredCapabilities.PHANTOMJS.copy()
phantomjs_options['phantomjs.page.settings.userAgent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
# Set up the PhantomJS driver
driver = webdriver.PhantomJS('/path/to/phantomjs', desired_capabilities=phantomjs_options)
# Perform actions using the driver
driver.get('https://www.example.com')
print(driver.title)
# Close the driver
driver.quit()
Chrome
Το Chrome είναι το πιο δημοφιλές πρόγραμμα περιήγησης στον πλανήτη και προσφέρει επίσης μια λειτουργία χωρίς κεφαλή. Μπορεί να χρησιμοποιηθεί σε πολλές πλατφόρμες και υποστηρίζει γλώσσες προγραμματισμού και πλαίσια. Τα ενσωματωμένα εργαλεία εντοπισμού σφαλμάτων και η εκτεταμένη τεκμηρίωση καθιστούν εύκολη τη χρήση και την αντιμετώπιση τυχόν προβλημάτων που μπορεί να προκύψουν κατά τη διάρκεια της δοκιμής.
Παράδειγμα Headless Chrome με Selenium in Python
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# Set up Chrome options
chrome_options = Options()
chrome_options.add_argument('--headless') # Run Chrome in headless mode
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
# Set up the Chrome driver
driver = webdriver.Chrome('/path/to/chromedriver', options=chrome_options)
# Perform actions using the driver
driver.get('https://www.example.com')
print(driver.title)
# Close the driver
driver.quit()
Firefox
Firefox είναι ένα δημοφιλές πρόγραμμα περιήγησης ιστού που μπορεί επίσης να χρησιμοποιηθεί ως πρόγραμμα περιήγησης χωρίς κεφάλι για δοκιμαστικούς σκοπούς. Ένα από τα οφέλη της χρήσης Firefox Ως πρόγραμμα περιήγησης χωρίς κεφαλή είναι η ελαφριά φύση του, γεγονός που το καθιστά μια ευέλικτη επιλογή για δοκιμές σε διάφορα λειτουργικά συστήματα. Επιπλέον, με την εκτενή τεκμηρίωση και την κοινοτική υποστήριξη, Firefox είναι μια εξαιρετική επιλογή για όσους θέλουν να πειραματιστούν με την τεχνολογία προγράμματος περιήγησης χωρίς κεφαλές.
Παράδειγμα Ακέφαλου Firefox μαζί σου, Selenium in Python
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
# Set up Firefox options
firefox_options = Options()
firefox_options.add_argument('--headless') # Run Firefox in headless mode
# Set up the Firefox driver
driver = webdriver.Firefox(options=firefox_options)
# Perform actions using the driver
driver.get('https://www.example.com')
print(driver.title)
# Close the driver
driver.quit()
Πλεονεκτήματα του Headless Browser Testing
- Ταχύτερη εκτέλεση δοκιμής
- Οικονομική δοκιμή
- Καλύτερη κάλυψη δοκιμών
- Ευελιξία στις δοκιμές εκτέλεσης
- Ενοποίηση με αγωγούς CI/CD
Μειονεκτήματα του Headless Browser Testing
- Έλλειψη GUI
- Δυσκολίες στον εντοπισμό σφαλμάτων
- Περιορισμένη υποστήριξη προγράμματος περιήγησης
HTMLUnitDriver
Το HTML UnitDriver είναι το πιο ελαφρύ και ταχύτερο πρόγραμμα περιήγησης χωρίς κεφαλές υλοποίησης του WebDriver. Βασίζεται σε HtmlUnit. Είναι γνωστό ως Πρόγραμμα οδήγησης προγράμματος περιήγησης Headless. Είναι το ίδιο με το Chrome, το IE ή το FireFox πρόγραμμα οδήγησης, αλλά δεν έχει GUI, επομένως δεν μπορεί κανείς να δει την εκτέλεση της δοκιμής στην οθόνη.
Χαρακτηριστικά του προγράμματος οδήγησης μονάδας HTML
- Υποστήριξη για τα πρωτόκολλα HTTPS και HTTP
- Υποστήριξη για απαντήσεις HTML (κάνοντας κλικ σε συνδέσμους, υποβολή φορμών, περπάτημα στο μοντέλο DOM του εγγράφου HTML κ.λπ.)
- Υποστήριξη για cookies
- Υποστήριξη διακομιστή μεσολάβησης
- Υποστήριξη για βασικό και NTLM έλεγχο ταυτότητας
- Άριστη JavaΓραφή υποστήριξη
- Υποστήριξη για τις μεθόδους υποβολής GET και POST
- Δυνατότητα προσαρμογής των κεφαλίδων αιτημάτων που αποστέλλονται στον διακομιστή
- Δυνατότητα προσδιορισμού εάν οι αποτυχημένες απαντήσεις από τον διακομιστή θα πρέπει να δημιουργούν εξαιρέσεις ή θα πρέπει να επιστρέφονται ως σελίδες του κατάλληλου τύπου
Βήματα για χρήση του προγράμματος οδήγησης HTMLUnit με Selenium
Βήμα 1) In Eclipse, αντιγράψτε τον παρακάτω κώδικα. Προσθέστε τα τυπικά αρχεία βιβλιοθήκης σεληνίου στο έργο. Δεν απαιτούνται επιπλέον αρχεία jar.
package htmldriver;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
public class htmlUnitYest {
public static void main(String[] args) {
// Creating a new instance of the HTML unit driver
WebDriver driver = new HtmlUnitDriver();
// Navigate to Google
driver.get("http://www.google.com");
// Locate the searchbox using its name
WebElement element = driver.findElement(By.name("q"));
// Enter a search query
element.sendKeys("Guru99");
// Submit the query. Webdriver searches for the form using the text input element automatically
// No need to locate/find the submit button
element.submit();
// This code will print the page title
System.out.println("Page title is: " + driver.getTitle());
driver.quit();
}
}
Βήμα 2) Εκτελέστε τον κωδικό. Θα παρατηρήσετε ότι δεν εκκινείται πρόγραμμα περιήγησης και τα αποτελέσματα εμφανίζονται στην κονσόλα.
Πλεονεκτήματα του προγράμματος οδήγησης μονάδας Html:
- Δεδομένου ότι δεν χρησιμοποιεί κανένα GUI για δοκιμή, οι δοκιμές σας θα εκτελούνται στο παρασκήνιο χωρίς καμία οπτική διακοπή
- Σε σύγκριση με όλες τις άλλες περιπτώσεις, η εκτέλεση είναι ταχύτερη
- Για να εκτελέσετε τις δοκιμές σας μέσω του προγράμματος οδήγησης HtmlUnit, μπορείτε επίσης να επιλέξετε άλλες εκδόσεις του προγράμματος περιήγησης
-
Είναι ανεξάρτητο από την πλατφόρμα και είναι ευκολότερο να εκτελούνται πολλές δοκιμές ταυτόχρονα. Ιδανικό για Δοκιμές φορτίου.
Περιορισμοί:
- Δεν μπορεί να μιμηθεί άλλα προγράμματα περιήγησης JavaΣυμπεριφορά σεναρίου
PhantomJS
Το PhantomJS είναι ένα πρόγραμμα περιήγησης χωρίς κεφάλι με JavaAPI σεναρίου. Είναι η βέλτιστη λύση για τη δοκιμή Headless Website, την πρόσβαση και τον χειρισμό ιστοσελίδων και συνοδεύεται από το τυπικό API DOM.
Για να χρησιμοποιήσετε το PhantomJS με το Seleniun, πρέπει να χρησιμοποιήσετε το GhostDriver. GhostDriver είναι μια υλοποίηση του πρωτοκόλλου Webdriver Wire σε απλό JS για PhantomJS.
Η τελευταία έκδοση του PhatomJS έχει ενσωματωθεί GhostDriver και δεν χρειάζεται να το εγκαταστήσετε ξεχωριστά.
Εδώ είναι πώς λειτουργεί το σύστημα-
Βήματα για τρέξιμο Selenium με το PhatomJS
Βήμα 1) Χρειάζεται Eclipse μαζί σου, Selenium εγκατασταθεί
Βήμα 2) Κατεβάστε το PhantomJS εδώ
Βήμα 3) Extracτον ληφθέντα φάκελο στο Program Files (Αρχεία Προγράμματος)
Βήμα 4) Κατεβάστε το πρόγραμμα οδήγησης PhantomJS από εδώ. Προσθέστε το βάζο στο έργο σας
Βήμα 5) Επικολλήστε τον παρακάτω κώδικα στο 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;
public class phantom {
public static void main(String[] args) {
File file = new File("C:/Program Files/phantomjs-2.0.0-windows/bin/phantomjs.exe");
System.setProperty("phantomjs.binary.path", file.getAbsolutePath());
WebDriver driver = new PhantomJSDriver();
driver.get("http://www.google.com");
WebElement element = driver.findElement(By.name("q"));
element.sendKeys("Guru99");
element.submit();
System.out.println("Page title is: " + driver.getTitle());
driver.quit();
}
}
Βήμα 6) Εκτελέστε τον κωδικό. Θα παρατηρήσετε ότι η έξοδος εμφανίζεται στην κονσόλα και δεν εκκινείται κανένα πρόγραμμα περιήγησης.
ΣΗΜΕΊΩΣΗ: Κατά την πρώτη εκτέλεση, με βάση τις ρυθμίσεις σας, ενδέχεται να λάβετε προειδοποίηση ασφαλείας από Windows για να επιτρέψετε την εκτέλεση του PhantomJS. Κάντε κλικ στο Να επιτρέπεται η πρόσβαση.
Πολλοί οργανισμοί χρησιμοποιούν το Phantom.JS για διάφορους σκοπούς, για παράδειγμα,
- Ακέφαλη Δοκιμή
- Οθόνη συλλαμβάνει
- Αυτοματισμός σελίδας
- δίκτυο παρακολούθησης
- Για απόδοση στιγμιότυπων οθόνης πίνακα ελέγχου για τους χρήστες τους
- Για να εκτελέσετε δοκιμές μονάδας στη γραμμή εντολών
- Για να δημιουργήσετε εγχειρίδια εργαζομένων από HTML σε PDF
- Συνδυάζεται με το QUnit για τη δοκιμαστική σουίτα
Περίληψη
Για γρήγορη δοκιμή εφαρμογής σε διάφορα προγράμματα περιήγησης και χωρίς καμία οπτική διακοπή, πρόγραμμα περιήγησης χωρίς κεφάλι Δοκιμές χρησιμοποιείται. Λόγω της ταχύτητας, της ακρίβειας και των εύκολων δυνατοτήτων πρόσβασης, το πρόγραμμα οδήγησης μονάδας HTML και το PhantomJS κερδίζουν δημοτικότητα για δοκιμές αυτοματισμού προγράμματος περιήγησης χωρίς κεφάλι. Ακολουθώντας μερικά απλά βήματα μπορείτε να μάθετε πόσο εύκολα αυτά τα εργαλεία μπορούν να ενσωματωθούν με άλλα εργαλεία και να εκτελέσουν τον κώδικα δοκιμής.






