Εκπαιδευτικό σεμινάριο δοκιμής υπηρεσιών ιστού με παράδειγμα

⚡ Έξυπνη Σύνοψη

Οι δοκιμές διαδικτυακών υπηρεσιών επικυρώνουν τη λειτουργικότητα, την αξιοπιστία, την απόδοση και την ασφάλεια ενός API που επιτρέπει στις εφαρμογές να ανταλλάσσουν δεδομένα, χρησιμοποιώντας πρωτόκολλα SOAP ή REST, μια περιγραφή WSDL και εργαλεία όπως SoapUI ή έθιμο Java κώδικας.

  • 🌐 Υπηρεσία Ιστού: Μια διαδικτυακή υπηρεσία επιτρέπει σε δύο εφαρμογές να ανταλλάσσουν δεδομένα μέσω ενός δικτύου.
  • 🧪 Τι ελέγχει: Οι δοκιμές επαληθεύουν τη λειτουργικότητα, την αξιοπιστία, την απόδοση και την ασφάλεια.
  • 📨 ΣΑΠΟΥΝΙ και ΞΕΚΟΥΡΑΣΗ: Το SOAP χρησιμοποιεί φακέλους XML. Το REST χρησιμοποιεί απλό HTTP και URLs.
  • 📄 WSDL: Ένα WSDL είναι ένα αρχείο XML που περιγράφει τις λειτουργίες που προσφέρει μια υπηρεσία SOAP.
  • ️ Εργαλεία και Code: Οι δοκιμές χρησιμοποιούν εργαλεία όπως SoapUI ή έθιμο Java με το Apache Axis2.
  • 🤖 Βοήθεια AI: Η Τεχνητή Νοημοσύνη δημιουργεί δοκιμαστικές περιπτώσεις API και επικυρώνει αυτόματα τις απαντήσεις.

Εκπαιδευτικό σεμινάριο για τον έλεγχο των υπηρεσιών ιστού

Τι είναι το WebService;

Οι Υπηρεσίες Ιστού είναι ο μηχανισμός ή το μέσο επικοινωνίας μέσω του οποίου δύο εφαρμογές/μηχανές θα ανταλλάσσουν τα δεδομένα ανεξάρτητα από την υπογραμμισμένη αρχιτεκτονική τους και την τεχνολογία τους.

Τι είναι η δοκιμή υπηρεσιών Web;

Δοκιμή Υπηρεσιών Ιστού είναι ένας τύπος δοκιμής λογισμικού που επικυρώνει τις υπηρεσίες Ιστού. Ο σκοπός της δοκιμής υπηρεσιών Ιστού είναι να ελέγξει τη λειτουργικότητα, την αξιοπιστία, την απόδοση και την ασφάλεια ενός API (Διασύνδεση προγράμματος εφαρμογής). Η δοκιμή υπηρεσιών Web είναι παρόμοια με τη δοκιμή μονάδας σε ορισμένες περιπτώσεις. Μπορείτε να δοκιμάσετε μια υπηρεσία Web με μη αυτόματο τρόπο ή να δημιουργήσετε τον δικό σας κωδικό αυτοματισμού ή να χρησιμοποιήσετε ένα εργαλείο αυτοματισμού εκτός ραφιού, όπως Postman.

Γιατί απαιτείται WebService;

Γενικά, οι εφαρμογές λογισμικού αναπτύσσονται για να καταναλώνονται από τον άνθρωπο, όπου ένα άτομο στέλνει ένα αίτημα σε μια υπηρεσία λογισμικού, η οποία με τη σειρά της επιστρέφει μια απάντηση σε μορφή αναγνώσιμη από τον άνθρωπο.

Στη σύγχρονη εποχή της τεχνολογίας, αν θέλετε να δημιουργήσετε μια εφαρμογή λογισμικού, δεν χρειάζεται να δημιουργήσετε τα πάντα από την αρχή. Υπάρχουν πολλές διαθέσιμες έτοιμες υπηρεσίες τις οποίες μπορείτε να συνδέσετε στην εφαρμογή σας και μπορείτε να αρχίσετε να παρέχετε αυτές τις υπηρεσίες στην εφαρμογή σας.

Για παράδειγμα, θέλετε να εμφανίσετε πληροφορίες πρόγνωσης καιρού που δεν χρειάζεστε για να συλλέξετε, να επεξεργαστείτε και να αποδώσετε τα δεδομένα στην εφαρμογή σας. Μπορείτε να αγοράσετε τις υπηρεσίες από άτομα που έχουν ήδη εδραιωθεί στην επεξεργασία και δημοσίευση τέτοιου είδους δεδομένων.

