Προγραμματισμός

Δοκιμή εφαρμογών ιστού με Node.js και Συγγραφέας

Η σύγχρονη ανάπτυξη εφαρμογών εξαρτάται από τις αυτοματοποιημένες δοκιμές, χρησιμοποιώντας δοκιμαστικά πλαίσια για να διασφαλιστεί ότι ο κώδικας είναι έτοιμος να μεταβεί σε πακέτα εφαρμογών και να φτάσει στους τελικούς χρήστες. Για να αξιοποιήσετε στο έπακρο τις δοκιμές, οι δοκιμές γράφονται πριν από τον κώδικα και μπορούν να ενσωματωθούν σε αγωγούς ελέγχου πηγής και CI / CD (συνεχής ενσωμάτωση / συνεχής ανάπτυξη). Οι δοκιμές πρέπει να είναι παντού στη διαδικασία ανάπτυξής σας. Θέλετε να συγχωνεύσετε ένα αίτημα έλξης; Ελέγξτε τον κωδικό. Θέλετε να δεσμευτείτε σε ένα υποκατάστημα; Ελέγξτε τον κωδικό.

Αλλά υπάρχει ένας τομέας όπου οι δοκιμές είναι δύσκολες, ειδικά όταν πρέπει να αυτοματοποιηθούν. Μιλώ για την ανάγκη αλληλεπίδρασης και δοκιμής δυναμικών διεπαφών χρήστη. Ο έλεγχος εφαρμογών Ιστού είναι μια πολύπλοκη διαδικασία. Εργαλεία όπως το Selenium και το πρόγραμμα οδήγησης ιστού είναι βασικά στοιχεία για την αυτοματοποίηση του περιεχομένου σελίδας και για να διασφαλιστεί ότι δοκιμάζετε τόσο τα στοιχεία σελίδας όσο και την εφαρμογή στο σύνολό της. Είναι σημαντικά αν χρησιμοποιείτε προγράμματα περιήγησης χωρίς κεφαλή σε μια εφαρμογή. Χρησιμοποιώ ένα σύνολο σεναρίων Python σε μια εφαρμογή Twitter που δημιουργήθηκε γύρω από το Selenium και την υποστήριξη προγράμματος οδήγησης ιστού του Chromium για να αυτοματοποιήσω τη λήψη στιγμιότυπων οθόνης από μια εφαρμογή παρακολούθησης αεροσκαφών.

Παρουσιάζοντας το Playwright, το πλαίσιο δοκιμών ιστού της Microsoft

Το Selenium και το πρόγραμμα οδήγησης ιστού δεν είναι τα μόνα εργαλεία για τη δημιουργία δοκιμών end-to-end για σύγχρονες εφαρμογές ιστού και προγράμματα περιήγησης. Μια δημοφιλής εναλλακτική λύση είναι το Puppeteer της Google, το οποίο διαχειρίζεται τόσο την αποστολή κλικ σε προγράμματα περιήγησης χρησιμοποιώντας τις ίδιες τεχνικές με την εργαλειοθήκη του Chrome για προγράμματα οδήγησης και την πρόσβαση σε πληροφορίες εντοπισμού σφαλμάτων μέσω των API των οικείων εργαλείων προγραμματιστή. Ένας νεότερος συμμετέχων στο πρωτάθλημα δοκιμών του προγράμματος περιήγησης, το Playwright αναπτύσσεται από τη Microsoft ως έργο ανοιχτού κώδικα που φιλοξενείται στο GitHub.

Το Playwright παίρνει τη βασική αρχιτεκτονική Puppeteer και το μετακινεί περισσότερο προς την κατεύθυνση του Selenium, προσθέτοντας ένα πλαίσιο αυτοματοποίησης ιστού και βελτιώνοντας τον τρόπο αλληλεπίδρασης του Puppeteer με το περιεχόμενο της σελίδας. Έχει σχεδιαστεί για γρήγορη και εύκολη εγκατάσταση χρησιμοποιώντας γνωστή σύνταξη npm, χρησιμοποιώντας JavaScript για τη δημιουργία αυτοματισμού και δοκιμών εφαρμογών ιστού. Λειτουργεί με περισσότερα προγράμματα περιήγησης, με υποστήριξη για προγράμματα περιήγησης που βασίζονται στο Chromium όπως το Edge, καθώς και το Firefox και το WebKit της Apple.

