Puppeteer Web Scraping και Test Automation - Ένας εξαιρετικός οδηγός εκμάθησης του Puppeteer Tutorial 3

Tutorial Puppeteer - Αυτοματοποίηση δοκιμών Puppeteer

Τώρα-μια-ημέρα, το Puppeteer λαμβάνει περισσότερη προσοχή ως εργαλείο απόξεσης ιστού. Λόγω της απλότητας, της διαθεσιμότητας ως εργαλείου ανοιχτού κώδικα και της ικανότητας ανάπτυξης εφαρμογών μιας σελίδας, το Puppeteer αποκτά τη δημοτικότητα. Πριν ξεκινήσουμε να μαθαίνουμε στο εργαλείο απόξεσης ιστού Puppeteer, πρέπει να έχουμε βασική κατανόηση της δομής γραμμής εντολών, Javascript και HTML DOM Το φροντιστήριο Puppeteer έχει χωριστεί σε λίγα άρθρα που καθορίζονται στον παρακάτω πίνακα περιεχομένου.

Εκπαιδευτικό κουκλοθέατρο

Εκμάθηση Tosca # 1: Επισκόπηση Puppeteer

Τόσκα φροντιστήριο # 2: Μεταβλητές Περιβάλλοντος Puppeteer

Τόσκα φροντιστήριο # 3: Επισκόπηση αυτοματισμού Puppeteer Web Scraping και Puppeteer Test

Τόσκα φροντιστήριο # 4: Εγκαταστήστε το Puppeteer 

Σε αυτό το άρθρο του Puppeteer Tutorial, θα συζητήσουμε το Puppeteer Web Scraping με ένα παράδειγμα και μια επισκόπηση αυτοματοποίησης Puppeteer Test. 

Ξύσιμο Ιστού Puppeteer

Η διαδικασία εξαγωγής δεδομένων από οποιαδήποτε ιστοσελίδα ονομάζεται web scraping. Η απόσυρση ιστού έχει δύο βήματα. Πρώτον, ανακτά την ιστοσελίδα και στη συνέχεια εξάγει τα δεδομένα. Μετά την εξαγωγή δεδομένων, μπορούμε να το χρησιμοποιήσουμε για οποιοδήποτε API ή να το αποθηκεύσουμε σε ένα αρχείο CSV. 

Το Puppeteer είναι ένα από τα καλύτερα εργαλεία για την υποστήριξη της απόξεσης ιστού για το πρόγραμμα περιήγησης Google Chrome ή Chromium. Το ξύσιμο κουκλοθέατρου εξηγείται λεπτομερώς με το παρακάτω παράδειγμα - 

Βασικό Παράδειγμα Scraping Ιστού Puppeteer:

Βήμα 1# Το Puppeteer λειτουργεί στη βιβλιοθήκη Node JS. Έτσι, το πρώτο βήμα είναι να συμπεριλάβετε τη βιβλιοθήκη κουκλοπαίδων πριν από τη σύνταξη του σεναρίου για ξύσιμο ιστού.

const puppeteerObj = require("puppeteer");

Βήμα 2# Αφού συμπεριλάβουμε την τάξη Puppeteer, πρέπει να γράψουμε μια συνάρτηση async χρησιμοποιώντας τη λέξη-κλειδί αναμονής. Απαιτείται καθώς ο Puppeteer χρησιμοποιεί υποσχέσεις. Στη συνέχεια, καλέστε τη μέθοδο Puppeteer.launch () για να καλέσετε το πρόγραμμα περιήγησης και καλέστε τη μέθοδο newPage () για να δημιουργήσετε μια παρουσία ιστοσελίδας.

const browserWeb = await puppeteerObj.launch();
const pageWeb = await browserWeb.newPage();

Βήμα 3# Τώρα καλέστε τη μέθοδο page.goto () για να παρέχετε τη διεύθυνση URL του επιθυμητού ιστότοπου.

await pageWeb.goto("https://lambdageeks.com/");

