Τι είναι το WebService;
Οι Υπηρεσίες Ιστού είναι ο μηχανισμός ή το μέσο επικοινωνίας μέσω του οποίου δύο εφαρμογές / μηχανήματα θα ανταλλάσσουν τα δεδομένα ανεξάρτητα από την υπογραμμισμένη αρχιτεκτονική και την τεχνολογία τους.
Τι είναι το Web Service Testing;
Το Web Services Testing είναι ένας τύπος δοκιμών λογισμικού που επικυρώνει τις υπηρεσίες Web. Ο σκοπός του Web Services Testing είναι να ελέγξει τη λειτουργικότητα, την αξιοπιστία, την απόδοση και την ασφάλεια ενός API (Interface Program Application). Ο έλεγχος υπηρεσίας Ιστού είναι παρόμοιος με τον έλεγχο μονάδας σε ορισμένες περιπτώσεις. Μπορείτε να δοκιμάσετε μια υπηρεσία Web με μη αυτόματο τρόπο ή να δημιουργήσετε τον δικό σας κωδικό αυτοματισμού ή να χρησιμοποιήσετε ένα εργαλείο αυτοματοποίησης εκτός του ράφι, όπως το Postman.
Γιατί απαιτείται η υπηρεσία WebService;
Γενικά, οι εφαρμογές λογισμικού αναπτύσσονται για να καταναλωθούν από τα ανθρώπινα όντα, όπου ένα άτομο στέλνει ένα αίτημα σε μια υπηρεσία λογισμικού η οποία με τη σειρά της επιστρέφει μια απόκριση σε μορφή αναγνώσιμη από τον άνθρωπο.
Στη σύγχρονη εποχή της τεχνολογίας, εάν θέλετε να δημιουργήσετε μια εφαρμογή λογισμικού, δεν χρειάζεται να χτίσετε το καθένα από το μηδέν. Υπάρχουν πολλές διαθέσιμες υπηρεσίες έτοιμων υπηρεσιών που μπορείτε να συνδέσετε στην εφαρμογή σας και μπορείτε να αρχίσετε να παρέχετε αυτές τις υπηρεσίες στην εφαρμογή σας.
Για παράδειγμα, θέλετε να εμφανίσετε πληροφορίες πρόγνωσης καιρού που δεν χρειάζεται να συλλέξετε, να επεξεργαστείτε και να αποδώσετε τα δεδομένα στην εφαρμογή σας. Μπορείτε να αγοράσετε τις υπηρεσίες από άτομα που έχουν ήδη καθιερωθεί στην επεξεργασία και τη δημοσίευση τέτοιου είδους δεδομένων.
Οι υπηρεσίες Ιστού μας επιτρέπουν να κάνουμε τέτοιου είδους υλοποιήσεις.
Για παράδειγμα, εξετάστε την ακόλουθη υπηρεσία WebService
http://www.webservicex.net/stockquote.asmx?op=GetQuote
Δίνει αξία μετοχής για μια εταιρεία.
Ας βρούμε την τιμή μετοχής για το Google (Σύμβολο: GOOG)
Η απόκριση XML δίνει την τιμή της μετοχής.
Αυτή η υπηρεσία WebService μπορεί να κληθεί από μια εφαρμογή λογισμικού χρησιμοποιώντας πρωτόκολλο SOAP ή HTTP.
Πρωτόκολλα υπηρεσίας Ιστού
Οι Υπηρεσίες Ιστού μπορούν να εφαρμοστούν με διαφορετικούς τρόπους, αλλά οι ακόλουθες δύο είναι οι δημοφιλείς προσεγγίσεις υλοποίησης.
- SOAP (Πρωτόκολλο Πρόσβασης Απλού Αντικειμένου)
- REST (αντιπροσωπευτική αρχιτεκτονική κρατικής μεταφοράς)
ΣΑΠΟΥΝΙ
Το SOAP είναι ένα τυπικό πρωτόκολλο που ορίζεται από το πρότυπο W3C για την αποστολή και λήψη αιτημάτων και απαντήσεων για υπηρεσίες web.
Το SOAP χρησιμοποιεί τη μορφή XML για αποστολή και λήψη του αιτήματος και ως εκ τούτου τα δεδομένα είναι δεδομένα ανεξάρτητα από την πλατφόρμα. Τα μηνύματα SOAP ανταλλάσσονται μεταξύ των εφαρμογών παρόχου και της εφαρμογής λήψης εντός των φακέλων SOAP.
Καθώς το SOAP χρησιμοποιεί το απλό πρωτόκολλο μεταφοράς http, τα μηνύματά του δεν αποκλείονται από τα τείχη προστασίας.
ΥΠΟΛΟΙΠΟ
REST σημαίνει μεταφορά εκπροσώπησης κατάστασης · είναι μια αρχιτεκτονική που τρέχει γενικά μέσω HTTP. Το στυλ REST δίνει έμφαση στις αλληλεπιδράσεις μεταξύ πελατών και υπηρεσιών, οι οποίες ενισχύονται με περιορισμένο αριθμό λειτουργιών. Το REST είναι μια εναλλακτική λύση για το SOAP (Simple Object Access Protocol) και αντί να χρησιμοποιείτε XML για αίτημα, το REST χρησιμοποιεί απλή διεύθυνση URL σε ορισμένες περιπτώσεις. Σε αντίθεση με το SOAP, οι εφαρμογές RESTFUL χρησιμοποιούν HTTP build in headers για τη μεταφορά μετα-πληροφοριών.
Υπάρχουν διάφοροι κωδικοί που χρησιμοποιούν το REST για να προσδιορίσουν εάν ο χρήστης έχει πρόσβαση στο API ή όχι, όπως ο κωδικός 200 ή 201 υποδεικνύει επιτυχημένη αλληλεπίδραση με το σώμα απόκρισης, ενώ το 400 υποδεικνύει ένα κακό αίτημα ή το αίτημα URI δεν ταιριάζει με τα API στο σύστημα. Όλες οι παράμετροι αιτήματος API και οι παράμετροι μεθόδου μπορούν να σταλούν μέσω μεταβλητών POST ή GET .
Το υπόλοιπο API υποστηρίζει τη μορφή XML και JSON για δοκιμές API WebServices. Συνήθως προτιμάται για εφαρμογές για κινητά και ιστούς καθώς καθιστά την εφαρμογή πιο γρήγορη και ομαλότερη
WSDL
Το WSDL (Γλώσσα περιγραφής υπηρεσιών Web) είναι μια γλώσσα που βασίζεται σε XML και θα χρησιμοποιηθεί για να περιγράψει τις υπηρεσίες που προσφέρει μια υπηρεσία Ιστού.
Το WSDL περιγράφει όλες τις λειτουργίες που προσφέρει η συγκεκριμένη υπηρεσία Ιστού σε μορφή XML. Καθορίζει επίσης πώς μπορούν να κληθούν οι υπηρεσίες, δηλαδή ποια αξία εισόδου πρέπει να παρέχουμε και ποια θα είναι η μορφή της απόκρισης που θα παράγει για κάθε είδος υπηρεσίας.
Πώς να δοκιμάσετε μια υπηρεσία Ιστού;
Για να δοκιμάσετε την υπηρεσία ιστού, μπορείτε
- Μη αυτόματη δοκιμή
- Δημιουργήστε τον δικό σας κωδικό αυτοματισμού
- Χρησιμοποιήστε ένα εργαλείο αυτοματοποίησης εκτός του ράφι, όπως το SoapUI.
Ο έλεγχος αυτοματοποίησης υπηρεσιών Web περιλαμβάνει τα ακόλουθα βήματα -
- Κατανοήστε το αρχείο WSDL
- Προσδιορίστε τις λειτουργίες που παρέχει συγκεκριμένη υπηρεσία ιστού
- Προσδιορίστε τη μορφή αιτήματος XML που πρέπει να στείλουμε
- Προσδιορίστε τη μορφή XML απόκρισης
- Χρησιμοποιώντας ένα εργαλείο ή γράψιμο κώδικα για αποστολή αιτήματος και επικύρωση της απάντησης
Ας υποθέσουμε ότι θέλουμε να δοκιμάσουμε την υπηρεσία ιστού που παρέχει τη δυνατότητα μετατροπής νομισμάτων. Θα είναι τα τρέχοντα ποσοστά μετατροπής μεταξύ του νομίσματος των διαφόρων χωρών. Αυτή η υπηρεσία που μπορούμε να χρησιμοποιήσουμε στις εφαρμογές μας για τη μετατροπή των τιμών από το ένα νόμισμα στο άλλο νόμισμα.
Τώρα ας δούμε τα παραπάνω βήματα
Βήμα 1 έως 4: Κατανόηση του WSDL και καθορισμός λειτουργιών και μορφών XML
Μπορείτε να δείτε το αρχείο WSDL νομίσματος μετατροπέα @ (http://www.webservicex.net/CurrencyConvertor.asmx?wsdl) που θα παρέχει τις πληροφορίες σχετικά με τις μεθόδους υπηρεσίας ιστού νομίσματος μετατροπής που θα υποστηρίξει, την παράμετρο που χρειαζόμαστε να περάσετε και τύπος παραμέτρων
… και τα λοιπάΒήμα 5: Χρήση εργαλείου ή σύνταξης κώδικα για αποστολή αιτήματος και επικύρωση της απάντησης
Υπάρχουν πολλά εργαλεία δοκιμής WebService διαθέσιμα για τη δοκιμή της υπηρεσίας web SOAP. Το SoapUI είναι ένα από τα δημοφιλή εργαλεία API που θα μας βοηθήσει να δοκιμάσουμε τις υπηρεσίες web SOAP. Στην πραγματικότητα μπορείτε να χρησιμοποιήσετε οποιαδήποτε γλώσσα προγραμματισμού που είναι ικανή να στείλει το αίτημα XML στην εφαρμογή παροχής υπηρεσιών διαδικτύου μέσω του http και να μπορείτε να αναλύσετε και να επικυρώσετε την απόκριση XML έναντι του αναμενόμενου αποτελέσματος. Σε αυτό το σεμινάριο δοκιμών υπηρεσιών Web, θα δοκιμάσουμε την υπηρεσία WebService
- Χρήση Java
- Χρησιμοποιώντας το SoapUI
ΜΕΡΟΣ 1) Δοκιμή WebService χρησιμοποιώντας Apache Axis2 API (Java).
Γενικά η υπηρεσία ιστού λαμβάνει το αίτημα και στέλνει την απάντηση σε μορφή XML.
Το έργο Apache Axis2 API είναι ένα Java υλοποίησης API, το οποίο θα χρησιμοποιηθεί για τη δημιουργία υπηρεσιών Web τόσο από πλευράς διακομιστή (παροχέας υπηρεσιών) όσο και από πλευράς πελάτη (καταναλωτής υπηρεσίας).
Το Axis2 μπορεί να στέλνει μηνύματα SOAP και λαμβάνει και επεξεργάζεται τα μηνύματα SOAP. Μπορούμε να γράψουμε ένα μικρό πρόγραμμα Java χρησιμοποιώντας το API για τη δημιουργία της υπηρεσίας web. Το Axis2 θα δημιουργήσει το WSDL από το πρόγραμμα Java που θα χρησιμοποιηθεί για την επικοινωνία των υπηρεσιών που προσφέρονται από την υπηρεσία διαδικτύου. Μπορούμε να χρησιμοποιήσουμε τον ίδιο Axis2 για να δημιουργήσουμε την κλάση Java (stub) από το αρχείο WSDL, το οποίο μπορούμε να χρησιμοποιήσουμε ως πρόγραμμα πελάτη για τη δημιουργία του αιτήματος υπηρεσίας διαδικτύου, για την αποστολή του αιτήματος στο τελικό σημείο της υπηρεσίας και για την επεξεργασία της απόκρισης.
- Βασικά θα δημιουργήσουμε ένα απλό πρόγραμμα Java στο οποίο θα δημιουργήσουμε το stub class.
- Χρησιμοποιώντας το στέλεχος θα επικαλεστούμε τη μέθοδο αιτήματος διαβάζοντας όλες τις απαιτούμενες πληροφορίες.
- Το πρόγραμμα Stub θα μετατρέψει το αίτημα σε μορφή αιτήματος XML και θα του στείλει το τελικό σημείο υπηρεσίας, το οποίο θα διαβάσει το αίτημα και θα επεξεργαστεί το αίτημα και θα στείλει την απάντηση σε μορφή XML.
- Η απόκριση XML θα μετατραπεί σε κλάση Java με stub και θα επιστραφεί στο πραγματικό πρόγραμμα.
Ας δούμε λεπτομερώς τα παραπάνω βήματα
Βήμα α) Λήψη του API axis2 @ https://axis.apache.org/axis2/Java/core/download.cgi & Ορισμός της μεταβλητής περιβάλλοντος "AXIS2_HOME"
Βήμα β) Δημιουργήστε ένα φάκελο για να διατηρήσετε όλα τα δημιουργημένα αντικείμενα
Π.χ .: C: \ Axis \ Projects \ CurrencyConverter
Βήμα γ) Ανοίξτε τη γραμμή εντολών και μεταβείτε στη δομή φακέλων όπου θέλετε να δημιουργήσετε τα τεχνουργήματα και εκτελέστε την ακόλουθη εντολή που θα δημιουργήσει τα stubs
% AXIS2_HOME% \ bin \ WSDL2Java -uri http://www.webservicex.net/CurrencyConvertor.asmx?wsdl -p org.apache.axis2.currencyconvertor -d adb -s
Βήμα δ) Μόλις εκτελεστεί με επιτυχία η εντολή, θα δείτε το φάκελο με τα απαιτούμενα αρχεία.
Βήμα ε) Στο επόμενο βήμα αυτού του εκπαιδευτικού οδηγού Web Services Testing, πρέπει να δημιουργήσουμε το πρόγραμμα-πελάτη, μέσω του οποίου θα στείλουμε το πραγματικό αίτημα χρησιμοποιώντας τα παραγόμενα stubs. Ανοίξτε την έκλειψη και δημιουργήστε το νέο έργο Java και επιλέξτε το φάκελο που έχουμε δημιουργήσει παραπάνω.
Βήμα στ) Προσθέστε όλα τα σχετιζόμενα με τον άξονα 2 βάζα στη διαδρομή κατασκευής έργου, η οποία θα βρίσκεται εκεί στο φάκελο lib του φακέλου λογισμικού axis2
(για παράδειγμα: C: \ Axis \ axis2-1.6.2 \ lib)
Βήμα ζ) Δημιουργήστε μια νέα κλάση Java (π.χ. Client.Java) και δημιουργήστε αντικείμενο stub. Χρησιμοποιώντας το αντικείμενο stub μπορούμε να καλέσουμε όλες τις υποστηριζόμενες μεθόδους της συγκεκριμένης υπηρεσίας Web.
Πρόγραμμα Client.Javaπακέτο org.apache.axis2.currencyconvertor;εισαγωγή org.apache.axis2.currencyconvertor.CurrencyConvertorStub.ConversionRate;εισαγωγή org.apache.axis2.currencyconvertor.CurrencyConvertorStub.ConversionRateResponse;εισαγωγή org.apache.axis2.currencyconvertor.CurrencyConvertorStub.Currency;πελάτης δημόσιας τάξης {δημόσιο στατικό κενό, (Java.lang.String args []) {προσπαθήστε {// Δημιουργήστε το αντικείμενο stub περνώντας τη διεύθυνση URL τελικού σημείου υπηρεσίαςCurrencyConvertorStub stub = νέο CurrencyConvertorStub ("http://www.webservicex.net/CurrencyConvertor.asmx");// Το ConversionRate είναι το μάθημα που πρέπει να χρησιμοποιήσουμε αναφέροντας το από και προς το νόμισμα// Το αντικείμενο ConversionRate θα είναι η παράμετρος της λειτουργίας μετατροπήςConversionRateversiRate = νέο ConversionRate ();versiRate.setFromCurrency (Currency.USD);versiRate.setToCurrency (Currency.INR);// Δημιουργήστε το αντικείμενο ConversionRateResponse, το οποίο πρόκειται να χρησιμοποιηθεί για τη λήψη της απόκρισης// καλέστε την υπηρεσία convertRate χρησιμοποιώντας το αντικείμενο στέλεχοςConversionRateResponseversiRateResponse = stub.conversionRate (versiRate);// Μπορούμε να χρησιμοποιήσουμε το αντικείμενοversiRateResponse για να ανακτήσουμε την απόκριση της υπηρεσίας ConversionRateSystem.out.println ("Ποσοστό μετατροπής από INR σε USD: +versiRateResponse.getConversionRateResult ());} αλίευση (Εξαίρεση ε) {e.printStackTrace ();}}}
ΜΕΡΟΣ 2) Τρόπος δοκιμής με χρήση της υπηρεσίας Web SoapUI
Στο SoapUI
- Μεταβείτε στο Αρχείο> Νέο έργο σαπουνιού
- Εισαγάγετε το όνομα του έργου και την τοποθεσία URI WSDL
- Κάντε κλικ στο OK
- Αναπτύξτε το πρώτο αίτημα και κάντε διπλό κλικ στο «Request1». Θα εμφανίσει το αίτημα SOAP σε μορφή XML.
- Εισαγάγετε από το νόμισμα και στο νόμισμα
- Κάντε κλικ στο κουμπί υποβολής
- Η απόκριση XML θα εμφανιστεί στη δεξιά πλευρά του παραθύρου.
Όπως μπορείτε να καταλήξετε, η χρήση εργαλείων δοκιμής WebService όπως το SoapUI επιταχύνει την προσπάθεια δοκιμής αυτοματοποίησης υπηρεσιών Web. Ως εκ τούτου, το SoapUi θα είναι το επίκεντρο της μάθησής μας στα επόμενα σεμινάρια.
Περίληψη
- Οι εφαρμογές λογισμικού επικοινωνούν και ανταλλάσσουν δεδομένα μεταξύ τους χρησιμοποιώντας μια υπηρεσία WebService
- Το SOAP και το REST είναι 2 δημοφιλή πρωτόκολλα για τη δημιουργία μιας υπηρεσίας WebService
- Το SOAP υποστηρίζει ανταλλαγή δεδομένων με βάση XML
- REST υποστήριξη XML, Json ή ανταλλαγή δεδομένων σε απλή διεύθυνση URL για δοκιμή API WebServices.
- Το WSDL είναι μια γλώσσα που βασίζεται σε XML και θα χρησιμοποιηθεί για να περιγράψει τις υπηρεσίες που προσφέρει μια υπηρεσία Ιστού. Το SOAP ορίζεται χρησιμοποιώντας WSDL.
- Για να δοκιμάσετε το WebService μπορείτε
- Δημιουργήστε τον δικό σας κωδικό. Για παράδειγμα, χρησιμοποιήστε το Axis2 API για Java
- Χρησιμοποιήστε εργαλεία WebService Test Automation όπως το SoapUI
- Τα Εργαλεία Αυτοματισμού όπως το SoapUI θα ξεκινήσουν τις προσπάθειές σας στο Web Services Automation Testing, θα απαιτήσουν λιγότερη προσπάθεια κωδικοποίησης σε σύγκριση με τη δημιουργία του δικού σας κώδικα χρησιμοποιώντας το Axis2 API
Συχνές ερωτήσεις
Τι είναι η διαφορά μεταξύ WebService και WebAPI;
Υπηρεσία Ιστού |
API Ιστού |
|
|
|
|
|
|
|
|
Μάθετε περισσότερα σχετικά με τη Δοκιμή API Ιστού
Αυτό το εκπαιδευτικό σεμινάριο Web Services Testing έγινε εφικτό με συνεισφορές του κ. Narender Reddy Nukala