Οι υπηρεσίες Ιστού μας επιτρέπουν να κάνουμε αυτού του είδους τις υλοποιήσεις.

Ως παράδειγμα, εξετάστε το ακόλουθο WebService

http://www.webservicex.net/stockquote.asmx?op=GetQuote

Δίνει Αξία Μεριδίου για μια Εταιρεία.

Ας βρούμε την τιμή της μετοχής Google (Σύμβολο: GOOG)

Δοκιμή υπηρεσιών Ιστού

Η απάντηση XML δίνει την τιμή της μετοχής.

Δοκιμή υπηρεσιών Ιστού

Αυτή η υπηρεσία Web μπορεί να κληθεί από μια εφαρμογή λογισμικού χρησιμοποιώντας πρωτόκολλο SOAP ή HTTP.

Πρωτόκολλα υπηρεσιών Web

Οι Υπηρεσίες Ιστού μπορούν να υλοποιηθούν με διαφορετικούς τρόπους, αλλά οι δύο παρακάτω είναι οι δημοφιλείς προσεγγίσεις υλοποίησης.

  1. SOAP (Πρωτόκολλο Πρόσβασης Απλού Αντικειμένου)
  2. REST (Αρχιτεκτονική αντιπροσωπευτικής μεταφοράς κατάστασης)

SOAP

Το SOAP είναι ένα τυπικό πρωτόκολλο που ορίζεται από το Πρότυπο W3C για την αποστολή και λήψη αιτημάτων και απαντήσεων για υπηρεσίες web.

Το SOAP χρησιμοποιεί το Μορφή XML για αποστολή και λήψη του αιτήματος και ως εκ τούτου τα δεδομένα είναι δεδομένα ανεξάρτητα από την πλατφόρμα. Τα μηνύματα SOAP ανταλλάσσονται μεταξύ των εφαρμογών παρόχου και της εφαρμογής λήψης εντός των φακέλων SOAP.

Καθώς το SOAP χρησιμοποιεί το απλό πρωτόκολλο μεταφοράς http, τα μηνύματά του δεν μπλοκάρονται από τα τείχη προστασίας.

ΠΕΡΙΦΕΡΕΙΑ

Το REST σημαίνει Μεταφορά Αναπαράστασης Κατάστασης. Πρόκειται για μια αρχιτεκτονική που γενικά εκτελείται μέσω HTTP. Το στυλ REST δίνει έμφαση στις αλληλεπιδράσεις μεταξύ πελατών και υπηρεσιών, οι οποίες βελτιώνονται με τον περιορισμένο αριθμό λειτουργιών. Το REST είναι μια εναλλακτική λύση στο SOAP (Simple Object Access Protocol) και αντί να χρησιμοποιεί 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, μπορείτε

  1. Δοκιμή χειροκίνητα
  2. Δημιουργήστε τον δικό σας αυτοματισμό Code
  3. Χρησιμοποιήστε ένα έτοιμο εργαλείο αυτοματισμού όπως SoapUI.

Η δοκιμή αυτοματισμού υπηρεσιών Ιστού περιλαμβάνει τα ακόλουθα βήματα:

  1. Κατανοήστε το αρχείο WSDL
  2. Προσδιορίστε τις λειτουργίες που παρέχει η συγκεκριμένη υπηρεσία web
  3. Καθορίστε τη μορφή αιτήματος XML που πρέπει να στείλουμε
  4. Προσδιορίστε τη μορφή XML απόκρισης
  5. Χρήση εργαλείου ή γραφής κώδικα για την αποστολή αιτήματος και την επικύρωση της απάντησης

Ας υποθέσουμε ότι θέλουμε να δοκιμάσουμε την υπηρεσία Ιστού που παρέχει Διευκόλυνση Μετατροπής Συναλλάγματος. Θα είναι οι τρέχουσες ισοτιμίες μετατροπής μεταξύ των νομισμάτων των διαφόρων χωρών. Αυτή η υπηρεσία μπορούμε να χρησιμοποιήσουμε στις εφαρμογές μας για να μετατρέψουμε τις τιμές από το ένα νόμισμα στο άλλο νόμισμα.

Τώρα ας δούμε τα παραπάνω βήματα

Βήμα 1 έως 4: Κατανόηση του WSDL και προσδιορισμός λειτουργιών και μορφών XML

