Οδηγός δοκιμής API: Τι είναι ο αυτοματισμός δοκιμής API;
Τι είναι η δοκιμή API;
Δοκιμή API είναι ένας τύπος δοκιμής λογισμικού που επικυρώνει τις διεπαφές προγραμματισμού εφαρμογών (API). Ο σκοπός του API Testing είναι να ελέγξει τη λειτουργικότητα, την αξιοπιστία, την απόδοση και την ασφάλεια των διεπαφών προγραμματισμού. Στη δοκιμή API, αντί να χρησιμοποιείτε τυπικές εισόδους χρήστη (πληκτρολόγιο) και εξόδους, χρησιμοποιείτε λογισμικό για να στέλνετε κλήσεις στο API, να λαμβάνετε έξοδο και να σημειώνετε την απόκριση του συστήματος. Οι δοκιμές API διαφέρουν πολύ από τις δοκιμές GUI και δεν επικεντρώνονται στην εμφάνιση και την αίσθηση μιας εφαρμογής. Επικεντρώνεται κυρίως στο επίπεδο επιχειρηματικής λογικής της αρχιτεκτονικής λογισμικού.
Για το παρασκήνιο, API (Διεπαφή Προγραμματισμού Εφαρμογών) είναι μια υπολογιστική διεπαφή που επιτρέπει την επικοινωνία και την ανταλλαγή δεδομένων μεταξύ δύο χωριστών συστημάτων λογισμικού. Ένα σύστημα λογισμικού που εκτελεί ένα API περιλαμβάνει διάφορες λειτουργίες/υπορουτίνες που μπορεί να εκτελέσει ένα άλλο σύστημα λογισμικού. Το API ορίζει τα αιτήματα που μπορούν να γίνουν, τον τρόπο υποβολής αιτημάτων, τις μορφές δεδομένων που μπορούν να χρησιμοποιηθούν κ.λπ., μεταξύ δύο συστημάτων λογισμικού.
Ρύθμιση Περιβάλλοντος Αυτοματισμού Δοκιμών API
Αυτοματοποίηση API Η δοκιμή απαιτεί μια εφαρμογή που μπορεί να αλληλεπιδράσει μέσω ενός API. Για να δοκιμάσετε ένα API, θα χρειαστεί
- Χρησιμοποιήστε το εργαλείο δοκιμής για να οδηγήσετε το API
- Γράψτε τον δικό σας κώδικα για να δοκιμάσετε το API
Λίγα Σημεία που πρέπει να σημειωθούν
- Η δοκιμή API είναι διαφορετική από άλλους τύπους δοκιμών λογισμικού, καθώς το GUI δεν είναι διαθέσιμο, και ωστόσο πρέπει να ρυθμίσετε το αρχικό περιβάλλον που θα καλεί το API με ένα απαιτούμενο σύνολο παραμέτρων και στη συνέχεια να εξετάσετε τελικά το αποτέλεσμα της δοκιμής.
- Ως εκ τούτου, η δημιουργία ενός περιβάλλοντος δοκιμής για δοκιμές αυτοματισμού API φαίνεται λίγο περίπλοκη.
- Η βάση δεδομένων και ο διακομιστής θα πρέπει να ρυθμιστούν σύμφωνα με τις απαιτήσεις της εφαρμογής.
- Μόλις ολοκληρωθεί η εγκατάσταση, η συνάρτηση API θα πρέπει να κληθεί για να ελέγξει εάν αυτό το API λειτουργεί.
Τύποι εξόδου ενός API
Μια έξοδος API θα μπορούσε να είναι
- Κάθε είδος δεδομένων
- Κατάσταση (ας πούμε Pass ή Fail)
- Κλήση άλλης συνάρτησης API.
Ας δούμε ένα παράδειγμα καθενός από τους παραπάνω τύπους σε αυτό το σεμινάριο δοκιμής API
Οποιοσδήποτε τύπος δεδομένων
Παράδειγμα: Υπάρχει μια συνάρτηση API που πρέπει να προσθέσει δύο ακέραιους αριθμούς.
Long add(int a, int b)
Οι αριθμοί πρέπει να δίνονται ως παράμετροι εισαγωγής. Η έξοδος πρέπει να είναι άθροισμα δύο ακεραίων αριθμών. Αυτό το αποτέλεσμα πρέπει να επαληθευτεί με ένα αναμενόμενο αποτέλεσμα.
Η κλήση πρέπει να γίνει όπως π.χ
add (1234, 5656)
Πρέπει να αντιμετωπίζονται εξαιρέσεις εάν ο αριθμός υπερβαίνει το ακέραιο όριο.
Κατάσταση (ας πούμε Pass ή Fail)
Εξετάστε την παρακάτω συνάρτηση API –
- Κλειδαριά()
- Ξεκλείδωμα()
- Διαγράφω()
Επιστρέφουν οποιαδήποτε τιμή όπως True (σε περίπτωση επιτυχίας) ή false (Σε περίπτωση σφάλματος) ως έξοδο.
Μια πιο ακριβής Δοκιμαστική θήκη θα ήταν, μπορεί να καλέσει τις συναρτήσεις σε οποιοδήποτε από τα σενάρια και αργότερα να ελέγξει για αλλαγές είτε στη βάση δεδομένων είτε στο GUI της εφαρμογής.
Κλήση άλλου API / Συμβάντος
Σε αυτήν την περίπτωση, καλούμε μία από τις συναρτήσεις API η οποία με τη σειρά της θα καλέσει μια άλλη συνάρτηση.
Για παράδειγμα – Η συνάρτηση First API μπορεί να χρησιμοποιηθεί για τη διαγραφή μιας καθορισμένης εγγραφής στον πίνακα και αυτή η συνάρτηση, με τη σειρά της, καλεί μια άλλη συνάρτηση για ΑΝΑΝΕΩΣΗ της βάσης δεδομένων.
Δοκιμές για δοκιμές API:
Οι δοκιμαστικές περιπτώσεις δοκιμών API βασίζονται σε
- Επιστρεφόμενη τιμή βάσει συνθήκης εισαγωγής: είναι σχετικά εύκολο να δοκιμαστεί, καθώς η είσοδος μπορεί να οριστεί και τα αποτελέσματα μπορούν να επαληθευτούν
- Δεν επιστρέφει τίποτα: Όταν δεν υπάρχει τιμή επιστροφής, πρέπει να ελεγχθεί μια συμπεριφορά του API στο σύστημα
- Ενεργοποίηση κάποιου άλλου API/συμβάντος/διακοπής: Εάν μια έξοδος ενός API ενεργοποιεί κάποιο συμβάν ή διακοπή, τότε αυτά τα συμβάντα και οι ακροατές διακοπής θα πρέπει να παρακολουθούνται
- Ενημέρωση δομής δεδομένων: Η ενημέρωση της δομής δεδομένων θα έχει κάποιο αποτέλεσμα ή αποτέλεσμα στο σύστημα και αυτό θα πρέπει να πιστοποιηθεί
- Τροποποίηση ορισμένων πόρων: Εάν η κλήση API τροποποιήσει ορισμένους πόρους, τότε θα πρέπει να επικυρωθεί με πρόσβαση σε αντίστοιχους πόρους
Προσέγγιση δοκιμής API
Προσέγγιση δοκιμής API είναι μια προκαθορισμένη στρατηγική ή μια μέθοδος που θα εκτελέσει η ομάδα QA προκειμένου να πραγματοποιήσει τη δοκιμή API αφού είναι έτοιμη η κατασκευή. Αυτή η δοκιμή δεν περιλαμβάνει τον πηγαίο κώδικα. Η προσέγγιση δοκιμών API βοηθά στην καλύτερη κατανόηση των λειτουργιών, των τεχνικών δοκιμών, των παραμέτρων εισαγωγής και της εκτέλεσης των δοκιμαστικών περιπτώσεων.
Τα ακόλουθα σημεία βοηθούν τον χρήστη να κάνει μια προσέγγιση δοκιμής API:
- Κατανόηση της λειτουργικότητας του προγράμματος API και σαφής καθορισμός του πεδίου εφαρμογής του προγράμματος
- Εφαρμόστε τεχνικές δοκιμών όπως κλάσεις ισοδυναμίας, ανάλυση οριακών τιμών και εικασία σφαλμάτων και εγγραφή δοκιμαστικών περιπτώσεων για το API
- Οι παράμετροι εισόδου για το API πρέπει να προγραμματιστούν και να οριστούν κατάλληλα
- Εκτελέστε τις περιπτώσεις δοκιμής και συγκρίνετε τα αναμενόμενα και τα πραγματικά αποτελέσματα.
Διαφορά μεταξύ δοκιμής API και δοκιμής μονάδας
Δοκιμή μονάδας | Δοκιμή API |
---|---|
Οι προγραμματιστές το εκτελούν | Οι δοκιμαστές το εκτελούν |
Δοκιμάζεται ξεχωριστή λειτουργικότητα | Η λειτουργικότητα από άκρο σε άκρο ελέγχεται |
Ένας προγραμματιστής μπορεί να έχει πρόσβαση στον πηγαίο κώδικα | Οι υπεύθυνοι δοκιμών δεν έχουν πρόσβαση στον πηγαίο κώδικα |
Περιλαμβάνεται επίσης δοκιμή διεπαφής χρήστη | Μόνο οι λειτουργίες API ελέγχονται |
Μόνο οι βασικές λειτουργίες ελέγχονται | Όλα τα λειτουργικά προβλήματα ελέγχονται |
Περιορισμένη εμβέλεια | Ευρύτερο σε εύρος |
Συνήθως έτρεχε πριν από το check-in | Δοκιμαστική εκτέλεση μετά τη δημιουργία του build |
Πώς να δοκιμάσετε το API
Η δοκιμή αυτοματισμού API θα πρέπει να καλύπτει τουλάχιστον τις ακόλουθες μεθόδους δοκιμών εκτός από τη συνήθη διαδικασία SDLC
- Δοκιμή ανακάλυψης: Η ομάδα δοκιμής θα πρέπει να εκτελεί με μη αυτόματο τρόπο το σύνολο των κλήσεων που τεκμηριώνονται στο API, όπως να επαληθεύει ότι ένας συγκεκριμένος πόρος που εκτίθεται από το API μπορεί να παρατεθεί, να δημιουργηθεί και να διαγραφεί ανάλογα με την περίπτωση
- Δοκιμή χρηστικότητας: Αυτή η δοκιμή επαληθεύει εάν το API είναι λειτουργικό και φιλικό προς το χρήστη. Και το API ενσωματώνεται καλά και με άλλη πλατφόρμα
- Δοκιμή ασφαλείας: Αυτή η δοκιμή περιλαμβάνει τον τύπο ελέγχου ταυτότητας που απαιτείται και εάν τα ευαίσθητα δεδομένα είναι κρυπτογραφημένα μέσω HTTP ή και των δύο
- Αυτοματοποιημένη δοκιμή: Η δοκιμή API θα πρέπει να καταλήγει στη δημιουργία ενός συνόλου σεναρίων ή ενός εργαλείου που μπορεί να χρησιμοποιηθεί για την τακτική εκτέλεση του API
- Απόδειξη με έγγραφα: Η ομάδα δοκιμής πρέπει να βεβαιωθεί ότι η τεκμηρίωση είναι επαρκής και παρέχει αρκετές πληροφορίες για την αλληλεπίδραση με το API. Η τεκμηρίωση θα πρέπει να αποτελεί μέρος του τελικού παραδοτέου
Καλυτερα Πρακτικές Δοκιμής API:
- Οι περιπτώσεις δοκιμών API θα πρέπει να ομαδοποιούνται ανά κατηγορία δοκιμής
- Πάνω από κάθε δοκιμή, θα πρέπει να συμπεριλάβετε τις δηλώσεις των API που καλούνται.
- Η επιλογή παραμέτρων θα πρέπει να αναφέρεται ρητά στην ίδια την περίπτωση δοκιμής
- Δώστε προτεραιότητα στις κλήσεις συναρτήσεων API, έτσι ώστε να είναι εύκολο για τους δοκιμαστές να το δοκιμάσουν
- Κάθε δοκιμαστική περίπτωση θα πρέπει να είναι όσο το δυνατόν πιο αυτοτελής και ανεξάρτητη από εξαρτήσεις
- Αποφύγετε τη «δοκιμαστική αλυσίδα» στην ανάπτυξή σας
- Πρέπει να δίνεται ιδιαίτερη προσοχή κατά το χειρισμό λειτουργιών μιας κλήσης όπως – Διαγραφή, Κλείσιμο παραθύρου κ.λπ…
- Η αλληλουχία κλήσεων πρέπει να εκτελείται και να προγραμματίζεται καλά
- Για να διασφαλίσετε την πλήρη κάλυψη δοκιμής, δημιουργήστε περιπτώσεις δοκιμής API για όλους τους πιθανούς συνδυασμούς εισόδου του API.
Τύποι σφαλμάτων που εντοπίζει η δοκιμή API
- Αποτυγχάνει να χειριστεί τις συνθήκες σφάλματος με χάρη
- Αχρησιμοποίητες σημαίες
- Λείπει ή διπλότυπη λειτουργικότητα
- Ζητήματα αξιοπιστίας. Δυσκολία σύνδεσης και λήψης απάντησης από API.
- Θέματα ασφάλειας
- Ζητήματα πολλαπλών νημάτων
- Ζητήματα επιδόσεων. Ο χρόνος απόκρισης API είναι πολύ υψηλός.
- Ακατάλληλα σφάλματα/προειδοποίηση σε έναν καλούντα
- Λανθασμένος χειρισμός έγκυρων τιμών ορίσματος
- Τα δεδομένα απόκρισης δεν είναι σωστά δομημένα (JSON ή XML)
Πώς να κάνετε API Test Automation
1) ReadyAPI
ReadyAPI είναι ένα κορυφαίο εργαλείο για δοκιμές λειτουργικότητας, ασφάλειας και φόρτωσης RESTful, SOAP, GraphQL και άλλων υπηρεσιών web. Σε μια διαισθητική πλατφόρμα, θα λάβετε τρία ισχυρά εργαλεία: ReadyAPI Test, ReadyAPI Performance και ReadyAPI Virtualization. Με αυτά τα εργαλεία μπορείτε να εκτελέσετε δοκιμές λειτουργικότητας, ασφάλειας και απόδοσης/φόρτωσης. Μπορείτε επίσης να κοροϊδέψετε το API και τις υπηρεσίες ιστού με το ισχυρό εργαλείο εικονικοποίησης. Επιπλέον, μπορείτε εύκολα να ενσωματώσετε το δικό σας Σωλήνας CI/CD σε κάθε κατασκευή.
Βασικά χαρακτηριστικά
- Το ReadyAPI μπορεί να ενσωματωθεί σε οποιοδήποτε περιβάλλον.
- Διαθέτει μια λειτουργία Smart Assertion που μπορεί να δημιουργήσει μαζικές δηλώσεις σε εκατοντάδες τελικά σημεία γρήγορα.
- Εγγενής υποστήριξη για Git, Docker, Jenkins, AzureΚ.λπ.
- Υποστηρίζει γραμμή εντολών για αυτοματοποιημένες δοκιμές.
- Υποστηρίζει παράλληλη εκτέλεση λειτουργικών δοκιμών και ουρά εργασιών.
- Promoεπαναχρησιμοποίηση του κώδικα
- Αφαιρεί τις εξαρτήσεις κατά τη διάρκεια της δοκιμής και της ανάπτυξης.
Δωρεάν δοκιμή 14 ημερών (Δεν απαιτείται πιστωτική κάρτα)
Τα παρακάτω σεμινάρια παρέχουν έναν λεπτομερή οδηγό για την αυτοματοποίηση της δοκιμής API.
- Πώς να δοκιμάσετε το API με REST Assured
- Πώς να δοκιμάσετε το API με Postman
- Πώς να δοκιμάσετε το API με το UFT
Επιπλέον, υπάρχουν και άλλα εργαλεία για τη δοκιμή API. Ελέγξτε τα εδώ
Προκλήσεις της δοκιμής API
Οι προκλήσεις της δοκιμής API περιλαμβάνουν:
- Οι κύριες προκλήσεις στη δοκιμή Web API είναι Συνδυασμός παραμέτρων, Επιλογή παραμέτρων και Αλληλουχία κλήσεων
- Δεν υπάρχει διαθέσιμο GUI για να δοκιμάσετε την εφαρμογή, η οποία κάνει είναι δύσκολο να δοθούν τιμές εισόδου
- Η επικύρωση και η επαλήθευση της εξόδου σε διαφορετικό σύστημα είναι λίγο δύσκολη για τους δοκιμαστές
- Η επιλογή και η κατηγοριοποίηση των παραμέτρων απαιτείται να είναι γνωστά στους ελεγκτές
- Λειτουργία χειρισμού εξαίρεσης χρειάζεται να δοκιμαστεί
- Η γνώση κωδικοποίησης είναι απαραίτητη για τους δοκιμαστές
Συμπέρασμα
Το API αποτελείται από ένα σύνολο κλάσεων/συναρτήσεων/διαδικασιών που αντιπροσωπεύουν το επίπεδο επιχειρηματικής λογικής. Εάν το API δεν ελεγχθεί σωστά, μπορεί να προκαλέσει προβλήματα όχι μόνο στην εφαρμογή API αλλά και στην εφαρμογή κλήσης. Είναι ένα απαραίτητο τεστ στη μηχανική λογισμικού.