Οδηγός δοκιμής υπηρεσιών Ιστού: Πώς να κάνετε δοκιμή; Μάθετε με το Παράδειγμα
Τι είναι το WebService;
Οι Υπηρεσίες Ιστού είναι ο μηχανισμός ή το μέσο επικοινωνίας μέσω του οποίου δύο εφαρμογές/μηχανές θα ανταλλάσσουν τα δεδομένα ανεξάρτητα από την υπογραμμισμένη αρχιτεκτονική τους και την τεχνολογία τους.
Τι είναι η δοκιμή υπηρεσιών Web;
Δοκιμή Υπηρεσιών Ιστού είναι ένας τύπος δοκιμής λογισμικού που επικυρώνει τις υπηρεσίες Ιστού. Ο σκοπός της δοκιμής υπηρεσιών Ιστού είναι να ελέγξει τη λειτουργικότητα, την αξιοπιστία, την απόδοση και την ασφάλεια ενός API (Διασύνδεση προγράμματος εφαρμογής). Η δοκιμή υπηρεσιών Web είναι παρόμοια με τη δοκιμή μονάδας σε ορισμένες περιπτώσεις. Μπορείτε να δοκιμάσετε μια υπηρεσία Web με μη αυτόματο τρόπο ή να δημιουργήσετε τον δικό σας κωδικό αυτοματισμού ή να χρησιμοποιήσετε ένα εργαλείο αυτοματισμού εκτός ραφιού, όπως Postman.
Γιατί απαιτείται WebService;
Γενικά, οι εφαρμογές λογισμικού αναπτύσσονται για να καταναλώνονται από τον άνθρωπο, όπου ένα άτομο στέλνει ένα αίτημα σε μια υπηρεσία λογισμικού, η οποία με τη σειρά της επιστρέφει μια απάντηση σε μορφή αναγνώσιμη από τον άνθρωπο.
Στη σύγχρονη εποχή της τεχνολογίας, αν θέλετε να δημιουργήσετε μια εφαρμογή λογισμικού, δεν χρειάζεται να δημιουργήσετε τα πάντα από την αρχή. Υπάρχουν πολλές διαθέσιμες έτοιμες υπηρεσίες τις οποίες μπορείτε να συνδέσετε στην εφαρμογή σας και μπορείτε να αρχίσετε να παρέχετε αυτές τις υπηρεσίες στην εφαρμογή σας.
Για παράδειγμα, θέλετε να εμφανίσετε πληροφορίες πρόγνωσης καιρού που δεν χρειάζεστε για να συλλέξετε, να επεξεργαστείτε και να αποδώσετε τα δεδομένα στην εφαρμογή σας. Μπορείτε να αγοράσετε τις υπηρεσίες από άτομα που έχουν ήδη εδραιωθεί στην επεξεργασία και δημοσίευση τέτοιου είδους δεδομένων.
Οι υπηρεσίες Ιστού μας επιτρέπουν να κάνουμε αυτού του είδους τις υλοποιήσεις.
Ως παράδειγμα, εξετάστε το ακόλουθο WebService
http://www.webservicex.net/stockquote.asmx?op=GetQuote
Δίνει Αξία Μεριδίου για μια Εταιρεία.
Ας βρούμε την τιμή της μετοχής για την Google (Σύμβολο: GOOG )
Η απάντηση XML δίνει την τιμή της μετοχής.
Αυτή η υπηρεσία Web μπορεί να κληθεί από μια εφαρμογή λογισμικού χρησιμοποιώντας πρωτόκολλο SOAP ή HTTP.
Πρωτόκολλα υπηρεσιών Web
Οι Υπηρεσίες Ιστού μπορούν να υλοποιηθούν με διαφορετικούς τρόπους, αλλά οι δύο παρακάτω είναι οι δημοφιλείς προσεγγίσεις υλοποίησης.
- SOAP (Πρωτόκολλο Πρόσβασης Απλού Αντικειμένου)
- REST (Αρχιτεκτονική αντιπροσωπευτικής μεταφοράς κατάστασης)
SOAP
Το SOAP είναι ένα τυπικό πρωτόκολλο που ορίζεται από το Πρότυπο W3C για την αποστολή και λήψη αιτημάτων και απαντήσεων για υπηρεσίες web.
Το SOAP χρησιμοποιεί το Μορφή XML για αποστολή και λήψη του αιτήματος και ως εκ τούτου τα δεδομένα είναι δεδομένα ανεξάρτητα από την πλατφόρμα. Τα μηνύματα SOAP ανταλλάσσονται μεταξύ των εφαρμογών παρόχου και της εφαρμογής λήψης εντός των φακέλων SOAP.
Καθώς το SOAP χρησιμοποιεί το απλό πρωτόκολλο μεταφοράς http, τα μηνύματά του δεν μπλοκάρονται από τα τείχη προστασίας.
ΠΕΡΙΦΕΡΕΙΑ
REST σημαίνει Μεταβίβαση Αντιπροσωπευτικού Κράτους. είναι μια αρχιτεκτονική που γενικά εκτελείται μέσω HTTP. Το στυλ REST δίνει έμφαση στις αλληλεπιδράσεις μεταξύ πελατών και υπηρεσιών, οι οποίες ενισχύονται με περιορισμένο αριθμό λειτουργιών. Το REST είναι μια εναλλακτική λύση στο SOAP (πρωτόκολλο πρόσβασης απλού αντικειμένου) και αντί να χρησιμοποιεί XML για αίτημα, το REST χρησιμοποιεί απλό URL σε ορισμένες περιπτώσεις. Σε αντίθεση με το SOAP, οι εφαρμογές RESTFUL χρησιμοποιούν κεφαλίδες HTTP για να μεταφέρουν μετα-πληροφορίες.
Υπάρχουν διάφοροι κώδικας που χρησιμοποιεί το REST για να προσδιορίσει εάν ο χρήστης έχει πρόσβαση στο API ή όχι, όπως ο κωδικός 200 ή 201 υποδηλώνει επιτυχημένη αλληλεπίδραση με το σώμα απόκρισης, ενώ το 400 υποδηλώνει ένα κακό αίτημα ή το URI αιτήματος δεν ταιριάζει με τα API του συστήματος. Όλες οι παράμετροι αιτήματος API και οι παράμετροι μεθόδου μπορούν να αποσταλούν μέσω οποιουδήποτε από τα δύο ΜΕΤΑ or ΠΑΡΤΕ μεταβλητές.
Το Rest API υποστηρίζει τη μορφή XML και JSON για τη δοκιμή API WebServices. Συνήθως προτιμάται για Κινητό και εφαρμογές ιστού, καθώς κάνει την εφαρμογή να λειτουργεί πιο γρήγορα και πιο ομαλά
wsdl
WSDL (Υπηρεσίες Ιστού Description Language) είναι μια γλώσσα βασισμένη σε XML που θα χρησιμοποιηθεί για την περιγραφή των υπηρεσιών που προσφέρονται από μια υπηρεσία web.
Το WSDL περιγράφει όλες τις λειτουργίες που προσφέρονται από τη συγκεκριμένη υπηρεσία web σε μορφή XML. Καθορίζει επίσης πώς μπορούν να ονομαστούν οι υπηρεσίες, δηλαδή ποια τιμή εισόδου πρέπει να παρέχουμε και ποια θα είναι η μορφή της απόκρισης που πρόκειται να δημιουργήσει για κάθε είδος υπηρεσίας.
Πώς να δοκιμάσετε μια υπηρεσία Web;
Για να δοκιμάσετε την υπηρεσία web, μπορείτε
- Δοκιμή χειροκίνητα
- Δημιουργήστε τον δικό σας αυτοματισμό Code
- Χρησιμοποιήστε ένα έτοιμο εργαλείο αυτοματισμού όπως SoapUI.
Η δοκιμή αυτοματισμού υπηρεσιών Ιστού περιλαμβάνει τα ακόλουθα βήματα:
- Κατανοήστε το αρχείο WSDL
- Προσδιορίστε τις λειτουργίες που παρέχει η συγκεκριμένη υπηρεσία web
- Καθορίστε τη μορφή αιτήματος XML που πρέπει να στείλουμε
- Προσδιορίστε τη μορφή XML απόκρισης
- Χρήση εργαλείου ή γραφής κώδικα για την αποστολή αιτήματος και την επικύρωση της απάντησης
Ας υποθέσουμε ότι θέλουμε να δοκιμάσουμε την υπηρεσία Ιστού που παρέχει Διευκόλυνση Μετατροπής Συναλλάγματος. Θα είναι οι τρέχουσες ισοτιμίες μετατροπής μεταξύ των νομισμάτων των διαφόρων χωρών. Αυτή η υπηρεσία μπορούμε να χρησιμοποιήσουμε στις εφαρμογές μας για να μετατρέψουμε τις τιμές από το ένα νόμισμα στο άλλο νόμισμα.
Τώρα ας δούμε τα παραπάνω βήματα
Βήμα 1 έως 4: Κατανόηση του WSDL και προσδιορισμός λειτουργιών και μορφών XML
Νόμισμα Convertor Το αρχείο WSDL μπορεί να δει @ (http://www.webservicex.net/CurrencyConvertor.asmx?wsdl) που θα δώσει τις πληροφορίες για το Νόμισμα Convertor μεθόδους web service που θα υποστηρίξει, την παράμετρο που πρέπει να περάσουμε και τον τύπο των παραμέτρων… κ.λπ.
Βήμα 5: Χρήση εργαλείου ή γραφής κώδικα για την αποστολή αιτήματος και την επικύρωση της απάντησης
Υπάρχουν πολλά εργαλεία δοκιμής WebService διαθέσιμα για τη δοκιμή μιας υπηρεσίας web SOAP. SoapUI είναι ένα από τα δημοφιλή Εργαλείο API που θα μας βοηθήσει να δοκιμάσουμε τις υπηρεσίες ιστού SOAP. Στην πραγματικότητα, μπορείτε να χρησιμοποιήσετε οποιαδήποτε γλώσσα προγραμματισμού που είναι ικανή να στείλει το αίτημα XML στην εφαρμογή παροχής υπηρεσιών web μέσω του http και να μπορεί να αναλύσει και να επικυρώσει την απάντηση XML έναντι του αναμενόμενου αποτελέσματος. Σε αυτό το σεμινάριο δοκιμής υπηρεσιών Web, θα δοκιμάσουμε την υπηρεσία Web
- Χρησιμοποιώντας Java
- Χρησιμοποιώντας SoapUI
ΜΕΡΟΣ 1) Δοκιμή υπηρεσιών Web με χρήση του Apache Axis2 (Java).
Γενικά η υπηρεσία web λαμβάνει το αίτημα και στέλνει την απάντηση σε μορφή XML.
Το έργο Apache Axis2 API είναι ένα Java API υλοποίησης, το οποίο θα χρησιμοποιηθεί για τη δημιουργία των υπηρεσιών Ιστού τόσο από την πλευρά του διακομιστή (παροχέας υπηρεσιών) όσο και από την πλευρά του πελάτη (καταναλωτής υπηρεσίας).
Το Axis2 είναι σε θέση να στέλνει μηνύματα SOAP και να λαμβάνει και να επεξεργάζεται τα μηνύματα SOAP. Μπορούμε να γράψουμε ένα μικρό Java πρόγραμμα που χρησιμοποιεί το API για τη δημιουργία της υπηρεσίας Ιστού. Ο Άξονας2 θα δημιουργήσει το WSDL από Java πρόγραμμα που θα χρησιμοποιηθεί για την επικοινωνία των υπηρεσιών που προσφέρει η υπηρεσία web. Μπορούμε να χρησιμοποιήσουμε τον ίδιο Άξονα2 για να δημιουργήσουμε το Java κλάση (stub) από αρχείο WSDL το οποίο μπορούμε να χρησιμοποιήσουμε ως πρόγραμμα-πελάτη για να δημιουργήσουμε το αίτημα υπηρεσίας web, να στείλουμε το αίτημα στο τελικό σημείο της υπηρεσίας και να επεξεργαστούμε την απάντηση.
- Βασικά θα δημιουργήσουμε ένα απλό Java πρόγραμμα στο οποίο θα δημιουργήσουμε την κλάση stub.
- Χρησιμοποιώντας το στέλεχος θα καλέσουμε τη μέθοδο αιτήματος περνώντας όλες τις απαιτούμενες πληροφορίες.
- Το πρόγραμμα Stub θα μετατρέψει αυτό το αίτημα σε μορφή αιτήματος XML και θα του στείλει το τελικό σημείο της υπηρεσίας που θα διαβάσει το αίτημα και θα επεξεργαστεί το αίτημα και θα στείλει την απάντηση σε μορφή XML.
- Η απόκριση XML θα μετατραπεί σε Java τάξη με στέλεχος και επέστρεψε στο πραγματικό πρόγραμμα.
Ας δούμε αναλυτικά τα παραπάνω βήματα
Βήμα α) Λήψη του axis2 API @ https://axis.apache.org/axis2/Java/core/download.cgi & Ορίστε τη μεταβλητή περιβάλλοντος "AXIS2_HOME"
Βήμα β) Δημιουργήστε έναν φάκελο για να διατηρήσετε όλα τα δημιουργημένα αντικείμενα
Π.χ.: C:\Axis\Projects\CurrencyConverter
Βήμα γ) Ανοίξτε τη γραμμή εντολών και μεταβείτε στη δομή του φακέλου όπου θέλετε να δημιουργήσετε τα τεχνουργήματα και εκτελέστε την ακόλουθη εντολή που θα δημιουργήσει τα στελέχη
%AXIS2_HOME%\bin\WSDL2Java -uri http://www.webservicex.net/CurrencyConvertor.asmx?wsdl -p org.apache.axis2.currencyconvertor -d adb –s
Βήμα δ) Μόλις εκτελεστεί με επιτυχία η εντολή, θα δείτε τον φάκελο με τα απαιτούμενα αρχεία.
Βήμα ε) Στο επόμενο βήμα αυτού του σεμιναρίου δοκιμής υπηρεσιών Ιστού, πρέπει να δημιουργήσουμε το πρόγραμμα πελάτη, μέσω του οποίου θα στείλουμε το πραγματικό αίτημα χρησιμοποιώντας τα στελέχη που δημιουργούνται. Ανοίξτε την έκλειψη και δημιουργήστε τη νέα Java έργο και επιλέξτε τον φάκελο που δημιουργήσαμε παραπάνω.
Βήμα στ) Προσθέστε όλα τα jars που σχετίζονται με τον άξονα2 στη διαδρομή κατασκευής του έργου, η οποία θα βρίσκεται εκεί στον φάκελο lib του φακέλου λογισμικού του axis2
(για π.χ.: C:\Axis\axis2-1.6.2\lib)
Βήμα ζ) Δημιουργήστε ένα νέο Java τάξη (π.χ.: Πελάτης.Java) και στιγμιαίο στέλεχος αντικειμένου. Χρησιμοποιώντας το αντικείμενο stub μπορούμε να καλέσουμε όλες τις υποστηριζόμενες μεθόδους της συγκεκριμένης WebService.
Client.Java Program
package org.apache.axis2.currencyconvertor;
import org.apache.axis2.currencyconvertor.CurrencyConvertorStub.ConversionRate;
import org.apache.axis2.currencyconvertor.CurrencyConvertorStub.ConversionRateResponse;
import org.apache.axis2.currencyconvertor.CurrencyConvertorStub.Currency;
public class Client {
public static void main(Java.lang.String args[]) {
try {
//Create the stub object by passing the service end point url
CurrencyConvertorStub stub = new CurrencyConvertorStub("http://www.webservicex.net/CurrencyConvertor.asmx");
//ConversionRate is the class which we have to use mention the from and to currency
//ConversionRate object will be the parameter for the conversionRate operation
ConversionRate conversionRate = new ConversionRate();
conversionRate.setFromCurrency(Currency.USD);
conversionRate.setToCurrency(Currency.INR);
//Create the ConversionRateResponse object, which is going to be used to catch the response
//call the conversionRate service using the stub object
ConversionRateResponse conversionRateResponse = stub.conversionRate(conversionRate);
//We can use the conversionRateResponse object to retrieve the response of the ConversionRate Service
System.out.println("Conversion Rate from INR to USD : " + conversionRateResponse.getConversionRateResult());
} catch (Exception e) {
e.printStackTrace();
}
}
}
ΜΕΡΟΣ 2) Πώς να κάνετε δοκιμή χρησιμοποιώντας SoapUI Υπηρεσία Ιστού
In SoapUI
- Μεταβείτε στο Αρχείο > Νέο έργο σαπουνιού
- Εισαγάγετε το Όνομα του έργου και τη θέση WSDL URI
- κάντε κλικ στο OK
- Αναπτύξτε το πρώτο αίτημα και κάντε διπλό κλικ στο 'Αίτημα1'. Θα εμφανίσει το αίτημα SOAP σε μορφή XML.
- Εισαγάγετε το από το νόμισμα και το νόμισμα
- Κάντε κλικ στο κουμπί υποβολής
- Η XML απόκρισης θα εμφανιστεί στο δεξιό τμήμα του παραθύρου.
Όπως μπορείτε να συμπεράνετε, η χρήση εργαλείων WebService Test όπως SoapUI επιταχύνει την προσπάθεια δοκιμών αυτοματοποίησης υπηρεσιών ιστού. Ως εκ τούτου, το SoapUi θα αποτελέσει το επίκεντρο της μάθησής μας στα επόμενα μαθήματα.
Περίληψη
- Οι εφαρμογές λογισμικού επικοινωνούν και ανταλλάσσουν δεδομένα μεταξύ τους χρησιμοποιώντας μια υπηρεσία Web
- Το SOAP και το REST είναι 2 δημοφιλή πρωτόκολλα για τη δημιουργία μιας WebService
- Το SOAP υποστηρίζει ανταλλαγή δεδομένων βάσει XML
- Το REST υποστηρίζει XML, Json ή ανταλλαγή δεδομένων σε απλό URL για Δοκιμή API WebServices.
- Η WSDL είναι γλώσσα βασισμένη σε XML, η οποία θα χρησιμοποιηθεί για να περιγράψει τις υπηρεσίες που προσφέρονται από μια υπηρεσία Ιστού. Το SOAP ορίζεται χρησιμοποιώντας WSDL.
-
Για να δοκιμάσετε το WebService μπορείτε
- Δημιουργήστε τον δικό σας κωδικό. Για παράδειγμα, χρησιμοποιήστε το API Axis2 για Java
- Χρησιμοποιήστε εργαλεία αυτοματοποίησης δοκιμών WebService όπως SoapUI
- Εργαλεία αυτοματισμού όπως SoapUI θα δώσει ώθηση στις προσπάθειες δοκιμής αυτοματισμού υπηρεσιών ιστού, θα απαιτήσει λιγότερη προσπάθεια κωδικοποίησης σε σύγκριση με τη δημιουργία του δικού σας κώδικα χρησιμοποιώντας το Axis2 API
Συχνές Ερωτήσεις
Μάθετε περισσότερα σχετικά με Δοκιμή Web API
Αυτό το σεμινάριο δοκιμής Υπηρεσιών Ιστού είναι δυνατό με τη συνεισφορά του κ. Narender Reddy Nukala