Νόμισμα Convertor Το αρχείο WSDL μπορεί να δει @ ​​(http://www.webservicex.net/CurrencyConvertor.asmx?wsdl) που θα δώσει τις πληροφορίες για το Νόμισμα Convertor μεθόδους web service που θα υποστηρίξει, την παράμετρο που πρέπει να περάσουμε και τον τύπο των παραμέτρων… κ.λπ.

WSDL και προσδιορισμός λειτουργιών και μορφών XML

WSDL και προσδιορισμός λειτουργιών και μορφών XML

Βήμα 5: Χρήση εργαλείου ή γραφής κώδικα για την αποστολή αιτήματος και την επικύρωση της απάντησης

Υπάρχουν πολλά εργαλεία δοκιμής WebService διαθέσιμα για τη δοκιμή μιας υπηρεσίας web SOAP. SoapUI είναι ένα από τα δημοφιλή Εργαλείο API που θα μας βοηθήσει να δοκιμάσουμε τις υπηρεσίες ιστού SOAP. Στην πραγματικότητα, μπορείτε να χρησιμοποιήσετε οποιαδήποτε γλώσσα προγραμματισμού που είναι ικανή να στείλει το αίτημα XML στην εφαρμογή παροχής υπηρεσιών web μέσω του http και να μπορεί να αναλύσει και να επικυρώσει την απάντηση XML έναντι του αναμενόμενου αποτελέσματος. Σε αυτό το σεμινάριο δοκιμής υπηρεσιών Web, θα δοκιμάσουμε την υπηρεσία Web

  1. Χρησιμοποιώντας Java
  2. Χρησιμοποιώντας 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, να στείλουμε το αίτημα στο τελικό σημείο της υπηρεσίας και να επεξεργαστούμε την απάντηση.

  1. Βασικά θα δημιουργήσουμε ένα απλό Java πρόγραμμα στο οποίο θα δημιουργήσουμε την κλάση stub.
  2. Χρησιμοποιώντας το στέλεχος θα καλέσουμε τη μέθοδο αιτήματος περνώντας όλες τις απαιτούμενες πληροφορίες.
  3. Το πρόγραμμα Stub θα μετατρέψει αυτό το αίτημα σε μορφή αιτήματος XML και θα του στείλει το τελικό σημείο της υπηρεσίας που θα διαβάσει το αίτημα και θα επεξεργαστεί το αίτημα και θα στείλει την απάντηση σε μορφή XML.
  4. Η απόκριση XML θα μετατραπεί σε Java τάξη με στέλεχος και επέστρεψε στο πραγματικό πρόγραμμα.

Ας δούμε αναλυτικά τα παραπάνω βήματα

Βήμα α) Λήψη του axis2 API @ https://axis.apache.org/axis2/Java/core/download.cgi & Ορίστε τη μεταβλητή περιβάλλοντος "AXIS2_HOME"

Δοκιμή WebService με χρήση του Apache Axis2 (Java)

Βήμα β) Δημιουργήστε έναν φάκελο για να διατηρήσετε όλα τα δημιουργημένα αντικείμενα

Π.χ.: C:\Axis\Projects\CurrencyConverter

Βήμα γ) Ανοίξτε τη γραμμή εντολών και μεταβείτε στη δομή του φακέλου όπου θέλετε να δημιουργήσετε τα τεχνουργήματα και εκτελέστε την ακόλουθη εντολή που θα δημιουργήσει τα στελέχη

%AXIS2_HOME%\bin\WSDL2Java -uri http://www.webservicex.net/CurrencyConvertor.asmx?wsdl -p org.apache.axis2.currencyconvertor -d adb –s

Δοκιμή WebService με χρήση του Apache Axis2 (Java)

Βήμα δ) Μόλις εκτελεστεί με επιτυχία η εντολή, θα δείτε τον φάκελο με τα απαιτούμενα αρχεία.

Δοκιμή WebService με χρήση του Apache Axis2 (Java)

Βήμα ε) Στο επόμενο βήμα αυτού του σεμιναρίου δοκιμής υπηρεσιών Ιστού, πρέπει να δημιουργήσουμε το πρόγραμμα πελάτη, μέσω του οποίου θα στείλουμε το πραγματικό αίτημα χρησιμοποιώντας τα στελέχη που δημιουργούνται. Ανοίξτε την έκλειψη και δημιουργήστε τη νέα Java έργο και επιλέξτε τον φάκελο που δημιουργήσαμε παραπάνω.

Δοκιμή WebService με χρήση του Apache Axis2 (Java)

Βήμα στ) Προσθέστε όλα τα jars που σχετίζονται με τον άξονα2 στη διαδρομή κατασκευής του έργου, η οποία θα βρίσκεται εκεί στον φάκελο lib του φακέλου λογισμικού του axis2