Βήμα 4# Χρησιμοποιήστε τη μέθοδο page.evaluate () για να καταγράψετε το κείμενο οποιουδήποτε συγκεκριμένου στοιχείου (σε αυτό το παράδειγμα, θα καταγράψουμε το κείμενο της κεφαλίδας). 

const data = await pageWeb.evaluate(() => {   
const header = document.querySelector(".uabb-heading-text").innerText;
return { header };

Στο επερχόμενο σεμινάριο θα συζητήσουμε πώς να προσδιορίσουμε οποιοδήποτε αντικείμενο από την οθόνη web.

Tutorial Puppeteer - Ξύσιμο Ιστού Puppeteer
Tutorial Puppeteer - Ξύσιμο Ιστού Puppeteer

Βήμα 5# Σε αυτό το τελευταίο βήμα, πρέπει να επεξεργαστούμε τα δεδομένα και μετά να κλείσουμε την ιστοσελίδα. Ο πλήρης κωδικός Scraping Web Puppeteer θα έχει την εξής μορφή:

const puppeteer = require("puppeteer");

async function scrap() {
  // Launch the browser
  const browserApp = await puppeteer.launch();
  // Create a page instance
  const pageApp = await browserApp.newPage();
  // invoke the web page for scraping
  await pageApp.goto("https://lambdageeks.com/");

  // Select any web element
const data = await pageApp.evaluate(() => {   
const header = document.querySelector(".uabb-heading-text").innerText;
return { header };

// Here we can do anything with this data. Here displaying the data
console.log(header);

 //We close the browser
  await browserApp.close();
}

Scrap();

Βήμα 6# Τώρα, μπορούμε να εκτελέσουμε αυτόν τον κώδικα απόξεσης web puppeteer χρησιμοποιώντας την εντολή:  κόμβος index.js

Σημείωση: Στο επόμενο άρθρο, "Εγκατάσταση Puppeteer", θα συζητήσουμε τη ρύθμιση εγκατάστασης του Puppeteer και θα εκτελέσουμε τον παραπάνω κώδικα Scraping Web Puppeteer.

Επισκόπηση αυτοματοποίησης δοκιμών Puppeteer

Εκτός από το web scraping, το Puppeteer έχει τις δυνατότητες να εκτελεί και τις παρακάτω δραστηριότητες,

  • Καταγράψτε τα στιγμιότυπα οθόνης των ιστοσελίδων.
  • Μπορούμε να αποθηκεύσουμε την οθόνη της ιστοσελίδας ως αρχείο pdf.
  • Μπορεί να επιτευχθεί αυτοματοποίηση χειροκίνητων βημάτων για την εκτέλεση δοκιμών UI

Έτσι, συνδυάζοντας όλα τα παραπάνω χαρακτηριστικά, μπορούμε να χρησιμοποιήσουμε το Puppeteer για αυτοματοποιημένο έλεγχο. Για να κατανοήσουμε τον αυτοματισμό του Puppeteer Test, πρώτα, πρέπει να εξοικειωθούμε με τις δοκιμές λογισμικού.

Επισκόπηση δοκιμών:

Απαιτείται δοκιμή για να διασφαλιστεί ότι πληρούνται όλες οι απαιτήσεις λογισμικού χωρίς τυχόν προβλήματα. Διαφορετικοί τύποι κύκλων δοκιμών είναι διαθέσιμοι από την αρχή της διαδικασίας ανάπτυξης λογισμικού. Το λογισμικό μπορεί να δοκιμαστεί χειροκίνητα ή μέσω της αυτοματοποιημένης προσέγγισης.

Σκοποί των δοκιμών λογισμικού είναι -

  • Επαληθεύστε την ποιότητα των προϊόντων.
  • Βρείτε τα σφάλματα του προϊόντος πριν από την ανάπτυξη της παραγωγής.
  • Ο έλεγχος των απαιτήσεων ικανοποιείται.
  • Δοκιμή των επιδόσεων του προϊόντος.

Οι τύποι δοκιμών εξηγούνται εδώ -

Δοκιμή μονάδας - Οι προγραμματιστές είναι υπεύθυνοι για τη διενέργεια δοκιμών μονάδας κατά τη φάση ανάπτυξης κώδικα.

Δοκιμή ολοκλήρωσης - Αυτή η δοκιμή απαιτείται μετά την ολοκλήρωση των διαφορετικών στοιχείων του προϊόντος λογισμικού. Ο κύριος σκοπός είναι να διασφαλιστεί ότι όλες οι διεπαφές λειτουργούν ομαλά.

Δοκιμή συστήματος - Είναι μια λεπτομερής δοκιμή που πρέπει να γίνει μετά την ολοκλήρωση για να διασφαλιστεί ότι πληρούνται όλες οι απαιτήσεις.

Δοκιμή αποδοχής χρήστη - Είναι επίσης μια λεπτομερής δοκιμή που πρέπει να γίνει από τον τελικό χρήστη του προϊόντος για να διασφαλιστεί η ποιότητα.

Επανάληψη δοκιμών - Απαιτείται να διασφαλιστεί ότι η βασική επιχειρηματική διαδικασία λειτουργεί ομαλά κατά τη διάρκεια τυχόν βελτιώσεων λογισμικού.

Πλεονεκτήματα του αυτοματισμού δοκιμής:

  • Μειώστε τον κύκλο εκτέλεσης.
  • Αποφύγετε τις πιθανότητες για ανθρώπινα λάθη.
  • Ελαχιστοποιήστε τις προσπάθειες εκτέλεσης δοκιμής.
  • Γρήγορη έκδοση λογισμικού.
  • Αυξήστε την κάλυψη δοκιμών για να μειώσετε τον κίνδυνο.
  • Ικανότητα εκτέλεσης παράλληλης εκτέλεσης.

Γιατί Puppeteer;

Οι περισσότερες από τις μη αυτόματες λειτουργίες που εκτελούνται στο πρόγραμμα περιήγησης Chrome μπορούν να αυτοματοποιηθούν χρησιμοποιώντας το Puppeteer. Έτσι, το Puppeteer είναι μια καλή επιλογή για τον έλεγχο μονάδων σε εφαρμογές Ιστού με γρήγορο και ευκολότερο τρόπο. 

Οι περιορισμοί του Puppeteer ως εργαλείου αυτοματοποίησης είναι -

  • Υποστηρίζει μόνο το πρόγραμμα περιήγησης Chrome και Chromium.
  • Δεν είναι δυνατή η δοκιμή Coss-browser.
  • Δεν είναι δυνατή η πραγματοποίηση δοκιμών μέσω κινητού.

Δοκιμή χωρίς κεφαλή Chrome:

Το πρόγραμμα περιήγησης χωρίς κεφάλι σημαίνει ότι το Puppeteer αλληλεπιδρά με ένα πρόγραμμα περιήγησης χρωμίου ως εφαρμογή φόντου, πράγμα που σημαίνει ότι το περιβάλλον χρήστη του χρωμίου δεν είναι ορατό στην οθόνη. Έτσι, ο έλεγχος χρωμίου χωρίς κεφάλι σημαίνει ότι ο έλεγχος αυτοματισμού πρέπει να πραγματοποιηθεί σε ένα κρυφό πρόγραμμα περιήγησης. Επίσης, μετά τη δοκιμή του headless chrome, το Puppeteer μπορεί να συλλάβει σωστά την οθόνη web.

Puppeteer εναντίον Σελήνιο

Tutorial Puppeteer - Puppeteer vs Selenium
Tutorial Puppeteer - Puppeteer vs Selenium

Η σύγκριση μεταξύ Puppeteer και Selenium ως αυτοματοποιημένου εργαλείου δοκιμής εξηγείται παρακάτω -

  • Υποστήριξη γλώσσας προγραμματισμού - Το Puppeteer υποστηρίζει μόνο JavaScript, όπου το Selenium υποστηρίζει γλώσσες Java, Python, Node.js και C #.
  • Υποστήριξη προγράμματος περιήγησης - Το Puppeteer ισχύει μόνο για προγράμματα περιήγησης Chrome ή Chromium, αλλά το Selenium υποστηρίζει προγράμματα περιήγησης Chrome, Mozilla, Safari, IE, Opera.
  • Υποστήριξη κοινότητας - Η υποστήριξη κοινότητας περιορίζεται στις Ομάδες Google, το GitHub και το Stack Overflow για το Puppeteer. Ωστόσο, για το Σελήνιο, διατίθεται ευρεία υποστήριξη κοινότητας σε πολλά φόρουμ.
  • Ταχύτητα εκτέλεσης - Η εκτέλεση του σεναρίου Puppeteer είναι ταχύτερη από το Σελήνιο.
  • Εγκατάσταση και ρύθμιση - Η εγκατάσταση και η εγκατάσταση του Puppeteer είναι μια πιο εύκολη και απλή διαδικασία.
  • Υποστήριξη μεταξύ πλατφορμών - Το Puppeteer δεν το υποστηρίζει, αλλά το Selenium μπορεί.
  • Εγγραφή - Οι δυνατότητες εγγραφής δεν είναι διαθέσιμες στο Puppeteer. Αλλά αυτή η δυνατότητα είναι διαθέσιμη για το Selenium IDE.
  • Στιγμιότυπα οθόνης - Το Puppeteer έχει τη δυνατότητα να τραβήξει ένα στιγμιότυπο οθόνης ως μορφή εικόνας ή pdf, όπου το Selenium μπορεί να υποστηρίξει μόνο τη μορφή εικόνας.
  • Υποστήριξη πλατφόρμας δοκιμής - Το Puppeteer υποστηρίζει μόνο προγράμματα περιήγησης ιστού, αλλά το Selenium μπορεί να αυτοματοποιήσει τον ιστό και το κινητό με το Appium.
  • Δεξιότητες κωδικοποίησης - Απαιτείται για το πρόγραμμα οδήγησης Web Puppeteer Selenium αλλά όχι για το Selenium IDE.

Με βάση την παραπάνω σύγκριση, μπορούμε να συμπεράνουμε ότι το Puppeteer θα κάνει την καλύτερη επιλογή όταν πρέπει να πραγματοποιήσουμε δοκιμές σε επίπεδο μονάδας για οποιαδήποτε εφαρμογή ιστού όπου απαιτείται γρήγορη και ευέλικτη λύση. Το άλλο εργαλείο, το Selenium θα είναι η καλύτερη επιλογή όταν υπάρχει ανάγκη για εφαρμογές για κινητά και δοκιμές εφαρμογών μεταξύ πλατφορμών. Κάντε κλικ εδώ για να μάθετε το Σελήνιο από το LambdaGeeks.

Συμπέρασμα:

Σε αυτό το εισαγωγικό άρθρο σχετικά με το Puppeteer Tutorial, μάθαμε για την επισκόπηση του Puppeteer Web Scraping και Puppeteer Test Automation. Θα μάθουμε για τον βήμα προς βήμα οδηγό για την εγκατάσταση του Puppeteer και την εκτέλεση ενός μικρού σεναρίου στο επόμενο άρθρο του Puppeteer. Παρακαλώ πατήστε εδώ για να επισκεφθείτε την πύλη αναφοράς για αυτό το Puppeteer Tutorial.

Σχετικά με το K Mondal

Γεια, είμαι ο K. Mondal, συνδέομαι με έναν κορυφαίο οργανισμό. Έχω 12+ χρόνια εργασιακής εμπειρίας σε διάφορους τομείς, π.χ. ανάπτυξη εφαρμογών, δοκιμές αυτοματισμού, σύμβουλος πληροφορικής. Με ενδιαφέρει πολύ να μάθω διαφορετικές τεχνολογίες. Είμαι εδώ για να εκπληρώσω τη φιλοδοξία μου και αυτήν τη στιγμή συνεισφέρω ως Συγγραφέας και Προγραμματιστής Ιστοσελίδων και στο LambdaGeeks.
Συνδεθείτε στο LinkedIn- https://www.linkedin.com/in/kumaresh-mondal/

Αφήστε ένα σχόλιο

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται *

Lambda Geeks