Υπάρχει ένα σημαντικό μήνυμα στη λίστα υποστηριζόμενων προγραμμάτων περιήγησης του Playwright: Δεν μπορείτε να το χρησιμοποιήσετε με προγράμματα περιήγησης Trident ή EdgeHTML. Δεν προκαλεί έκπληξη. Η Microsoft έχει δεσμευτεί σταθερά για το Chromium υποκατάστημα στο νέο Edge, και τόσο το παλιό Edge όσο και ο Internet Explorer πλησιάζουν στο τέλος της ζωής τους. Εάν πρόκειται να χρησιμοποιήσετε το Playwright για δοκιμές, παίρνετε μια απόφαση να υποστηρίξετε μόνο τα κύρια σύγχρονα προγράμματα περιήγησης, οπότε θα πρέπει να ενημερώσετε τους χρήστες τι είναι διαθέσιμο για μελλοντικές εκδόσεις οποιωνδήποτε εφαρμογών ιστού που δημιουργείτε και υποστηρίζετε.

Δοκιμή του διαδικτύου με το Playwright

Η δυνατότητα δοκιμής πολλαπλών πλατφορμών σε όλα τα μεγάλα προγράμματα περιήγησης με το ίδιο σύνολο σεναρίων είναι σημαντική, όπως και η υποστήριξη για εκδόσεις ιστότοπων για κινητές συσκευές (καθώς οι δύο κύριες πλατφόρμες για κινητά χρησιμοποιούν παραλλαγές των προγραμμάτων περιήγησης για επιτραπέζιους υπολογιστές τους, η Playwright προσομοιώνει τις προβολές από κινητά σε προγράμματα περιήγησης επιτραπέζιων υπολογιστών) ). Επίσης σημαντική είναι η υποστήριξη για δοκιμές χωρίς κεφαλή, όπου δεν αποδίδετε διεπαφή χρήστη του προγράμματος περιήγησης, αλλά λειτουργεί με το μοντέλο αντικειμένου εγγράφου που δημιουργείται (και ένα σκιά DOM εάν χρησιμοποιείτε σύγχρονες λειτουργίες και τεχνολογίες προγράμματος περιήγησης, όπως στοιχεία ιστού).

Μπορείτε να χρησιμοποιήσετε το Playwright για να αυτοματοποιήσετε ένα τρέχον πρόγραμμα περιήγησης σε επιτραπέζιους υπολογιστές ανάπτυξης για να ελέγξετε τα σφάλματα ως μέρος του εντοπισμού σφαλμάτων εφαρμογών, διασφαλίζοντας ότι εκτελείτε συνεχώς όλες τις δοκιμαστικές διαδρομές σας ενώ καταγράφετε πρόσθετες πληροφορίες απόδοσης και παρακολουθείτε δυσλειτουργίες UI που δεν παρακολουθούνται. Εναλλακτικά, μπορεί να ρυθμιστεί ως μέρος μιας ενέργειας GitHub για να δοκιμάσει νέο κώδικα ως μέρος μιας δέσμευσης ή συγχώνευσης, αυτοματοποιώντας αυτό που διαφορετικά θα μπορούσε να είναι μια πολύπλοκη χειροκίνητη δοκιμή.

Δημιουργία και εκτέλεση δοκιμών Playwright

Το ξεκίνημα με το Playwright είναι εξίσου εύκολο με τη δημιουργία ενός νέου έργου Node.js. Αρχικά, εγκαταστήστε το Node.js στις δοκιμαστικές σας συσκευές. Δεδομένου ότι το Playwright χρησιμοποιεί το Node, μπορείτε να το εκτελέσετε σε υπολογιστές ανάπτυξης ή σε διακομιστές στον αγωγό CI / CD, καθιστώντας το μέρος μιας δράσης GitHub που μπορεί να χρησιμοποιηθεί σε όλη τη διαδικασία ανάπτυξης λογισμικού. Το μόνο που χρειάζεστε είναι μια εντολή npm, η οποία εγκαθιστά το πακέτο Playwright καθώς και τα δυαδικά αρχεία για όλα τα υποστηριζόμενα προγράμματα περιήγησης. Με την ολοκλήρωση της εγκατάστασης, μπορείτε να δημιουργήσετε σενάρια αυτοματισμού χρησιμοποιώντας JavaScript ή TypeScript για να καλέσετε API του Playwright. Αυτές είναι όλες ασύγχρονες κλήσεις, οπότε χρησιμοποιήστε τις δηλώσεις αναμονής για να διαχειριστείτε τις υποσχέσεις τους.