(για π.χ.: C:\Axis\axis2-1.6.2\lib)

Δοκιμή WebService με χρήση του Apache Axis2 (Java)

Βήμα ζ) Δημιουργήστε ένα νέο Java τάξη (π.χ.: Πελάτης.Java) και στιγμιαίο στέλεχος αντικειμένου. Χρησιμοποιώντας το αντικείμενο stub μπορούμε να καλέσουμε όλες τις υποστηριζόμενες μεθόδους της συγκεκριμένης WebService.

Δοκιμή WebService με χρήση του Apache Axis2 (Java)

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

  1. Μεταβείτε στο Αρχείο > Νέο έργο σαπουνιού
  2. Εισαγάγετε το Όνομα του έργου και τη θέση WSDL URI
  3. κάντε κλικ στο OK

Δοκιμή με χρήση SoapUI Υπηρεσία Ιστού

  1. Αναπτύξτε το πρώτο αίτημα και κάντε διπλό κλικ στο 'Αίτημα1'. Θα εμφανίσει το αίτημα SOAP σε μορφή XML.
  2. Εισαγάγετε το από το νόμισμα και το νόμισμα
  3. Κάντε κλικ στο κουμπί υποβολής
  4. Η XML απόκρισης θα εμφανιστεί στο δεξιό τμήμα του παραθύρου.

Δοκιμή με χρήση SoapUI Υπηρεσία Ιστού

Όπως μπορείτε να συμπεράνετε, η χρήση εργαλείων WebService Test όπως SoapUI επιταχύνει την προσπάθεια δοκιμών αυτοματοποίησης υπηρεσιών ιστού. Ως εκ τούτου, το SoapUi θα αποτελέσει το επίκεντρο της μάθησής μας στα επόμενα μαθήματα.

Συχνές Ερωτήσεις

Μια διαδικτυακή υπηρεσία ορίζεται από το W3C και ανταλλάσσει δεδομένα χρησιμοποιώντας XML με ένα πρότυπο WSDL, για παράδειγμα SOAP. Ένα διαδικτυακό API είναι ευρύτερο: μπορεί να ανταλλάσσει XML, JSON ή απλά δεδομένα χωρίς σταθερό πρότυπο, για παράδειγμα REST, και μπορεί να συμπιέσει δεδομένα.

Τα συνηθισμένα εργαλεία δοκιμών διαδικτυακών υπηρεσιών και API περιλαμβάνουν SoapUI και ReadyAPI για SOAP και REST, Postman για ΥΠΟΛΟΙΠΟ, Apache JMeter για δοκιμές φορτίου και REST Assured για δοκιμές που βασίζονται σε κώδικα Java δοκιμές. SoapUI Χρησιμοποιείται ευρέως για υπηρεσίες SOAP.

Οι δοκιμές μονάδας ελέγχουν μια μεμονωμένη λειτουργία, συνήθως από τον προγραμματιστή. Οι δοκιμές API ελέγχουν τη συμπεριφορά μιας υπηρεσίας μέσω της διεπαφής της, συμπεριλαμβανομένων των αιτημάτων, των απαντήσεων, των κωδικών κατάστασης και των δεδομένων, σε όλα τα στοιχεία και συχνά χωρίς πηγαίο κώδικα.

Η Τεχνητή Νοημοσύνη διαβάζει μια προδιαγραφή WSDL ή OpenAPI για να δημιουργήσει αιτήματα και ισχυρισμούς, δημιουργεί ρεαλιστικά δεδομένα δοκιμών και επισημαίνει ανώμαλες απαντήσεις. Η αυτοεπιδιόρθωση μέσω μηχανικής μάθησης διατηρεί την επιτυχία των δοκιμών όταν αλλάζουν τα ωφέλιμα φορτία, μειώνοντας τη χειροκίνητη συντήρηση των δοκιμών διαδικτυακών υπηρεσιών.

Ναι. Η Τεχνητή Νοημοσύνη μπορεί να αναλύσει έναν ορισμό υπηρεσίας, να παράγει έγκυρα και μη έγκυρα φορτία αιτημάτων, να προβλέψει οριακές συνθήκες και να προτείνει ισχυρισμούς. Αυτή η αυτοματοποιημένη δημιουργία βελτιώνει την κάλυψη και μειώνει την χειροκίνητη προσπάθεια σύνταξης περιπτώσεων δοκιμών SOAP ή REST.

Συνοψίστε αυτήν την ανάρτηση με: