how automate api requests using rest assured
Σε αυτό το σεμινάριο θα μάθουμε να αυτοματοποιούμε αιτήματα API χρησιμοποιώντας το REST Assured κατά την εκτέλεση δοκιμαστικών σεναρίων μέσω του Jenkins:
Στο 2ο σεμινάριο του REST API Tutorial Series, μάθαμε διαφορετικούς τύπους κωδικών απόκρισης, αιτήματα REST, βέλτιστες πρακτικές REST και δοκιμές API χρησιμοποιώντας το POSTMAN.
ΥΠΟΛΟΙΠΟ Οι διαδικτυακές υπηρεσίες γίνονται δημοφιλείς καθημερινά λόγω της ευκολίας ανάπτυξης, εφαρμογής, πρόσβασης και στη συνέχεια εκτέλεσης. Επιπλέον, αυτά είναι ελαφριά και δεν ακολουθούν αυστηρά πρότυπα.
Ωστόσο, όταν υπάρχει μεγαλύτερος αριθμός υπηρεσιών που υπάρχουν και πρέπει να εκτελεστούν σε κάθε νέα έκδοση, τότε γίνεται ένας εφιάλτης για τον υπεύθυνο δοκιμών και το κόστος του έργου. Και πάλι, ορισμένες υπηρεσίες είναι εσωτερικές που σχετίζονται με το ίδιο το έργο και ορισμένες κατασκευάζονται για να καταναλωθούν από τρίτους.
Έτσι, η ιδέα του αυτοματισμού έχει έρθει. Υπάρχουν πολλά διαθέσιμα εργαλεία για την αυτοματοποίηση των υπηρεσιών REST όπως:
- vRest
- HttpMaster
- Parasoft
- Μείνε ήσυχος
Το RestAssured είναι ένα δημοφιλές εργαλείο αυτοματισμού μεταξύ των υπεύθυνων δοκιμών. Ας δούμε γιατί είναι μια προτιμώμενη επιλογή.
Τι θα μάθετε:
Γιατί το RESTAssured;
- Είναι ανοιχτού κώδικα, επομένως οποιοσδήποτε οργανισμός μπορεί να το χρησιμοποιήσει για τις ανάγκες του έργου του.
- Το REST Assured είναι μια βιβλιοθήκη Java, οπότε δεν έρχεται ως GUI όπως άλλα εργαλεία. Είναι ένα πλαίσιο για τη δοκιμή υπηρεσιών REST στην Java.
- Παρέχει μια Ειδική Γλώσσα Τομέα (DSL) για τη δημιουργία ενός σεναρίου αυτοματισμού, χρησιμοποιεί οποιαδήποτε μητρική γλώσσα όπως η Java και δοκιμάζει το RESTful Web API.
- Υποστηρίζει μορφή XML και JSON για το Request, Responses.
- Λειτουργεί ως ακουστικός πελάτης.
- Μπορούμε να προσαρμόσουμε το αίτημα που θα στείλουμε στον διακομιστή χρησιμοποιώντας αυτήν τη βιβλιοθήκη.
- Επίσης, μπορεί να δοκιμάσει έναν ποικίλο συνδυασμό σύνθετης επιχειρηματικής λογικής.
- Είναι σε θέση να ανακτήσει τον κωδικό κατάστασης, τις απαντήσεις, το σώμα απόκρισης, τις κεφαλίδες από τον διακομιστή για το αίτημα που στάλθηκε.
- Ενεργοποιεί το BDD στυλ γραφής δοκιμαστικό σενάριο, δηλαδή με τη μορφή GIVEN-WHEN-THEN, έτσι ώστε οποιοδήποτε μέλος της επιχειρηματικής ομάδας, ειδικά από το μη IT υπόβαθρο, να μπορεί επίσης να το δει και να κατανοήσει τη λογική και τη δοκιμαστική κάλυψη.
Σε αυτό το σεμινάριο, θα αυτοματοποιήσουμε τα αιτήματα που δημιουργήσαμε νωρίτερα στο πρώτο σεμινάριο REST API μέσω του POSTMAN και θα συζητήσουμε επίσης ένα εμπορικό εργαλείο που ονομάζεται GITHUB.
Αυτοματοποίηση αιτημάτων API Ιστού με χρήση του REST Assured
Σε αυτό το σεμινάριο, θα κάνουμε αυτοματοποίηση από άκρο σε άκρο, δηλ. Δημιουργώντας μια τάξη Java και θα την εκτελέσουμε από τη Jenkins.
Προαπαιτούμενα:
- Οι προβλεπόμενοι παραλήπτες πρέπει να έχουν γνώση των Eclipse IDE, Maven, TestNG, ReportNG.
- Οι παραλήπτες θα πρέπει επίσης να γνωρίζουν τον Jenkins.
- Απαιτείται σύνδεση στο Διαδίκτυο εάν έχουμε πρόσβαση σε υπηρεσίες που αναπτύσσονται μέσω του διαδικτύου. Σε περίπτωση που έχουμε πρόσβαση σε υπηρεσίες που αναπτύσσονται τοπικά, σε αυτήν την περίπτωση, βεβαιωθείτε ότι ο υπεύθυνος δοκιμών έχει το δικαίωμα.
- Εάν αυτοματοποιούμε τυχόν εμπορικούς, ασφαλείς ιστότοπους, σε αυτήν την περίπτωση, βεβαιωθείτε ότι το διακριτικό εξουσιοδότησης, τα διακριτικά API, τα κλειδιά API κ.λπ. λειτουργούν σωστά και παρέχονται στον υπεύθυνο δοκιμών, ο οποίος αυτήν τη στιγμή αυτοματοποιεί το σενάριο.
Δοκιμή URL
- http://jsonplaceholder.typicode.com είναι σε λειτουργία
- Ο χρήστης έχει έγκυρα διαπιστευτήρια GitHub
Περιβαλλοντικές ρυθμίσεις
# 1) Εγκαταστήστε το Eclipse IDE
Πρώτα απ 'όλα, πρέπει να κατεβάσετε το Eclipse IDE από τον επίσημο ιστότοπο του Εκλειψη.
Στη συνέχεια, εγκαταστήστε το IDE. Ορίστε τη διαδρομή, την περιβαλλοντική μεταβλητή JAVA_HOME σωστά. Διατηρήστε τη διαδρομή JDK, JRE εύχρηστη για μελλοντική χρήση. Μόλις εγκατασταθεί το Eclipse, δημιουργήστε / ορίστε έναν χώρο εργασίας και ανοίξτε τον χώρο εργασίας.
σύγκριση εργαλείων διαχείρισης απαιτήσεων ανοιχτού κώδικα
Στην περίπτωσή μου είναι:
#δύο) Δημιουργήστε ένα έργο Maven
Βεβαιωθείτε ότι έχετε ρυθμίσει τις παραμέτρους του Maven home έναντι περιβαλλοντικών μεταβλητών.
# 3) Προσθέστε όλες τις σχετικές, απαραίτητες εξάρσεις, προσθήκες που σχετίζονται με REST-ASSURED, TESTNG, REPORTNG στο pom.xml.
Εδώ είναι ένα δείγμα pom.xml.
4.0.0 com restapi 2.9.1-SNAPSHOT jar restapi http://maven.apache.org UTF-8 junit junit 3.8.1 test org.testng testng 6.11 com.jayway.restassured rest-assured 2.9.0 com.jayway.jsonpath json-path 2.2.0 com.jayway.restassured json-schema-validator 2.9.0 com.google.code.gson gson 2.6.2 test org.hamcrest hamcrest-junit 2.0.0.0 org.hamcrest hamcrest-all 1.3 commons-io commons-io 2.4 io.rest-assured rest-assured-common 3.0.1 org.uncommons reportng 1.1.4 test org.testng testng com.google.inject guice 3.0 org.apache.maven.plugins maven-surefire-plugin 2.14.1 ${env} listener org.uncommons.reportng.HTMLReporter, org.uncommons.reportng.JUnitXMLReporter Tutorials.xml
# 4) Προσθέστε τα απαιτούμενα βάζα στη διαδρομή κατασκευής έργων Maven.
Κανονικά αυτά είναι αρχεία βιβλιοθήκης που βρίσκονται κάτω από ένα βάζο με εγγύηση REST, TESTNG, REPORTNG. Παρόλο που προσθέσαμε την εξάρτηση, προσθέστε το αρχείο pom.xml, αλλά μερικές φορές εμφανίζεται σφάλμα, επομένως πρέπει να προσθέσουμε αυτά τα βάζα / βιβλιοθήκες για να χτίσουμε τη διαδρομή του έργου maven, ώστε να αποτρέψουμε τα σφάλματα (εάν υπάρχουν).
Ωστόσο, όταν δημιουργούμε έργα Java αντί για έργα Maven, σε αυτήν την περίπτωση, πρέπει να διατηρήσουμε αυτά τα βάζα, βιβλιοθήκες εύχρηστα και να τα χρησιμοποιούμε όπως και όταν χρειάζεται.
# 5) Εγκατάσταση JENKINS (σε Windows)
Κατεβάστε το Jenkins από το jenkins.io/download/.
Στη συνέχεια, ανοίξτε τη ρύθμιση, ακολουθήστε τα βήματα μέχρι να εγκατασταθεί σωστά.
Μόλις εγκατασταθεί, πρέπει να ξεκινήσουμε τα JENKINS, μπορούμε να κάνουμε το ίδιο από μια γραμμή εντολών.
C: Program Files Jenkins> java -jar jenkins.war –httpPort = 9090.
Μόλις εμφανιστεί το παραπάνω μήνυμα, τότε πρέπει να περιμένουμε περισσότερο χρόνο για να δούμε το ακόλουθο μήνυμα.
Όπως μπορούμε να δούμε το τελευταίο μήνυμα στην παραπάνω οθόνη όπου η Jenkins είναι σε πλήρη λειτουργία και, ως εκ τούτου, μπορούμε τώρα να ξεκινήσουμε τη Jenkins χρησιμοποιώντας την ακόλουθη διεύθυνση URL.
http: // localhost: 9090 /
Την πρώτη φορά μπορεί να χρειαστεί χρόνος, αλλά μετά θα είναι πιο γρήγορο. Μετά από αυτό, πρέπει να δημιουργήσουμε έναν χρήστη.
Μόλις δημιουργηθεί ο χρήστης, πρέπει να επανεκκινήσουμε τον Jenkins και να αποκτήσουμε πρόσβαση στη διεπαφή χρήστη με τον κωδικό πρόσβασης.
Μόλις εγκατασταθεί το Jenkin, μπορούμε να εγκαταστήσουμε τις προσθήκες μέσω του Manage Jenkins> Global Tool Configuration (ακόμη και κατά την εγκατάσταση του Jenkin).
Δημιουργία σεναρίου αυτοματισμού
# 6) Μπορούμε να δημιουργήσουμε ένα νέο JAVA CLASS και να το μετατρέψουμε σε TESNG ή δημιουργήστε απευθείας ένα TESTNG CLASS ακολουθούμενο από τη δημιουργία ενός νέου αρχείου XML (testng.xml).
Για απλότητα, δημιουργούνται δύο τάξεις Java
# 1) Tutorial1.java - Αυτό το αρχείο περιέχει χρήση όλων των μεθόδων, όπως GET, POST, PUT, PATCH, DELETE, LOGREQUEST, LOGRESPONSE, ASSERT χρησιμοποιώντας ένα εικονικό URL δοκιμής https: jsonplaceholder.typicode.com.
Παρόλο που η διεύθυνση URL συμπεριφέρεται σαν μια αρχική διεύθυνση URL, επιστρέφοντας τέτοιες απαντήσεις, αλλά στην πραγματικότητα μέσω του διακομιστή δεν γίνεται καμία τροποποίηση. Είναι μόνο για την επίδειξη των ιδιοτήτων και της αντίδρασης των υπηρεσιών Ιστού όταν λαμβάνουν οποιοδήποτε αίτημα από έναν πελάτη.
# 2) Tutorial2.java - Αυτό το αρχείο περιέχει το παράδειγμα του GitHub σε πραγματικό χρόνο, όπου θα διαβάζουμε το σχόλιο που προστέθηκε σε μια ουσία.
Σημείωση : Το GitHub απαιτεί έλεγχο ταυτότητας, επομένως πρέπει να δημιουργήσουμε διακριτικό API ή βασική εξουσιοδότηση μόλις συνδεθούμε στο GitHub - ρυθμίσεις αλλιώς μπορούμε να δημιουργήσουμε διακριτικό εξουσιοδότησης από το ίδιο το POSTMAN
TESNG.XML
Εδώ είναι το αρχείο XML που θα εκτελέσει και τα δύο Tutorial1.java και Tutorial2.java
Για σκοπούς επίδειξης, έχω αποκλείσει όλες τις μεθόδους εκτέλεσης και επέτρεψα να εκτελεστεί μόνο μία μέθοδο GET του Tutorial1.java. Ωστόσο, εάν θέλουμε να δούμε όλες τις μεθόδους που εκτελούνται, τότε πρέπει να αντικαταστήσουμε με πάνω από το αρχείο TestNG XML. Στην περίπτωσή μας το όνομα αρχείου TestNG είναι testng1.xml.
Τώρα αν εκτελέσουμε τα παραπάνω αρχείο testng1.xml μέσω του Eclipse τότε θα πάρουμε τα ακόλουθα έξοδος κονσόλας.
(TestNGContentHandler) (ΠΡΟΕΙΔΟΠΟΙΗΣΗ) Συνιστάται ανεπιφύλακτα να προσθέσετε το '' στο επάνω μέρος του αρχείου σας, διαφορετικά, το TestNG ενδέχεται να αποτύχει ή να μην λειτουργεί όπως αναμένεται.
(TestNG) Τρέξιμο:
Δ: RestAssured restapi testng1.xml
*** ΛΗΨΗ ΜΕΘΟΔΟΥ ***
Userid - (1) έως - (3) Τίτλος - (αν είναι ενοχλητικό ότι η άσκηση είναι επώδυνη ή) σώμα - (και σωστά, αλλά ο νόμος
Και όλες οι εκλογές ή για την ευχαρίστηση των τυφλών είναι
ή καταγγέλλοντας οποιαδήποτε προκύπτουσα θλίψη και ευχαρίστηση
και είναι πρόθυμος προς και από τη δουλειά μιας δυσοίωνης ή δυσφορίας · και το)
*** ΛΗΨΗ ΜΕΘΟΔΟΥ ***
—————————————————–
Εκπαιδευτικά προγράμματα REST API
Συνολικές δοκιμές που εκτελέστηκαν: 1, Αποτυχίες: 0, Παράλειψη: 0
—————————————————-
εντολή grep σε unix με παραδείγματα
Εδώ είναι το αποτέλεσμα της δοκιμής της σουίτας.
Εδώ είναι η προεπιλεγμένη αναφορά που δημιουργήθηκε από το TestNG.
Εδώ είναι η αναφορά που δημιουργήθηκε από το ReportNG.
Δεδομένου ότι έχουμε ήδη διαμορφώσει το ReportNG, ως εκ τούτου μπορούμε να περιμένουμε μια σαφή προβολή του συνόλου που πέρασε, αποτυχημένος αριθμός όπως παραπάνω.
Εκτέλεση δοκιμαστικών σεναρίων χρησιμοποιώντας γραμμή εντολών
- Πρέπει να ξεκινήσουμε τη γραμμή εντολών
- Ορίστε τον κατάλογο εργασίας ως τη θέση του χώρου εργασίας
- Βρείτε τη θέση κάδου / προορισμού
- Εύρεση / δημιουργία τοποθεσίας βιβλιοθήκης
- Πρώτον, χρειαζόμαστε ένα σετ, τον κατάλογο στον οποίο υπάρχει το έργο. Στην περίπτωσή μου είναι D: RestAssured restapi
- Java - λέξη-κλειδί
- cp - Είναι το classpath, σημαίνει τη διαδρομή στην οποία υπάρχει η κλάση Java στο έργο
- Στόχος - Είναι το ίδιο με το φάκελο bin όταν εργαζόμαστε σε ένα έργο Java. Δεδομένου ότι εργαζόμαστε για το έργο Maven, ως εκ τούτου θα έχουμε αυτόν τον φάκελο. Κάτω από αυτόν το φάκελο, μπορούμε να έχουμε, δύο ακόμη φακέλους: τάξεις, δοκιμαστικές τάξεις. Η πραγματική κλάση Java υπάρχει μεταξύ αυτών των δύο φακέλων
- Lib - Αυτός ο φάκελος θα περιέχει όλα τα βάζα που έχουμε χρησιμοποιήσει κατά την εκτέλεση του δοκιμαστικού σεναρίου από το Eclipse. Σε ορισμένες περιπτώσεις, ο φάκελος ενδέχεται να μην υπάρχει. Επομένως, ίσως χρειαστεί να δημιουργήσουμε ένα φάκελο και να διατηρήσουμε όλα τα βάζα, τα εκτελέσιμα, κ.λπ. μέσα σε αυτόν.
- org.testng.TestNG testng1.xml - Είναι σαν σύνταξη. Το τελευταίο μέρος είναι testng1.xml είναι το αρχείο πόρων του TestNG, το οποίο θα κληθεί να εκτελέσει τα επιθυμητά σενάρια δοκιμής
Η πλήρης εντολή θα είναι
java -cp target / test-class; target / Classes; lib / * org.testng.TestNG testng1.xml
Μετά από αυτό πατήστε enter
Σημείωση: Μπορούμε να δούμε το φάκελο bin ενώ εργαζόμαστε σε ένα έργο Java. Ωστόσο, εάν εργαζόμαστε σε ένα έργο Maven τότε θα έχουμε έναν φάκελο προορισμού και κανονικές τάξεις, ο φάκελος δοκιμαστικών τάξεων θα υπάρχει κάτω από αυτόν.
Δημιουργία αρχείου BAT και εκτέλεση δοκιμαστικών σεναρίων
Αντί να ανοίξουμε τη γραμμή εντολών και να εκτελέσουμε την παραπάνω εντολή για την εκτέλεση του δοκιμαστικού σεναρίου, μπορούμε να διατηρήσουμε την εντολή σε ένα αρχείο κειμένου και ενώ την αποθηκεύουμε της δίνει ένα όνομα όπως,
'Run.bat' (βεβαιωθείτε ότι κρατάτε το '' γύρω από το run.bat)
Δείτε πώς φαίνεται μόλις δημιουργηθεί.
Τώρα κάντε διπλό κλικ στο 'run'
Η γραμμή εντολών θα ανοίξει και θα εκτελέσει το σενάριο δοκιμής και μόλις ολοκληρωθεί η εκτέλεση, η γραμμή εντολών κλείνει.
Ενσωμάτωση JENKINS με το Maven, Java
Πρέπει να κάνουμε 4-5 διαμορφώσεις στο Jenkins για να το ενσωματώσουμε στο Maven, Java και να εκτελέσουμε το ίδιο.
Μόλις συνδεθούμε με τον Jenkins,
Goto Manager Jenkins >> Διαμόρφωση καθολικού εργαλείου
ορίστε τη διαδρομή εγκατάστασης JDK
Σημείωση : Βεβαιωθείτε ότι η έκδοση του Jenkin υποστηρίζει την έκδοση JDK / Java. Η έκδοση 2.73 της Jenkins απαιτεί τουλάχιστον JDK / JAVA Έκδοση 1.8, αλλιώς θα δημιουργήσει προβλήματα κατά την εκτέλεση των δοκιμαστικών σεναρίων.
Ορίστε τη διαδρομή εγκατάστασης του Maven
Μετά από αυτό, το Goto Manager Jenkins >> Configure Systems
πώς να προβάλετε αρχεία .eps
Ορισμός περιβαλλοντικής μεταβλητής διαδρομής
Επόμενο, Δημιουργήστε ένα νέο αντικείμενο
Πρέπει να κάνουμε κλικ στη δημιουργία νέου συνδέσμου, να καθορίσουμε το όνομα για την εργασία, επιλέξτε τον τύπο του έργου ως Ελεύθερη κολύμβηση . Δεν χρειάζεται να ανησυχείτε για άλλα πράγματα από τώρα.
Μόλις δημιουργηθεί η εργασία θα μοιάζει με αυτό.
Τώρα κάντε κλικ στην εργασία
Ακολουθήστε τα παρακάτω βήματα:
- Κάντε κλικ στο σύνδεσμο διαμόρφωσης στο αριστερό πλαίσιο.
- Μετακινηθείτε προς τα κάτω στην καρτέλα Γενικά και κάντε κλικ στο κουμπί Για προχωρημένους.
- Επιλέξτε το πλαίσιο ελέγχου προσαρμοσμένου χώρου εργασίας και καθορίστε τη θέση του φακέλου έργου.
Μετά από αυτό
- Κάντε κύλιση προς τα κάτω για να δημιουργήσετε κανόνες ετικέτας
- Επιλέξτε το πλαίσιο ελέγχου Δημιουργία περιοδικά
- Ορίστε λίγο χρόνο όπως αναφέρεται παρακάτω
Κάντε κύλιση προς τα κάτω, ορίστε το όνομα του Build. Στην περίπτωσή μας, είναι μια εκτελέσιμη εντολή δέσμης Windows.
Βρίσκεται στην ίδια τοποθεσία όπου διατηρήσαμε το αρχείο run.bat νωρίτερα, δηλαδή το φάκελο D: RestAssured restapi
Αποθηκεύστε όλες τις παραπάνω αλλαγές που έχουν γίνει μέχρι στιγμής.
Τώρα, περιμένετε να εκτελεστεί η δουλειά cron. Μπορούμε να δούμε ότι το build ξεκίνησε.
Μόλις η κατασκευή εκτελεστεί με επιτυχία, στη συνέχεια πρέπει να κάνουμε κλικ στο build # 20 όπως καθορίζεται στην παραπάνω εικόνα.
Κάνε κλικ στο Έξοδος κονσόλας σύνδεσμος στον αριστερό πίνακα.
Τώρα θα πρέπει να μπορούμε να δούμε την ακόλουθη έξοδο.
συμπέρασμα
Το REST ASSURED είναι μια πολύ χρήσιμη βιβλιοθήκη JAVA για την αυτοματοποίηση του REST API ανεξάρτητα από τη γλώσσα. Έχει πολλές ενσωματωμένες επιλογές. Επίσης, έχει πολλές εκδόσεις με ενδιαφέρουσες λειτουργίες, επιλογές που περιλαμβάνονται σε αυτό. Υποστηρίζει πολλές μορφές ως αιτήματα όπως XML, JSON κ.λπ.
Σε αυτό το σεμινάριο, εξηγήσαμε πώς να αυτοματοποιήσουμε τα αιτήματα API χρησιμοποιώντας RESTAssured κατά την εκτέλεση δοκιμαστικών σεναρίων χρησιμοποιώντας Jenkins. Εξηγήσαμε επίσης γιατί το Rest Assured είναι μια καλύτερη επιλογή για αυτοματοποίηση αιτημάτων API.
Ελπίζουμε να σας άρεσε να διαβάζετε αυτήν τη σειρά Tutorial Rest API!
Συνιστώμενη ανάγνωση
- Δοκιμή REST API με αγγούρι με προσέγγιση BDD
- 10 καλύτερα εργαλεία δοκιμών API το 2021 (SOAP και REST API Testing Tools)
- Δοκιμή REST API με Spring RestTemplate και TestNG
- Εργασία με αιτήματα HTTP στο JMeter
- Tutorial POSTMAN: Δοκιμή API χρησιμοποιώντας το POSTMAN
- Κορυφαίες 20 πιο σημαντικές ερωτήσεις και απαντήσεις συνέντευξης δοκιμών API
- Τα 10 καλύτερα εργαλεία διαχείρισης API με σύγκριση δυνατοτήτων
- Κορυφαίες 36 ερωτήσεις συνέντευξης της Jenkins (Για το 2021)