Χρησιμοποιώντας SoapUI μαζί σου, Selenium για Δοκιμές Υπηρεσιών Ιστού
⚡ Έξυπνη Σύνοψη
SoapUI μαζί σου, Selenium επιτρέπει σε μια σουίτα να ελέγχει μια υπηρεσία ιστού και το πρόγραμμα περιήγησης που την καταναλώνει. Groovy είναι η γέφυρα, επειδή SoapUI τρέχει Groovy εγγενώς και Groovy φτάνει σε κάθε Java βιβλιοθήκη Selenium πλοία.
SoapUI είναι το πιο δημοφιλές ανοιχτού κώδικα λειτουργικές δοκιμές εργαλείο για Δοκιμή API. Παρέχει πλήρη κάλυψη δοκιμών και υποστηρίζει όλα τα τυπικά πρωτόκολλα και τεχνολογίες.
Τι είναι το SOAP;
SOAP είναι ένα απλό πρωτόκολλο που βασίζεται σε XML. Επιτρέπει στις εφαρμογές να ανταλλάσσουν πληροφορίες μέσω HTTP. Χρησιμοποιεί τις Υπηρεσίες Ιστού Descriptγλώσσα ion (WSDL) για επικοινωνία και άλλες εφαρμογές μπορούν να αλληλεπιδράσουν με διαδικτυακές υπηρεσίες μέσω αυτής της διεπαφής WSDL.
SOAP vs REST Web Services στο SoapUI
SoapUI Ξεκίνησε ως πρόγραμμα-πελάτης SOAP και το όνομά του το λέει ακόμα, αλλά δοκιμάζει και τελικά σημεία REST. Γνωρίζοντας σε ποιο στυλ υποδεικνύετε, καθορίζεται ο τρόπος με τον οποίο θα κατασκευαστεί η δοκιμή.
| Άποψη | SOAP | ΠΕΡΙΦΕΡΕΙΑ |
|---|---|---|
| μεtract | Ένα αρχείο WSDL περιγράφει κάθε λειτουργία, επομένως SoapUI μπορεί να δημιουργήσει αιτήματα αυτόματα. | Συνήθως ένας ορισμός OpenAPI ή Swagger, ή καμία επίσημη παραδοχήtracκαθόλου. |
| Μορφή μηνύματος | Μόνο φάκελος XML. | Συνήθως JSON, αν και επιτρέπονται XML και άλλες μορφές. |
| Μεταφορά | Τις περισσότερες φορές HTTP, αλλά το SOAP είναι ανεξάρτητο από τη μεταφορά. | HTTP, με τη μέθοδο και URL φέροντας την πρόθεση. |
| Ισχυρισμοί σε SoapUI | Τα XPath και XQuery ταιριάζουν με τον φάκελο απόκρισης. | Οι δηλώσεις JSONPath και script ταιριάζουν με το ωφέλιμο φορτίο. |
| Τυπική χρήση | Τραπεζικές, τηλεπικοινωνιακές και άλλες επιχειρήσειςtracΕνσωματώσεις επιχειρήσεων με μεγάλο t-heavy περιεχόμενο. | Δημόσιες και κινητές υπηρεσίες όπου τα ωφέλιμα φορτία παραμένουν ελαφριά. |
Η παρακάτω αναλυτική παρουσίαση χρησιμοποιεί μια υπηρεσία καιρού SOAP, αλλά η ίδια κλάση runner εκτελεί μια δοκιμαστική περίπτωση REST χωρίς καμία αλλαγή στην Java κώδικας.
Τι είναι το SOAPUI;
SOAPUI είναι ένα εργαλείο δοκιμών διαδικτυακών υπηρεσιών ανοιχτού κώδικα για πολλαπλές πλατφόρμες. Η έκδοση SOAPUI-Pro διαθέτει επιπλέον λειτουργικότητα για εταιρείες που ασχολούνται με κρίσιμες διαδικτυακές υπηρεσίες. Οι διαδικτυακές υπηρεσίες παίζουν σημαντικό ρόλο στις εφαρμογές διαδικτύου.
⚠️ Σημείωση για το όνομα του προϊόντος: Η SmartBear έχει διακοπεί SoapUI Pro ως αυτόνομο προϊόν και το συγχώνευσε, μαζί με τα LoadUI Pro και ServiceV Pro, σε ReadyAPIΗ δωρεάν έκδοση διατηρεί το SoapUI όνομα και εξακολουθεί να κυκλοφορεί ενεργά. Τα παρακάτω βήματα λειτουργούν είτε σε, είτε σε υπάρχοντα SoapUI έργα ανοιχτά σε ReadyAPI.
Τι είναι Selenium?
Selenium δεν είναι ένα μόνο πρόγραμμα, αλλά μια οικογένεια εργαλείων για τη λειτουργία ενός προγράμματος περιήγησης με τον τρόπο που θα έκανε κάποιος χρήστης. Δύο μέλη έχουν σημασία εδώ:
- Selenium — ένα εργαλείο δοκιμών που αυτοματοποιεί τα προγράμματα περιήγησης σε πολλές πλατφόρμες.
- Selenium Πρόγραμμα οδήγησης Web — πραγματοποιεί απευθείας κλήσεις στα προγράμματα περιήγησης, χρησιμοποιώντας την εγγενή υποστήριξη αυτοματισμού κάθε προγράμματος περιήγησης.
Γιατί Συνδυάστε SoapUI και Selenium σε μία δοκιμή
Ο έλεγχος της υπηρεσίας και ο έλεγχος της οθόνης είναι συνήθως δύο ξεχωριστές εργασίες που διεκπεραιώνονται από δύο ξεχωριστές ομάδες, γι' αυτό και ένα ελάττωμα στη ραφή μεταξύ τους τείνει να επιβιώνει και στις δύο περιπτώσεις. Η συνδυασμένη λειτουργία τους καλύπτει αυτό το κενό.
- Αποδείξτε το ταξίδι μετ' επιστροφής. Μια κράτηση που υποβάλλεται στο πρόγραμμα περιήγησης θα πρέπει να εμφανίζεται στην απόκριση της υπηρεσίας. Μόνο μια συνδυασμένη δοκιμή μπορεί να επιβεβαιώσει και τα δύο μισά.
- Ρυθμίστε γρήγορα την κατάσταση. Η δημιουργία ενός πελάτη μέσω του API διαρκεί ένα δευτερόλεπτο. Η δημιουργία ενός έως δώδεκα πεδίων φόρμας διαρκεί ένα λεπτό και αποτυγχάνει συχνότερα.
- Εντοπίστε μια βλάβη. Όταν το περιβάλλον χρήστη εμφανίζει λανθασμένο σύνολο, η διεκδίκηση API στην ίδια εκτέλεση σάς ενημερώνει αμέσως εάν η υπηρεσία ή η σελίδα φέρει το σφάλμα.
- Επαναχρησιμοποιήστε ένα σύνολο δεδομένων. Τα ζεύγη ταχυδρομικού κώδικα και πόλης στο παρακάτω παράδειγμα τροφοδοτούν την κλήση υπηρεσίας και θα μπορούσαν εξίσου να τροφοδοτήσουν τους ισχυρισμούς του προγράμματος περιήγησης.
- Κόψτε την διπλή κάλυψη. Οι κανόνες επικύρωσης που έχουν ήδη αποδειχθεί στο επίπεδο υπηρεσιών δεν χρειάζονται αργή δοκιμή προγράμματος περιήγησης ο καθένας.
Το αντάλλαγμα είναι μια πιο βαριά δοκιμή: δύο εργαλεία, δύο σύνολα εξαρτήσεων και μια μεγαλύτερη εκτέλεση. Διατηρήστε τις συνδυασμένες δοκιμές για τη χούφτα των διαδρομών που πραγματικά διασχίζουν τα όρια και αφήστε τις υπόλοιπες ως καθαρές. API ή καθαροί έλεγχοι προγράμματος περιήγησης.
Selenium μαζί σου, SoapUI
Ο απλούστερος και ευκολότερος τρόπος ενσωμάτωσης Selenium μαζί σου, SoapUI είναι να χρησιμοποιήσει Groovy, Το οποίο SoapUI υποστηρίζει εκτενώς.
Groovy είναι μια αντικειμενοστρεφής γλώσσα σεναρίων που περιλαμβάνει όλα τα Java βιβλιοθήκες, έτσι κάθε Java λέξη-κλειδί και συνάρτηση μπορούν να χρησιμοποιηθούν σε ένα Groovy script απευθείας. Εκτελείται στο JVM (Java Εικονική Μηχανή), η οποία επιτρέπει σε ένα Groovy μπες μέσα SoapUI και σε έναν Java Selenium δοκιμή για να μοιραστείτε τις ίδιες τάξεις.
Προϋποθέσεις χρήσης Selenium μαζί σου, SoapUI
Εγκαταστήστε τα παρακάτω πριν γράψετε οποιονδήποτε κώδικα:
⚠️ Σημείωση έκδοσης: Groovy Η τρέχουσα σταθερή έκδοση 5.0 είναι η τρέχουσα και απαιτεί JDK 11 ή νεότερη έκδοση, επομένως εγκαταστήστε πρώτα το JDK και αφήστε το Groovy έκδοση ακολουθήστε το. Selenium προστίθεται σε ένα Java έργο ως Maven ή Gradle εξάρτηση αντί για φάκελο που έχει ληφθεί και το SoapUI Το jar πρέπει να βρίσκεται στην ίδια διαδρομή κλάσεων με το τεστ σας — σε αυτό το μοναδικό σημείο αποτυγχάνουν οι περισσότερες πρώτες προσπάθειες.
Τηλεφώνησε στο SoapUI Εκτελώνταs δοκιμαστικήs περίπτωσηs στο Selenium
Ο παρακάτω κώδικας καλεί ένα SoapUI δοκιμαστική περίπτωση. Ορίζει τις ιδιότητες για μια πόλη και τον αντίστοιχο ταχυδρομικό κώδικα και, όταν εκτελείται, ανακτά την τιμή κάθε πόλης και ταχυδρομικού κώδικα και, στη συνέχεια, αναφέρει τον αριθμό αποτυχιών για κάθε ζεύγος που δεν ταιριάζει. Αυτός ο κώδικας εκτελείται σε Selenium.
Σημείωση: Η τιμή usePropertyFileFlag=true χρησιμοποιείται εδώ αντί για ένα στατικό αρχείο ιδιοτήτων για την αποθήκευση του ταχυδρομικού κώδικα και της πόλης. Ο ταχυδρομικός κώδικας και η πόλη διαβιβάζονται δυναμικά κατά τον χρόνο εκτέλεσης από τη μέθοδο setProjectProperties().
Οδηγίες για την εκτέλεση του κώδικα:
- Ξεκίνα SoapUI.
- Ξεκινήστε μια νέα δοκιμαστική περίπτωση.
- Προσθέστε μια νέα Groovy βήμα.
- Αντιγράψτε και επικολλήστε το δείγμα κώδικα στο βήμα.
- Κάντε κλικ στο Play.
- Μπορείς να δεις Firefox εκκίνηση και πλοήγηση προς GoogleΜετά από αυτό, μπορείτε να δείτε το SoapUI καταχωρήσεις αρχείου καταγραφής.
- Ο κώδικας εκτελείται χρησιμοποιώντας JUnit.
Code Παράδειγμα
@when("<I use the weather service to get the weather information") public void i_use_the_weather_service_to_get_the_information() { Set<Entry<String, string>> set = zipAndCities.entrySet(); while (iterator,hasNext)) { Entry<String, String> entry = iterator.next(); String zipCode = entry.getkey(); String city = entry.getValue(); String[] prop = {"usePropertyFileFlag=true","zipCode=" +zipCode, "city=" +city}; try{ SoapUITestCaseRunner soapUITestCaseRunner = new SoapUITestCaseRunner(); soapUITestCaseRunner.setProjectFile("src/test/resources/WeatherSoapTest-soapui-project.xml"); soapUITestCaseRunner.setProjectProperties(prop); soapUITestCaseRunner.setTestSuite("TestSuite1"); soapUITestCaseRunner.setTestCase("TestCase1"); soapUITestCaseRunner.run(); } catch (Exception e) { System.err.println("checking" + zipCode + " failed!"); failureCount++; zipCodes.append(zipCode + " [" + city +"] "); e.printStackTrace(); }finally{ totalCount++; } } } }
⚠️ Code σημειώσεις: Αυτό το απόσπασμα αναπαράγεται ακριβώς όπως δημοσιεύτηκε και είναι ένα τμήμα και όχι μια μεταγλωττιζόμενη κλάση. Πριν από τη δημιουργία του, πρέπει να δηλώσετε τον επαναλήπτη που λαμβάνεται από set.iterator(), σωστός ενώ (επαναλήπτης, έχειΕπόμενο)) προς την ενώ (iterator.hasNext()) και entry.getkey() προς την entry.getKey(), γράψτε με κεφαλαίο την σημείωση ως @Οταν, αφαιρέστε τον αδέσποτο χαρακτήρα στην αρχή του κειμένου βήματος και χρησιμοποιήστε Σπάγγος αντί κορδόνι στη δήλωση Set. Το αρχικό κείμενο διατηρείται, επομένως το δημοσιευμένο παράδειγμα παραμένει άθικτο.
Η προβολή κονσόλας σάς επιτρέπει να δείτε όλα τα περίπτωση δοκιμήςs εκτελέστηκε. Θα βρείτε μια λίστα με τους ταχυδρομικούς κώδικες και τις πόλεις που ανακτήθηκαν και διαβιβάστηκαν SoapUI Δοκιμαστική Περίπτωση 1.
Προβολή SoapUI Αρχείο καταγραφής
Τα αρχεία καταγραφής καταγράφουν κάθε ενέργεια που λαμβάνει χώρα σε ένα λειτουργικό σύστημα ή μια εφαρμογή λογισμικού. Για να δείτε το SoapUI αρχείο καταγραφής, μεταβείτε στον κύριο κατάλογο, όπου θα δείτε ένα αρχείο με το όνομα soapui.log.
In SoapUI, το αρχείο καταγραφής βρίσκεται στον φάκελο bin μέσα στον κατάλογο εγκατάστασης, για παράδειγμα C:\Program Files\SmartBear\soapUI-Pro-4.0.1\bin. Σε μια τρέχουσα εγκατάσταση, ο φάκελος έκδοσης διαφέρει και ReadyAPI Η εγκατάσταση γράφει στον δικό της φάκελο bin.
Όταν ανοίγετε αυτό το αρχείο καταγραφής κάνοντας κλικ σε αυτό, θα μοιάζει με το παρακάτω στιγμιότυπο οθόνης.
Πού SoapUI και Selenium Η ενσωμάτωση συχνά διακόπτεται
Σχεδόν κάθε βλάβη σε αυτό το σημείο είναι πρόβλημα καλωδίωσης και όχι πρόβλημα δοκιμής. Αυτά είναι που πρέπει να ελέγξετε πρώτα.
| Σύμπτωμα | Πιθανή αιτία | Τι να ελέγξετε |
|---|---|---|
| NoClassDefFoundError ή ClassNotFoundException σε SoapUITestCaseRunner | The SoapUI Το jar δεν βρίσκεται στη διαδρομή κλάσεων δοκιμής. | Προσθέστε το SoapUI εξάρτηση από το αρχείο δημιουργίας ή κατευθύνετε τη διαδρομή κλάσης στο jar στο SoapUI φάκελος lib. Ένα jar που λείπει εμφανίζεται ως ένα συνηθισμένο Selenium εξαίρεση στην κονσόλα. |
| Το αρχείο του έργου δεν μπορεί να βρεθεί | Η setProjectFile() επιλύει μια σχετική διαδρομή σε σχέση με τον κατάλογο εργασίας, η οποία διαφέρει μεταξύ ενός IDE και ενός εργαλείου δημιουργίας. | Εκτέλεση από τη ρίζα του έργου ή μετάβαση σε μια απόλυτη διαδρομή. |
| Δεν βρέθηκε η σουίτα δοκιμών ή η περίπτωση δοκιμών | Τα ονόματα στις συναρτήσεις setTestSuite() και setTestCase() πρέπει να ταιριάζουν ακριβώς με το έργο. | Αντιγράψτε τα ονόματα κατευθείαν από το SoapUI δέντρο έργου· κάνουν διάκριση πεζών-κεφαλαίων. |
| Το ακίνητο δεν ανταποκρίνεται ποτέ στο αίτημα | Η setProjectProperties() εκτελέστηκε μετά την run() ή το αίτημα δεν αναφέρει την ιδιότητα. | Ορίστε κάθε ιδιότητα πριν από την run() και χρησιμοποιήστε τη σύνταξη placeholder ιδιότητας μέσα στο αίτημα. |
| Το πρόγραμμα περιήγησης δεν ξεκινά | Το πρόγραμμα οδήγησης και το εγκατεστημένο πρόγραμμα περιήγησης είναι διαφορετικές κύριες εκδόσεις. | Ας Selenium Ο διαχειριστής επιλύει το πρόγραμμα οδήγησης ή αντιστοιχίζει το πρόγραμμα οδήγησης με την έκδοση του προγράμματος περιήγησης. |
| Μια λειτουργία λειτουργεί στο IDE αλλά όχι από τον εκτελεστή | Το βήμα βασίζεται σε μια λειτουργία μόνο για Pro, όπως μια πηγή δεδομένων. | Επιβεβαιώστε την άδεια χρήσης ή δημιουργήστε ξανά το βήμα με ισοδύναμα ανοιχτού κώδικα. |
Μόλις ο runner τερματιστεί ομαλά και το soapui.log εμφανίσει τις αναμενόμενες καταχωρήσεις, η ενσωμάτωση λειτουργεί και μπορεί να αναδιπλωθεί σε ένα ευρύτερο δοκιμές αυτοματισμού για.



