geb tutorial browser automation testing using geb tool
Το Geb (προφέρεται 'jeb') είναι η απάντηση στις προκλήσεις του αυτοματισμού του προγράμματος περιήγησης. Είναι ένα πολύ αποτελεσματικό εργαλείο για την πραγματοποίηση δοκιμών αυτοματισμού μέσω του διαδικτύου.
Το Geb προήλθε από την ανάγκη να κάνει τον αυτοματισμό του προγράμματος περιήγησης (αρχικά για δοκιμές στο διαδίκτυο) λιγότερο περίπλοκο, χωρίς προβλήματα και πιο αποτελεσματικό. Μπορεί να χρησιμοποιηθεί για προγραμματισμό, εξαγωγή δεδομένων από τον Ιστό και αυτοματοποίηση των μη αυτόματων εργασιών ιστού. Επιπλέον, το Geb είναι ένα cross-browser εργαλείο για δοκιμές αυτοματισμού.
Το Geb λειτουργεί ως εργαλείο που καθοδηγείται από προγραμματιστές για την αυτοματοποίηση της συνεργασίας μεταξύ προγραμμάτων περιήγησης και περιεχομένου ιστού. Εκτελεί το WebDriver στη γλώσσα του Groovy.
Η ομορφιά του εργαλείου δοκιμών Geb είναι ότι συνδυάζει τις καλύτερες δυνατότητες της γλώσσας προγραμματισμού Groovy, jQuery, Πρόγραμμα οδήγησης Web και Μοντελοποίηση αντικειμένων σελίδας για να παρέχει ισχυρή, ισχυρή και δυναμική επιθεώρηση περιεχομένου, επιλογή και αλληλεπίδραση στο διαδίκτυο.
Τι κάνει το Geb μοναδικό σε σύγκριση με άλλα εργαλεία δοκιμών αυτοματισμού διαθέσιμο στην αγορά είναι η σύνταξή του. Είναι παρόμοιο με το jQuery που χρησιμοποιείται συνήθως για την εύκολη αναζήτηση των σελίδων HTML. Δεύτερον, έχει ενσωματωμένη υποστήριξη για το πρότυπο Page Object.
Το Geb παρέχει μεγάλη βοήθεια για λειτουργικές δοκιμές ιστού μέσω ενοποίησης με ορισμένες ευρέως χρησιμοποιούμενες και κοινές πλατφόρμες δοκιμών, συμπεριλαμβανομένων Σκοκ , Grails, JUnit , Αγγούρι-JVM , TestNG, κ.λπ. Θα δούμε πώς μπορεί να ενσωματωθεί το Geb με το πλαίσιο Grails στο τελευταίο μέρος αυτού του άρθρου.
Τι θα μάθετε:
- Πρακτικές χρήσεις
- Πλεονεκτήματα
- Προαπαιτούμενα
- Ξεκινώντας
- Μάθετε με το παράδειγμα
- Δοκιμή επικύρωσης βάσης δεδομένων μέσω του σεναρίου Geb:
- Λίγες χρήσιμες μέθοδοι στο Geb
- Μειονεκτήματα αυτού του εργαλείου
- Περισσότεροι πόροι:
- συμπέρασμα
- Συνιστώμενη ανάγνωση
Πρακτικές χρήσεις
Όπως έχει ήδη συζητηθεί στην εισαγωγή αυτού του εκπαιδευτικού προγράμματος Geb, μπορεί να χρησιμοποιηθεί:
- Ως εργαλείο δοκιμής σε πολλά προγράμματα περιήγησης όπως το chrome, το Firefox, το Internet Explorer κ.λπ. (Το ίδιο σενάριο αυτοματισμού μπορεί να εκτελεστεί σε διαφορετικά προγράμματα περιήγησης για να εκτελέσει δοκιμές ιστού της εφαρμογής σας.)
- Για αυτοματοποίηση αποδοχής χρήστη και λειτουργικών περιπτώσεων δοκιμής.
- Για να αυτοματοποιήσετε σενάρια δοκιμών που δημιουργήθηκαν για λειτουργικές ή διαδικτυακές δοκιμές οποιασδήποτε εφαρμογής.
- Για να καλύψετε τον έλεγχο από άκρο σε άκρο, συμπεριλαμβανομένης της επικύρωσης διεπαφής χρήστη (διεπαφή χρήστη) και επικύρωσης DB (βάση δεδομένων).
- Ως εργαλείο προγραμματιστή για την αυτοματοποίηση της αλληλεπίδρασης μεταξύ προγράμματος περιήγησης και περιεχομένου ιστού.
Πλεονεκτήματα
- Το Geb είναι ένα δωρεάν εργαλείο ανοιχτού κώδικα. Έχει άδεια βάσει της Άδειας Apache, Έκδοση 2.0.
- Εύκολο και απλό στην αυτοματοποίηση των διαδικτυακών δοκιμών.
- Τα αντικείμενα σελίδας του Geb και το Groovy DSL κάνουν τις δοκιμές ευανάγνωστες στο βαθμό που μοιάζουν σχεδόν με απλά αγγλικά.
- Εκτελεί τις δοκιμές γρήγορα και έτσι εξοικονομεί χρόνο και κόστος δοκιμής.
- Συμβατό με διαφορετικά προγράμματα περιήγησης όπως IE, Firefox, Chrome και HTMLUnit.
- Εκτελεί τις δοκιμές στο πραγματικό πρόγραμμα περιήγησης. Είναι σαν να δοκιμάζουμε στο πραγματικό περιβάλλον - αυτό που θα βλέπει ο χρήστης.
- Διευκολύνει τον έλεγχο παλινδρόμησης. Μπορείτε να εκτελέσετε τις αυτοματοποιημένες περιπτώσεις δοκιμών Geb για να ελέγξετε εάν κάποια υπάρχουσα λειτουργικότητα σπάει μετά από μια διόρθωση ή αλλαγή στην εφαρμογή.
- Κατά τη χρήση του Geb για έλεγχο αυτοματισμού, απαιτούνται ελάχιστες αλλαγές κώδικα δοκιμής, εάν υπάρχουν αλλαγές UI στην εφαρμογή σας. Έτσι, μειώνει την προσπάθεια και την αναπαραγωγή κώδικα.
- Βοηθά 360 μοίρες (ή μέγιστη) δοκιμή κάλυψης μέσα σε ένα σενάριο.
Προαπαιτούμενα
Πριν ξεκινήσετε, πρέπει να κατεβάσετε και να εγκαταστήσετε το λογισμικό. Στο κεντρικό αποθετήριο Maven, το Geb διατίθεται ως ένα μόνο βάζο πυρήνα Geb. Κάντε κλικ ΕΔΩ για να το εγκαταστήσετε στο μηχάνημά σας.
Θα χρειαστείτε το παραπάνω βάζο πυρήνα Geb, μια εφαρμογή προγράμματος οδήγησης ιστού και το βάζο υποστήριξης σεληνίου για να κάνετε το Geb να λειτουργεί στο μηχάνημά σας.
Ανατρέξτε στην παρακάτω ενότητα εγκατάστασης και χρήσης του βιβλίου του Geb για να εγκαταστήσετε το εργαλείο και να το εκτελέσετε => Εγχειρίδιο εγκατάστασης και χρήσης Geb .
Ξεκινώντας
Όπως έχει ήδη συζητηθεί, το Geb μπορεί να ενσωματωθεί σε διαφορετικά πλαίσια δοκιμών.
Ανάλογα με το πλαίσιο που έχετε επιλέξει, θα πρέπει να εγκαταστήσετε το σχετικό πρόσθετο.
Για παράδειγμα : Γκρίλ ( Γκριλ είναι ένα πολύ διάσημο πλαίσιο για εφαρμογές Ιστού) για τη σύνταξη σεναρίων δοκιμών αυτοματοποίησης και την αυτοματοποίηση των σεναρίων δοκιμής. Εάν επιθυμείτε να χρησιμοποιήσετε το Geb για τις λειτουργικές δοκιμές του Grails, μπορείτε να εγκαταστήσετε το σχετικό πρόσθετο από εδώ πρόσθετο grails-geb . Αυτό το πρόσθετο χειρίζεται το baseUrl και αναφορές Ντιρ στοιχεία διαμόρφωσης.
Μάθετε με το παράδειγμα
Επιτρέψτε μου τώρα να δείξω πώς να γράψω ένα σενάριο Geb για να αυτοματοποιήσω ένα σενάριο δοκιμής.
Πάρτε το παρακάτω σενάριο δοκιμής:
Αναγνωριστικό σεναρίου δοκιμής | Softwaretestinghelp-1 | Αναγνωριστικό περίπτωσης δοκιμής | Softwaretestinghelp -1A |
Εξοδος | |||
Περιγραφή περίπτωσης δοκιμής | Επαληθεύστε τη σελίδα Softwaretestinghelp.com μέσω της μηχανής αναζήτησης | Κατάσταση σεναρίου αυτοματισμού | Σε εξέλιξη |
Προαπαιτούμενο | 1 Πρόγραμμα περιήγησης 2. μηχανή αναζήτησης 3. Ιστοσελίδα - Το Softwaretestinghelp.com πρέπει να υπάρχει | Προαπαιτούμενο σενάριο | ΝΑ |
Τα βήματα εκτέλεσης είναι:
Εκκινήστε τη μηχανή αναζήτησης google |
Βεβαιωθείτε ότι η μηχανή αναζήτησης φορτώθηκε με επιτυχία |
Εισαγάγετε το softwaretestinghelp.com στο πλαίσιο αναζήτησης |
Περιμένετε να φορτωθούν τα αποτελέσματα |
Επαληθεύστε εάν ο πρώτος σύνδεσμος στα αποτελέσματα κατευθύνεται στο softwaretestinghelp.com |
Εάν ναι, ανοίξτε τον σύνδεσμο. |
Περιμένετε μέχρι να ανοίξει ο ιστότοπος. |
Εδώ είναι το σενάριο εργαλείου αυτοματισμού Geb για το παραπάνω σενάριο:
import geb.Browser Browser.drive { go 'http://google.com/' //verify if we are on the correct page assert title=='Google' //enter softwaretestinghelp.com into the search field $('input',name:'q').value('softwaretestinghelp.com') //wait for the change to results page to happen //(google updates the page dynamically without a new request) waitFor{ title.endsWith('Google Serach')} //is the first link to softwaretestinghelp.com? def firstLink = $('li.g,0).find('a.l') assert firstLink.text()= ='Software Testing Help - A Must Visit Software Testing Portal' //click the link firstLink.click() //wait for Google's javascript waitFor { title = ='Software Testing Help - A Must Visit Software Testing Portal' } }
Τώρα μπορείτε να δοκιμάσετε να γράψετε ένα απλό σενάριο GEB με δική σας αναφορά στο παραπάνω παράδειγμα.
Δοκιμή επικύρωσης βάσης δεδομένων μέσω του σεναρίου Geb:
Οποιαδήποτε δοκιμή αυτοματισμού ιστού χωρίζεται σε τρία μέρη:
- Επικύρωση διεπαφής χρήστη - Επικύρωση των δεδομένων που απεικονίζονται στη διεπαφή χρήστη (διεπαφή) πριν και μετά την εκτέλεση του σεναρίου δοκιμής αυτοματισμού.
- Επικύρωση DB - Επικύρωση των δεδομένων που εμφανίζονται στη βάση δεδομένων (backend) πριν και μετά την εκτέλεση του σεναρίου δοκιμής αυτοματοποίησης.
- Πραγματική ροή δοκιμής / ροή σεναρίου.
Το σενάριο Geb γραμμένο για την αυτοματοποίηση ενός σεναρίου δοκιμής μπορεί να περιέχει τον κώδικα και για τις τρεις παραπάνω ενότητες.
Το σενάριο Geb στην παραπάνω ενότητα παραδείγματος ήταν για την αυτοματοποίηση της ροής δοκιμής και της επικύρωσης διεπαφής χρήστη. Ομοίως, μπορείτε να συντάξετε ένα δοκιμαστικό σενάριο για επικύρωση βάσης δεδομένων.
Για οποιαδήποτε δοκιμή επικύρωσης DB, μπορείτε πάντα να χρησιμοποιήσετε το παρακάτω πρότυπο ως περίγραμμα για τον κωδικό σας:
def validateDB(/*define all variables here*/) { def errorMessages = '' try { Configuration conf = (new ConfigurationLoader()).getConf() def sql = Sql.newInstance(conf.readValue('dbPath', ''), conf.readValue('dbUserName', ''), conf.readValue('dbPassword', ''), conf.readValue('dbDriverName', '')) /* Populate any required variables */ } /* Give print commands here to print required values */ def qry = /* select statement to pull all required values from database */ println 'SQL=$qry' sql.eachRow(qry) { row -> /* ‘if’ block to perform validation and returning error in case of any variations */ } catch(Exception e) { println 'EEEE=$e' } return errorMessages }
Λίγες χρήσιμες μέθοδοι στο Geb
- Όταν το σενάριο δοκιμαστικής υπόθεσης περιλαμβάνει πολλές καρτέλες και παράθυρα: Κάθε φορά που συναντάτε μια εφαρμογή που ανοίγει νέα παράθυρα ή καρτέλες, Για παράδειγμα όταν κάνετε κλικ σε έναν σύνδεσμο με ένα σύνολο χαρακτηριστικών στόχου, μπορείτε να το χρησιμοποιήσετε με Windows () και με το NewWindow () μεθόδους για την εκτέλεση κώδικα στο πλαίσιο άλλων παραθύρων.
- Η μέθοδος οδήγησης: Η κλάση προγράμματος περιήγησης περιέχει μια στατική μέθοδο - οδηγώ() . Αυτή η μέθοδος δίνει μια επιπλέον ευκολία στο Geb scripting. Όλες οι κλήσεις μεθόδου ανώτερου επιπέδου και οι προσβάσεις ιδιοκτησίας υπονοούνται ότι είναι ενάντια στο πρόγραμμα περιήγησης.
- Κάνοντας αιτήματα: Οι παρουσίες προγράμματος περιήγησης υποστηρίζουν a baseUrl ιδιότητα που χρησιμοποιείται για την επίλυση όλων των σχετικών διευθύνσεων URL. Συνήθως είναι προτιμότερο να καθορίζετε τις βασικές διευθύνσεις URL σας με κάθετες κάθετες και όχι να χρησιμοποιείτε κορυφές σε σχετικές διευθύνσεις URL.
- Αλλαγή της σελίδας: Με τη βοήθεια χρήσιμων σελίδα() μεθόδους, είναι εφικτό να αλλάξετε την παρουσία της σελίδας χωρίς να υποβάλετε νέο αίτημα.
- Τερματισμός του προγράμματος περιήγησης: Το αντικείμενο του προγράμματος περιήγησης παρέχει εγκαταλείπω() και Κλείσε() μεθόδους (που απλά παραδίδουν την εργασία στο βασικό πρόγραμμα οδήγησης).
Μειονεκτήματα αυτού του εργαλείου
- Γεννημένος εκτελεί Πρόγραμμα οδήγησης Web στη γλώσσα Groovy. Η όλη ιδέα πίσω από αυτό είναι να κάνει χρήση του Πρόγραμμα οδήγησης Web ευκολότερο και απλούστερο. Έτσι, όταν χρησιμοποιείτε το Webdriver μέσω του Geb, θα υποστηρίζεται μόνο η γλώσσα προγραμματισμού του Groovy. Αλλά, αν χρησιμοποιείτε απευθείας Πρόγραμμα οδήγησης Web , υποστηρίζει πολλές γλώσσες, όπως Ruby, C #, Python, Java.
- Δεν θα πρότεινα τη χρήση του Geb για μικρά έργα - Λειτουργεί καταπληκτικά για τεράστιες εργασίες, αλλά χτυπά τις μικρές δραστηριότητες. Εάν η εφαρμογή ιστού σας δεν περιέχει πολλές σελίδες και φόρμες μέσω των οποίων πρέπει να ρέουν οι πληροφορίες, ενδέχεται να ανακαλύψετε ότι το Geb σας κοστίζει πραγματικά επιπλέον χρόνο από ό, τι είναι διαθέσιμο.
- Είναι πολύ συγκεκριμένο για το περιβάλλον που χρησιμοποιεί η εφαρμογή ιστοτόπου σας. Το Geb απαιτείται να είναι καλά ενσωματωμένο σε ένα συγκεκριμένο περιβάλλον για να το κάνει να λειτουργεί καλά.
Περισσότεροι πόροι:
- Δείτε το Βιβλίο Geb εδώ για λεπτομερή τεκμηρίωση και παραδείγματα.
- Εδώ είναι ένα δείγμα έργου που δείχνει το ενσωμάτωση του Geb με γκριλ .
συμπέρασμα
Το Geb είναι πολύ χρήσιμο στην αυτοματοποίηση σεναρίων δοκιμαστικών περιπτώσεων. Είναι χρήσιμο να αυτοματοποιήσετε τον έλεγχο ιστού, λειτουργικής λειτουργίας και αποδοχής χρηστών. Υποστηρίζει πολλαπλά προγράμματα περιήγησης και μπορεί να ενσωματωθεί σε διαφορετικά πλαίσια. Συνδυάζει τη δύναμη του WebDriver, την κομψότητα της επιλογής jQuery, την ευρωστία της μοντελοποίησης αντικειμένων σελίδας και την εκφραστικότητα του Groovy.
Τα σενάρια Geb είναι τόσο προγραμματιστή όσο και φιλικά προς το χρήστη, παρέχοντας καλύτερη κάλυψη δοκιμών και επιταχυνόμενες δοκιμές, ενώ το καθιστούν πιο αποτελεσματικό ταυτόχρονα.
Σχετικά με τον Συγγραφέα: Αυτή είναι μια θέση επισκεπτών από την Priya K. Έχει 4+ χρόνια εμπειρίας στις Υπηρεσίες Πληροφορικής με εξειδίκευση στη Δοκιμή και υποστήριξη για διάφορες εφαρμογές.
Μη διστάσετε να δημοσιεύσετε τα ερωτήματα δοκιμής αυτοματισμού Geb σε σχόλια.
Συνιστώμενη ανάγνωση
- Οδηγός εργαλείων δοκιμής προσβασιμότητας WAVE
- Ranorex Tutorial: Ένα ισχυρό εργαλείο επιτραπέζιου υπολογιστή, ιστού και φορητού αυτοματισμού
- Sikuli GUI Automation Testing Tool - Οδηγός για αρχάριους Μέρος # 2
- Tutorial Parrot QA: Ανασκόπηση λειτουργικών δοκιμών Cross Browser
- Τα καλύτερα εργαλεία δοκιμής λογισμικού 2021 (QA Test Automation Tools)
- Εκμάθηση έκλειψης σε βάθος για αρχάριους
- Τι είναι ο έλεγχος αυτοματισμού (ο τελικός οδηγός για την έναρξη του αυτοματισμού δοκιμής)
- Parasoft SOAtest Tutorial: Εργαλείο δοκιμών API χωρίς script