advanced scripting complex testing workflows postman
Μάθετε για το Postman Advanced Scripting για σύνθετες ροές εργασιών δοκιμών:
Σε αυτό το σεμινάριο, θα δούμε μερικά βασικά παραδείγματα της χρήσης Advanced Scripting with Postman τα οποία θα μας επέτρεπαν να εκτελέσουμε σύνθετες ροές εργασιών δοκιμών.
Θα συζητήσουμε παραδείγματα όπως Διαβίβαση δεδομένων από ένα αίτημα σε άλλο, Αίτηση αλυσίδας, δηλαδή έλεγχος της εκτελεστικής σειράς των αιτημάτων μέσα στη συλλογή Postman κ.λπ.
δείγμα σχεδίου δοκιμής για διαδικτυακή εφαρμογή
=> Διαβάστε τη σειρά Εκπαίδευσης Easy Postman.
Τι θα μάθετε:
- Διαβίβαση δεδομένων μεταξύ αιτημάτων στον Ταχυδρόμο
- Ζητήστε αλυσίδα στον ταχυδρόμο
- Προηγμένη αλυσίδα ροής εργασίας με ταχυδρόμο
- Σημαντικές συμβουλές
- συμπέρασμα
- Συνιστώμενη ανάγνωση
Διαβίβαση δεδομένων μεταξύ αιτημάτων στον Ταχυδρόμο
Η μεταφορά δεδομένων μεταξύ αιτημάτων είναι μια επέκταση της χρήσης διαφορετικών τύπων μεταβλητών Postman. Δεν είναι πολύ ασυνήθιστο όταν ένα αίτημα API εξαρτάται από δεδομένα από την απάντηση του προηγούμενου αιτήματος.
Για να δημιουργήσουμε τέτοιου είδους δυνατότητες χρησιμοποιώντας το Postman, μπορούμε απλώς να χρησιμοποιήσουμε μεταβλητές Postman για να ορίσουμε την τιμή ανάλογα με την απόκριση που ελήφθη από τα προηγούμενα ή προηγούμενα αιτήματα.
Εδώ είναι ένα εκπαιδευτικό βίντεο:
Ας δούμε ένα παράδειγμα για να το δείξουμε αυτό.
Θα χρησιμοποιούμε το ίδιο API https://reqres.in με τα 2 τελικά σημεία του, δηλ. Εγγραφή χρήστη και Λήψη στοιχείων χρήστη.
Θα χρησιμοποιήσουμε την τιμή του αναγνωριστικού χρήστη που επιστρέφεται από το τελικό σημείο εγγραφής και θα το χρησιμοποιήσουμε για να λάβουμε τη μέθοδο λεπτομερειών χρήστη. Αυτό θα επιτευχθεί αποθηκεύοντας την τιμή userId σε μια μεταβλητή περιβάλλοντος και χρησιμοποιώντας αυτήν τη μεταβλητή περιβάλλοντος στο επακόλουθο αίτημα.
Λάβετε υπόψη ότι όλα αυτά τα σενάρια θα είναι μέρος της καρτέλας 'Δοκιμές' της κονσόλας δημιουργού αιτημάτων Postman.
Ας δούμε πώς θα είναι το σενάριο:
# 1) Για την καταχώριση τελικού σημείου χρήστη, η απόκριση αυτού του API θα φαίνεται όπως φαίνεται παρακάτω.
{ 'id': 4, 'token': 'QpwL5tke4Pnpja7X4' }
Τώρα, για να εκτελέσετε το αίτημα GET χρησιμοποιώντας το αναγνωριστικό χρήστη από την απόκριση, πρέπει να λάβουμε την τιμή αναγνωριστικού από την παραπάνω απόκριση. Θα χρησιμοποιήσουμε το παρακάτω σενάριο για να αποθηκεύσουμε την τιμή του αναγνωριστικού από αυτό το JSON σε μια μεταβλητή περιβάλλοντος που ονομάζεται ταυτότητα χρήστη.
var jsonData = pm.response.json(); pm.environment.set('userId',jsonData.id)
Με το παραπάνω σενάριο, η τιμή του αναγνωριστικού θα αποθηκευτεί τώρα στη μεταβλητή περιβάλλοντος χρήστηId και η ίδια μπορεί να χρησιμοποιηθεί κατά την εκτέλεση του τελικού σημείου αίτησης χρήστη GET.
#δύο) Έτσι, το αίτημα χρήστη GET θα φαίνεται όπως φαίνεται παρακάτω.
https://reqres.in/api/users/{(userId}}
Μόλις εκτελεστεί το πρώτο αίτημα, θα πάρει την τιμή του UserID από την απόκριση και θα ενημερώσει την τιμή της μεταβλητής περιβάλλοντος, έτσι ώστε να μπορεί να χρησιμοποιηθεί στα άλλα αιτήματα.
Ζητήστε αλυσίδα στον ταχυδρόμο
Ας προσπαθήσουμε πρώτα να κατανοήσουμε μια βασική περίπτωση χρήσης της αλυσίδας αιτήσεων και στη συνέχεια θα ερευνήσουμε περαιτέρω πώς μπορούμε να επιτύχουμε την αλυσίδα αιτήματος χρησιμοποιώντας τον Postman.
Εξετάστε ένα σενάριο, της ροής σύνδεσης ενός ιστότοπου ηλεκτρονικού εμπορίου και επικυρώστε τον συνδεδεμένο χρήστη. Τώρα για να συνδεθεί ένας χρήστης, πρέπει πρώτα να εγγραφεί στον ιστότοπο και μόνο τότε θα μπορεί να συνδεθεί. Αυτή είναι η σειρά με την οποία ο πραγματικός ιστότοπος της εφαρμογής για κινητά εκτελεί τις κλήσεις API.
Κοιτάξτε το από μια προοπτική δοκιμής ενοποίησης. Για μια δοκιμή API, πρέπει πρώτα:
- Καλέστε το τελικό σημείο εγγραφής του API για να εγγραφεί με επιτυχία ο χρήστης.
- Στη συνέχεια, καλέστε το τελικό σημείο σύνδεσης και επικυρώστε τις λεπτομέρειες του συνδεδεμένου χρήστη.
Με τον Ταχυδρόμο, ο έλεγχος της σειράς εκτέλεσης του αιτήματος δεν είναι άμεσος. Η προεπιλεγμένη εντολή εκτέλεσης είναι από πάνω προς τα κάτω, δηλαδή η σειρά με την οποία δηλώνονται ή δημιουργούνται αιτήματα στη συλλογή Postman.
Αίτηση αλυσίδας ή η σειρά εκτέλεσης του αιτήματος αλλάζει χρησιμοποιώντας το ακόλουθο σενάριο:
postman.setNextRequest({{RequestName}});
Είναι σημαντικό να σημειωθεί εδώ ότι αυτό το σενάριο αλυσίδας αιτήματος πρέπει να προστεθεί στο σενάριο προ-αιτήματος ή σενάριο μετά το αίτημα (ή στην καρτέλα δοκιμών στο εργαλείο δημιουργίας αιτήσεων Postman) που ενεργοποιεί τη ροή εργασίας μόλις ολοκληρωθεί το αίτημα υπό εκτέλεση.
Εδώ {{RequestName}} είναι το πραγματικό όνομα αιτήματος που έχει ρυθμιστεί ή ρυθμιστεί στη συλλογή Postman.
Ας διαμορφώσουμε μια συλλογή Postman με 4 διαφορετικά αιτήματα για να απεικονίσουμε την ιδέα της αλυσίδας αιτήσεων. Δημιουργήστε μια νέα συλλογή με 4 αιτήματα (Θα χρησιμοποιήσουμε το ίδιο API https://reqres.in για να το δείξω αυτό).
Τα 4 αιτήματα στη συλλογή θα είναι τα παρακάτω:
# 1) POST αίτημα εγγραφής του χρήστη ( https://reqres.in/api/register ) με δείγμα σώματος JSON με πεδία με email και κωδικό πρόσβασης όπως παρακάτω.
{ 'email': 'eve.holt@reqres.in', 'password': 'pistol' }
#δύο) Αίτημα POST με τελικό σημείο σύνδεσης ( https://reqres.in/api/login ) με το ίδιο σώμα αιτήματος όπως παραπάνω.
# 3) Λάβετε αίτημα με το userID 4.
Η ροή εργασίας που θα προσπαθήσουμε να επιτύχουμε είναι:
Εγγραφή (POST) -> Στοιχεία χρήστη (GET) -> Είσοδος (POST)
καλύτερο δωρεάν πρόγραμμα λήψης youtube σε mp3
Ανεξάρτητα από το πώς διαμορφώνονται αυτά τα αιτήματα, θα δημιουργήσουμε μια ροή εργασίας για να εκτελεστούν με αυτήν τη σειρά.
Λάβετε υπόψη ότι τα αιτήματα ορίζονται ως Εγγραφή χρήστη, Λήψη χρήστη και Χρήστης σύνδεσης αντίστοιχα. Είναι σημαντικό να προσδιορίσετε αυτά τα ονόματα αιτημάτων ακριβώς και σωστά στο σενάριο, διαφορετικά η ροή εργασίας θα κολλήσει.
Ας δούμε πώς φαίνονται τα σενάρια τώρα.
# 1) Αίτημα POST για εγγραφή.
postman.setNextRequest('Login User');
#δύο) Αίτημα POST για σύνδεση.
postman.setNextRequest('Get User');
# 3) Λάβετε αίτημα για λήψη λεπτομερειών χρήστη. Είναι σημαντικό εδώ να μην θέλουμε να συμβεί κάτι μετά από αυτό το αίτημα. Εάν δεν προσθέσουμε σενάριο ροής εργασίας εδώ, η συλλογή Postman έχει σχεδιαστεί για να συνεχίσει το επόμενο αίτημα με τη λογική ή προεπιλεγμένη σειρά.
Έτσι, ας υποθέσουμε ότι η αρχική σειρά αιτημάτων στη συλλογή είναι Εγγραφή, Λήψη χρήστη και Σύνδεση και η ροή εργασίας μας είναι Λήψη χρήστη καθώς το στοιχείο ελέγχου δεν γνωρίζει ποιο αίτημα θα ακολουθήσει, θα μεταβεί στο επόμενο λογικό αίτημα που είναι Σύνδεση και τελικά θα οδηγήσει σε έναν άπειρο βρόχο.
Για να αποφύγετε μια τέτοια κατάσταση, είναι χρήσιμο να τερματίσετε τη ροή εργασίας χρησιμοποιώντας,
postman.setNextRequest(null)
Όποτε συναντάτε το παραπάνω σενάριο κατά τη διάρκεια μιας εκτέλεσης συλλογής, η εκτέλεση της ροής εργασίας θα σταματήσει και ο δρομέας συλλογής θα τερματιστεί.
Στις περιπτώσεις όπου υπάρχουν κυκλικές αναφορές του επόμενου αιτήματος, ο δρομέας συλλογής θα κολλήσει σε έναν άπειρο βρόχο προκαλώντας έτσι διαρροή μνήμης αργά ή γρήγορα.
Λάβετε υπόψη ότι για να εκτελέσετε τη ροή εργασίας, θα πρέπει να εκτελέσετε το πρώτο ή αρχικό αίτημα με μη αυτόματο τρόπο, δημοσιεύστε το, θα ακολουθήσει τη ροή εργασίας όπως ορίζεται στα σενάρια μετά το αίτημα.
Με άλλα λόγια, το πρώτο αίτημα που απαιτείται να εκτελεστεί ως μέρος της ροής εργασίας θα πρέπει επίσης να είναι το πρώτο αίτημα στο φάκελο συλλογής ή συλλογής, έτσι ώστε η εκτέλεση της ροής εργασίας να ξεκινά με το πρώτο αίτημα που είναι και το πρώτο αίτημα της ροής εργασίας .
Προηγμένη αλυσίδα ροής εργασίας με ταχυδρόμο
Το παραπάνω παράδειγμα που συζητήσαμε, είναι περισσότερο μια γραμμική ροή εργασίας όπου μόλις διαμορφώσαμε τη ροή εργασίας μεταξύ ενός συνόλου αιτημάτων στην ίδια συλλογή. Η ίδια τεχνική μπορεί επίσης να χρησιμοποιηθεί για την επαναφορά ενός αιτήματος πολλές φορές με βάση ορισμένες τιμές απόκρισης ή μεταβλητές περιβάλλοντος.
Εξετάστε τη δοκιμή ενοποίησης για μια εφαρμογή καλαθιού αγορών, όπου πρέπει να δοκιμάσετε ένα σενάριο όπου ένας χρήστης αναζητά ένα προϊόν και το προσθέτει στο καλάθι και πρέπει να εκτελέσει την ίδια λειτουργία 5 φορές, δηλαδή έως ότου το καλάθι έχει συνολικά 5 αντικείμενα και στη συνέχεια τελικά ολοκλήρωση αγοράς.
Επομένως, εάν γράψατε μια γραμμική ροή για αυτό το είδος δοκιμής, θα επαναλάβατε μεμονωμένα αιτήματα στη συλλογή και ουσιαστικά η συλλογή θα είχε 5 αιτήματα για αναζήτηση ενός αντικειμένου και 5 αιτήματα για την προσθήκη προϊόντων στο καλάθι και 1 αίτημα για ολοκλήρωση αγοράς.
Με αυτήν τη λειτουργικότητα της ροής εργασίας, μπορούμε να αποφύγουμε την επανάληψη των ίδιων αιτημάτων στη συλλογή και να χρησιμοποιήσουμε τις ροές εργασίας για εναλλαγή μεταξύ των αιτημάτων.
Ας δούμε μια ακολουθία ροής για ένα τέτοιο σενάριο (τότε αυτό μπορεί να χρησιμοποιηθεί / δημιουργηθεί χρησιμοποιώντας τη ροή εργασίας Postman μαζί με έναν συνδυασμό μεταβλητών περιβάλλοντος).
Υπάρχει επίσης ένα ενδιαφέρον παράδειγμα χρήσης της ροής εργασίας Postman για τη δημιουργία μιας λίστας αναπαραγωγής Spotify. Αναφέρομαι εδώ Για περισσότερες πληροφορίες.
Σημαντικές συμβουλές
Παρακάτω δίνονται μερικές σημαντικές συμβουλές που πρέπει να θυμάστε ενώ εργάζεστε για τη δημιουργία ροών εργασίας.
- Κατά την εκτέλεση μιας συλλογής, εάν λίγα αιτήματα δεν έχουν postment.setNextRequest, η εκτέλεση συνεχίζεται με την προεπιλεγμένη σειρά συλλογής. Επομένως, συνιστάται γενικά να έχετε το Postman.setNextRequest είτε σε όλα τα αιτήματα είτε σε κανένα από αυτά.
- Όταν εκτελείται με συλλογές, εάν υπάρχουν φάκελοι σε μια συλλογή, τότε το Postman.setNextRequest μπορεί να χρησιμοποιηθεί μόνο για αιτήματα που ανήκουν στον ίδιο φάκελο, δηλαδή η επιλογή αιτημάτων δεν μπορεί να υπερβαίνει τον τρέχοντα φάκελο.
- Το Postman.setNextRequest είναι η τελευταία δήλωση που εκτελείται στο σενάριο μετά το αίτημα ή πριν από το αίτημα, ανεξάρτητα από το πού και τη σειρά που αναφέρεται.
Στην περίπτωση πολλαπλών τιμών που βρέθηκαν για το setNextRequest, αυτή που αναφέρεται στο τελευταίο είναι αποτελεσματική.
συμπέρασμα
Σε αυτό το σεμινάριο, καλύψαμε λίγα προηγμένα θέματα δέσμης ενεργειών όπως ο συνδυασμός περιβάλλοντος και τοπικών μεταβλητών για τη μετάδοση δεδομένων μεταξύ διαφορετικών αιτημάτων στον Ταχυδρόμο και πώς μπορούμε να ελέγξουμε τη σειρά εκτέλεσης των αιτημάτων χρησιμοποιώντας την αλυσίδα αιτήματος Postman που επιτρέπει προηγμένες δυνατότητες όπως βρόχο και διακλάδωση
Είναι ένα ωραίο χαρακτηριστικό για να μιμείται τη συμπεριφορά μιας εφαρμογής με τον τρόπο που θα αλληλεπιδρούσε με διαφορετικά API και είναι χρήσιμο να γράφετε ροές εργασίας από άκρο σε άκρο χρησιμοποιώντας δοκιμές ενοποίησης με τελικά σημεία API.
=> Δείτε τον Οδηγό Εκπαίδευσης Perfect Postman εδώ.
Συνιστώμενη ανάγνωση
- Τα καλύτερα εργαλεία δοκιμής λογισμικού 2021 (QA Test Automation Tools)
- Testing Primer eBook Λήψη
- Tutorial POSTMAN: Δοκιμή API χρησιμοποιώντας το POSTMAN
- Έλεγχος απόδοσης των Υπηρεσιών Ιστού με τη χρήση σεναρίων LoadRunner VuGen
- Πώς να χρησιμοποιήσετε τον ταχυδρόμο για τη δοκιμή διαφορετικών μορφών API;
- Φόρτωση δοκιμής με HP LoadRunner Tutorials
- Διαφορά μεταξύ Desktop, Client Server Testing και Web Testing
- Είστε νέος ή προχωρημένος ελεγκτής; Βρείτε από αυτό το παιχνίδι καρτών