Το αποτέλεσμα είναι ένας πολύ σαφής τρόπος δημιουργίας σεναρίων, ξεκινώντας με το άνοιγμα μιας παρουσίας χωρίς πρόγραμμα περιήγησης και, στη συνέχεια, πλοηγηθείτε σε μια σελίδα πριν αλληλεπιδράσετε με παρουσίες σελίδων. Είναι καλή ιδέα να δημιουργήσετε αρχικά δοκιμές με πλήρη προγράμματα περιήγησης, ώστε να μπορείτε να παρακολουθείτε τον τρόπο με τον οποίο το Playwright αλληλεπιδρά με την εφαρμογή σας. Μια χρήσιμη επιλογή slow-mo εκτελεί αλληλεπιδράσεις με πιο ανθρώπινη ταχύτητα, καθιστώντας ευκολότερη την οπτικοποίηση και τη διαχείριση δοκιμών που εκτελούνται σε προγράμματα περιήγησης επιτραπέζιου υπολογιστή. Μόλις ένα τεστ έχει εντοπιστεί σφαλμάτων και εκτελείται σωστά, μπορείτε να το μετακινήσετε σε λειτουργία χωρίς κεφαλή και, στη συνέχεια, να το εκτελέσετε ως μέρος μιας εφαρμογής CI / CD.

Το Playwright περιλαμβάνει ένα εργαλείο CLI που μπορεί να καταγράφει αλληλεπιδράσεις με ιστότοπους, δημιουργώντας αυτόματα το JavaScript που απαιτείται για την εκτέλεση δοκιμών. Η επιλογή codegen είναι ένα χρήσιμο εργαλείο για γρήγορη έναρξη του Playwright, δείχνοντάς σας τον κώδικα που αλληλεπιδρά με στοιχεία σελίδας που μπορείτε στη συνέχεια να χρησιμοποιήσετε ως πρότυπο για τις δικές σας δοκιμές, αντιγραφή και επεξεργασία δημιουργημένου κώδικα, όπως απαιτείται. Η υποστήριξη TypeScript μπορεί να σας βοηθήσει να γράψετε πιο πολύπλοκες δοκιμές, χρησιμοποιώντας ισχυρή πληκτρολόγηση για τη διαχείριση μεταβλητών.

Εργασία με εφαρμογές Ιστού στο Playwright

Μία από τις πιο χρήσιμες λειτουργίες του Playwright είναι η υποστήριξή της σε περιβάλλοντα προγράμματος περιήγησης. Αυτά σας επιτρέπουν να εκτελείτε μεμονωμένες ενέργειες σε μία παρουσία προγράμματος περιήγησης, οπότε μπορείτε να ρυθμίσετε διάφορα περιβάλλοντα για να δοκιμάσετε πολλές αλληλεπιδράσεις ταυτόχρονα. Μέσα σε κάθε περιβάλλον δημιουργείτε σελίδες, οι οποίες θεωρούνται καλύτερα ως καρτέλες σε ένα πρόγραμμα περιήγησης επιτραπέζιου υπολογιστή. Οι σελίδες υποστηρίζουν τις δικές τους αλληλεπιδράσεις κλικ και μπορούν να παρακολουθούνται παράλληλα. Όταν βρίσκεστε σε μια σελίδα, μπορείτε να χρησιμοποιήσετε διαφορετικούς τρόπους εύρεσης περιεχομένου για να αλληλεπιδράσετε, χρησιμοποιώντας CSS ή XPath επιλογείς, χαρακτηριστικά HTML ή κείμενο. Εάν είστε εξοικειωμένοι με το Selenium, θα πρέπει να βρείτε πλοήγηση σε σελίδες που είναι εξοικειωμένες, με την πρόσθετη δυνατότητα να περιμένετε να φορτωθεί πλήρως μια σελίδα ή να δοθεί δυναμικό περιεχόμενο σε μια εφαρμογή ιστού μίας σελίδας.

Μπορείτε να χρησιμοποιήσετε τις λειτουργίες αξιολόγησης για να στείλετε παραμέτρους προς και από ιστοσελίδες σε κώδικα JavaScript που εκτελούνται στο περιβάλλον της σελίδας. Τα αποτελέσματα επιστρέφονται σε δοκιμαστικό σενάριο στο Node.js για ανάλυση, δίνοντάς σας τα απαραίτητα εργαλεία για να περάσετε ή να αποτύχετε σε δοκιμές. Το Playwright συνεργάζεται με τα devtools του προγράμματος περιήγησης F12, ώστε να μπορεί να κάνει πολύ περισσότερα από το να αλληλεπιδρά με το περιεχόμενο της σελίδας. Μπορεί να παρακολουθεί την κυκλοφορία δικτύου, οπότε μπορείτε να το χρησιμοποιήσετε για να ελέγξετε, μεταξύ άλλων, τον έλεγχο ταυτότητας και τη λήψη αρχείων. Μπορεί να έχει πρόσβαση στην κονσόλα του προγράμματος περιήγησης και να καταγράφει σφάλματα που ενδέχεται να μην είναι άμεσα ορατά σε μια σελίδα απόδοσης: για παράδειγμα, παρακολούθηση ζητημάτων CSS ή βιβλιοθήκες JavaScript που δεν φορτώνουν.

Υπάρχουν πολλά στο Playwright και αποτελεί μια συναρπαστική εναλλακτική λύση στο Selenium για τη δοκιμή εφαρμογών προγράμματος περιήγησης. Με τη Microsoft να προσθέτει συνεχώς τα εργαλεία προγραμματιστών F12 στο Edge, θα είναι ενδιαφέρον να παρακολουθήσετε το Playwright να προσθέτει νέες δυνατότητες που επεκτείνουν τις επιλογές σας για τη δοκιμή εφαρμογών που φιλοξενούνται από πρόγραμμα περιήγησης και προοδευτικών εφαρμογών ιστού παράλληλα με τις παραδοσιακές εφαρμογές ιστού.

Πέρα από τη JavaScript: Δοκιμές σε Python και C #

Η Microsoft κυκλοφόρησε πρόσφατα μια νέα έκδοση του Playwright για προγραμματιστές που προτιμούν να δημιουργούν δοκιμές στο Python αντί για JavaScript. Είναι μια χρήσιμη επιλογή, καθώς πολλά υπάρχοντα πλαίσια δοκιμής Selenium βασίζονται σε Python και σας επιτρέπει να συνδέσετε τον κώδικα δοκιμής σας με αναλυτικά πακέτα για πιο λεπτομερή ανάλυση αποτελεσμάτων χρησιμοποιώντας το πλούσιο οικοσύστημα στατιστικών εφαρμογών και εργαλείων της Python.

Το Playwright περιλαμβάνει δεσμεύσεις γλώσσας για το C #, ώστε να μπορείτε να μεταφέρετε το Playwright σε υπάρχοντα δοκιμαστικά πλαίσια για ASP.NET ή άλλα εργαλεία .NET. Δεν χρειάζεται να αλλάξετε τον τρόπο που εργάζεστε για να εισαγάγετε νέα εργαλεία και η Microsoft υπόσχεται επιπλέον δεσμεύσεις γλώσσας για Java και Ruby. Υπάρχει η προοπτική περισσότερων στο μέλλον, καθώς η τεκμηρίωση του Playwright δηλώνει ότι έχει σχεδιαστεί για να υποστηρίζει δεσμεύσεις για οποιαδήποτε γλώσσα. Με όλο τον κώδικα στο GitHub, υπάρχει η ευκαιρία να δημιουργήσετε τις δικές σας δεσμεύσεις για τη δοκιμαστική γλώσσα της επιλογής σας και να τις υποβάλετε ως αίτημα έλξης στο έργο.