Ισχυρισμοί σε SoapUI: Σενάρια, XQuery, Τύποι XPath
⚡ Έξυπνη Σύνοψη
Ισχυρισμοί σε SoapUI είναι τα σημεία ελέγχου που αποφασίζουν εάν μια απόκριση διαδικτυακής υπηρεσίας είναι σωστή, μετατρέποντας ένα αίτημα που απλώς εκτελείται σε μια δοκιμή που πραγματικά περνάει ή αποτυγχάνει σε πραγματικό, επαληθεύσιμο περιεχόμενο.

Τι είναι ο ισχυρισμός;
Ισχυρισμός σημαίνει πράξη επιβεβαίωσης ή δήλωσης κάτι. Μπορεί επίσης να ερμηνευθεί ως σημείο ελέγχου ή σημείο επικύρωσης.
Μόλις αποσταλεί ένα αίτημα σε έναν διακομιστή ιστού, λαμβάνεται μια απάντηση. Πρέπει να επαληθεύσουμε εάν η απάντηση περιέχει τα δεδομένα που περιμένουμε. Για να επικυρώσουμε την απάντηση, πρέπει να χρησιμοποιήσουμε ισχυρισμούς. Χωρίς ισχυρισμό, ένα βήμα δοκιμής αποδεικνύει μόνο ότι η υπηρεσία απάντησε, όχι ότι απάντησε σωστά, γι' αυτό και κάθε Δοκιμή API θα πρέπει να έχει μαζί του τουλάχιστον ένα.
Τύποι ισχυρισμών
Υπάρχουν διάφοροι τρόποι για να εκφράσουμε μια απάντηση, ωστόσο, θα επικεντρωθούμε στους πιο συνηθισμένους. SoapUI τύποι ισχυρισμών κατά την επικύρωση μιας απάντησης. Παρακάτω παρατίθενται οι κατηγορίες που είναι διαθέσιμες στην έκδοση ανοιχτού κώδικα του SoapUI.
- Περιεχόμενο ιδιοκτησίας
- Πρότυπο κατάστασης συμμόρφωσης
- Γραφή
- SLA
- JMS
- Ασφάλεια
Το παράθυρο διαλόγου ομαδοποιεί κάθε ισχυρισμό σε αυτές τις κατηγορίες, όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης.

Εκτός από αυτά που αναφέρονται παραπάνω, η έκδοση Pro διαθέτει επίσης μια ενσωματωμένη JDBC Assertion, χρησιμοποιώντας την οποία μπορούμε να επιβεβαιώσουμε εάν η υπηρεσία web έχει ενημερώσει σωστά τη βάση δεδομένων.
Σημείωση έκδοσης: ρεύμα SoapUI η τεκμηρίωση αναφέρει επίσης ένα JDBC κατηγορία (Κατάσταση JDBC και Χρονικό όριο JDBC) παράλληλα με τις παραπάνω κατηγορίες, και ένα Περιεχόμενο μηνύματος ισχυρισμός εντός του Περιεχομένου Ιδιοτήτων για πλουσιότερη σύγκριση XML. Η εμπορική έκδοση που αναφέρεται εδώ ως "Pro" πωλείται πλέον ως ReadyAPI από το SmartBear, επομένως οι ετικέτες μενού σε νεότερες εκδόσεις ενδέχεται να διαβάζονται διαφορετικά, ενώ η συμπεριφορά διεκδίκησης παραμένει η ίδια.
Περιέχει Ισχυρισμό
Αναζητά την ύπαρξη της καθορισμένης συμβολοσειράς. Υποστηρίζει επίσης κανονική έκφραση.
Θα συνεχίσουμε με το ίδιο παράδειγμα από το προηγούμενο σεμινάριο με αίτημα WSDL όπως http://www.dneonline.com/calculator.asmxΑν δεν έχετε κατασκευάσει ακόμα αυτό το έργο, επεξεργαστείτε το δημιουργία έργου, σουίτας δοκιμών και περίπτωσης δοκιμών πρώτη.
Βήμα 1: Από προεπιλογή, δεν υπάρχουν ισχυρισμοί.
- Ο αριθμός των ισχυρισμών εμφανίζεται στην καρτέλα Δηλώσεις.
- Για να προσθέσετε έναν νέο ισχυρισμό, κάντε κλικ στο κουμπί «Προσθήκη νέου ισχυρισμού».
Βήμα 2: Τώρα,
- Επιλέξτε την κατηγορία ισχυρισμών.
- Επιλέξτε τον Τύπο βεβαίωσης.
- Κάντε κλικ στο "Προσθήκη"
Βήμα 3: Ας επαληθεύσουμε εάν η συμβολοσειρά '46' υπάρχει στην απάντηση. Κάντε κλικ στο 'OK'.
Σημείωση: Μπορούμε επίσης να αγνοήσουμε πεζά και να προσθέσουμε τυπική έκφραση.
Βήμα 4: Μόλις προστεθεί, εκτελείται αμέσως η διεκδίκηση και εμφανίζεται αν είναι ΕΓΚΥΡΗ ή ΜΗ ΑΚΥΡΗ.
Βήμα 5: Ας υποθέσουμε τώρα ότι αλλάζουμε το περιεχόμενο του 'Περιέχει ισχυρισμό' στο SoapUI' στο '47' και δείτε τι θα συμβεί.
Βήμα 6: Η διεκδίκηση εκτελείται και το αποτέλεσμα εμφανίζεται στον χρήστη. Δεδομένου ότι δεν έχουμε τη συμβολοσειρά '47' στην απόκριση, η διεκδίκηση έχει αποτύχει.
Δεν περιέχει ισχυρισμό
Το αντίστοιχο λειτουργεί αντίστροφα. Αναζητά την ανυπαρξία της καθορισμένης συμβολοσειράς. Υποστηρίζει επίσης κανονική έκφραση.
Βήμα 1: Αφού κάνετε κλικ στο κουμπί «Προσθήκη νέων δηλώσεων»,
- Επιλέξτε την κατηγορία ισχυρισμών.
- Επιλέξτε τον τύπο δήλωσης – Σε αυτήν την περίπτωση «ΔΕΝ περιέχει»
- Κάντε κλικ στο "Προσθήκη"
Βήμα 2: Ας επαληθεύσουμε αν η συμβολοσειρά 'intA' υπάρχει στην απάντηση. Εισαγάγετε τη συμβολοσειρά 'FromCurrency' και κάντε κλικ στο 'OK'.
Βήμα 3: Μόλις προστεθεί μια διεκδίκηση, εκτελείται και εμφανίζει το αποτέλεσμα. Μέχρι στιγμής έχουμε προσθέσει δύο διεκδικήσεις, επομένως και οι δύο διεκδικήσεις εκτελούνται και εμφανίζουν το αποτέλεσμα.
Βήμα 4: Τώρα ας αλλάξουμε τα περιεχόμενα του 'Not Contains Assertion' και ας δούμε τι θα συμβεί. Θα ελέγξουμε για την ανυπαρξία της συμβολοσειράς "AddResult".
Βήμα 5: Η συμβολοσειρά 'AddResult' υπάρχει στην απόκριση, επομένως η διεκδίκηση 'NOT Contains' θα αποτύχει, όπως φαίνεται παρακάτω.
Δήλωση αντιστοίχισης XPath
Η αντιστοίχιση συμβολοσειρών είναι άμεση, επομένως η επόμενη διεκδίκηση στοχεύει έναν μόνο κόμβο. Χρησιμοποιεί την έκφραση XPath για να επιλέξει τον κόμβο-στόχο και τις τιμές του. XPath, είναι μια γλώσσα ερωτημάτων XML για την επιλογή κόμβων από ένα έγγραφο XML.
Βήμα 1: Αφού κάνετε κλικ στο κουμπί «Προσθήκη νέων ισχυρισμών»,
- Επιλέξτε την κατηγορία ισχυρισμών.
- Επιλέξτε τον Τύπο διεκδίκησης – Σε αυτήν την περίπτωση «Αντιστοιχία XPath»
- Κάντε κλικ στο "Προσθήκη"
Βήμα 2: Ανοίγει το παράθυρο Προσθήκη XPath.
Πριν από την προσθήκη ενός SoapUI Στο XPath, πρέπει να δηλώσουμε τον χώρο ονομάτων. Ένας χώρος ονομάτων XML είναι μια συλλογή ονομάτων, που αναγνωρίζονται από μια αναφορά Uniform Resource Identifier (URI), τα οποία χρησιμοποιούνται σε έγγραφα XML ως ονόματα στοιχείων και χαρακτηριστικών. Το ίδιο χρησιμοποιείται και στο SoapUI Δήλωση XPath.
Για να δηλώσουμε έναν χώρο ονομάτων XML, απλώς πρέπει να κάνουμε κλικ στο κουμπί «Δήλωση», το οποίο θα κάνει τη δουλειά για εμάς, διαφορετικά μπορούμε επίσης να δηλώσουμε έναν χώρο ονομάτων χειροκίνητα οι ίδιοι.
Αφού δηλώσουμε τον χώρο ονομάτων, πρέπει να αναφέρουμε το XPath χρησιμοποιώντας τον δημιουργημένο χώρο ονομάτων.
Κάνοντας κλικ στο κουμπί «Δήλωση», θα εμφανιστούν δύο χώροι ονομάτων, καθώς έχουμε δύο URI. Ένας από αυτούς είναι το σχήμα URL και το άλλο αντιστοιχεί στην πραγματική διαδικτυακή υπηρεσία URLΠρέπει να χρησιμοποιήσουμε τον πραγματικό χώρο ονομάτων όπου βρίσκεται η υπηρεσία web και ΟΧΙ τον χώρο ονομάτων σχήματος κατά την αναφορά στο XPath. Οι δηλωμένες γραμμές εμφανίζονται στο επάνω μέρος του πλαισίου XPath, όπως φαίνεται παρακάτω.
δήλωση namespace soap='http://schemas.xmlsoap.org/soap/envelope/';
δήλωση χώρου ονομάτων ns1='http://tempuri.org/';
Βήμα 3: Τώρα πρέπει να εισαγάγουμε την XPath του κόμβου XML που πρέπει να επικυρώσουμε.
//ns1:AddResult Μας δίνει την τιμή του κόμβου που περικλείεται μεταξύ & και το ns1 αντιστοιχεί στον δηλωμένο χώρο ονομάτων που δείχνει το 'http://tempuri.org/'
Αφού εισαγάγουμε το XML, πρέπει να κάνουμε κλικ στο 'Επιλογή από το τρέχον' έτσι ώστε η τιμή από την τρέχουσα απόκριση να συλλέγεται για σύγκριση στο μέλλον.
Βήμα 4: Μέχρι στιγμής,
- Αφού δηλώσουμε τους χώρους ονομάτων, έχουμε εισαγάγει τον κόμβο XPath του XML που πρέπει να επικυρώσουμε.
- Πρέπει να κάνουμε κλικ στο 'Επιλογή από το τρέχον' για να κάνουμε την τρέχουσα τιμή ως την αναμενόμενη τιμή.
- Η τρέχουσα τιμή εμφανίζεται στον χρήστη την οποία μπορούμε να τροποποιήσουμε εάν απαιτείται.
- Κάντε κλικ στο «Αποθήκευση».
Βήμα 5: Η προστιθέμενη Δήλωση στο SoapUI θα εμφανιστεί όπως φαίνεται παρακάτω.
Δηλώσεις σεναρίου
Αυτή η τεχνική του Assertion είναι η πιο ευρέως χρησιμοποιούμενη καθώς είναι εξαιρετικά δύσκολο να διαχειριστεί και να διατηρήσει εκατοντάδες ισχυρισμούς.
SoapUI χρησιμοποιεί είτε Groovy Σενάριο ή JavaΓραφή για ισχυρισμούς σεναρίου. Η τεχνική σεναρίου υιοθετείται για ανάπτυξηping ένα πλαίσιο για τον έλεγχο του SOAP. Οι ισχυρισμοί scripting χρησιμοποιούνται υπό τις ακόλουθες συνθήκες.
- Η δημιουργία σεναρίων επιτρέπει στον χρήστη να εκτελέσει ορισμένες λειτουργίες πριν και μετά την εκτέλεση μιας δοκιμαστικής περίπτωσης χρησιμοποιώντας μεθόδους ρύθμισης και κατάργησης αντίστοιχα. Η ρύθμιση είναι μια διαδικασία που εκτελείται πριν από την εκτέλεση μιας συγκεκριμένης μεθόδου (παράδειγμα - Δημιουργία και Αρχικοποίηση Αντικειμένου), ενώ η κατάργηση είναι μια διαδικασία που εκτελείται μετά την εκτέλεση της μεθόδου (π.χ.: Καταστροφή αντικειμένων και καθαρισμός). Αυτή η λειτουργία δεν είναι διαθέσιμη σε άλλους τύπους ισχυρισμών και μπορεί να γίνει μόνο μέσω κωδικοποίησης.
- Επιτρέπει στους χρήστες να ανοίγουν/κλείνουν ένα Έργο, προκειμένου να αρχικοποιήσουν ή να καθαρίσουν τις ρυθμίσεις που σχετίζονται με το Έργο, καθώς και να εργαστούν με μεταβλητές περιβάλλοντος, κάτι που είναι πολύ χρήσιμο κατά τη σύνταξη σεναρίων.
- Μας βοηθά να διεκδικήσουμε ένα δυναμικό περιεχόμενο απόκρισης.
- Οι ισχυρισμοί σεναρίων χρησιμοποιούνται για τη δημιουργία ισχυρισμών που ορίζονται από τον χρήστη και ΔΕΝ είναι προκαθορισμένοι από SoapUI.
Για την επίδειξη ενός ισχυρισμού Script σε SoapUI, θα χρησιμοποιήσουμε την αριθμομηχανή WSDL, την δοκιμαστική περίπτωση 'Προσθήκη' που είχαμε δημιουργήσει νωρίτερα.
Βήμα 1: Τα βήματα για την προσθήκη του groovy script είναι τα ίδια με αυτά άλλων ισχυρισμών, εκτός από το ότι ο ισχυρισμός δεν είναι προκαθορισμένος. Αντίθετα, είναι ένας ισχυρισμός που ορίζεται από τον χρήστη και προσφέρει μεγαλύτερη ευελιξία από τους ενσωματωμένους.
Επιλέξτε το βήμα δοκιμής στο οποίο πρέπει να προστεθεί ο ισχυρισμός.
Κάντε κλικ στο κουμπί «Προσθήκη ισχυρισμού» όπως φαίνεται παρακάτω.
Βήμα 2: Τώρα επιλέξτε την κατηγορία Διεκδίκηση.
- Σε αυτή την περίπτωση είναι Script.
- Αγορά SoapUI Ισχυρισμός Script και δεν υπάρχουν υποτύποι που να σχετίζονται με αυτό.
- Κάντε κλικ στο «Προσθήκη».
Βήμα 3: Ανοίγει το παράθυρο διαλόγου Scripting (Σενάριο) όπου ο χρήστης θα μπορεί να γράψει ένα σενάριο που ορίζεται από τον χρήστη για να επικυρώσει την XML απόκρισης.
Βήμα 4: Ας γράψουμε τώρα ένα groovy script για να επικυρώσουμε το Conversion Rate. Το Script επισυνάπτεται παρακάτω με τα ενσωματωμένα σχόλια. Συνιστάται να έχετε γνώσεις σχετικά με Java Σενάριο ή Groovy Σενάριο πριν επιχειρήσετε να γράψετε το δικό σας σενάριο.
//Define Groovy Utils and holder for validating the XML reponse content def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context) def holder = groovyUtils.getXmlHolder(messageExchange.responseContent) //Define the NameSpace holder.namespaces["ns1"] = "http://tempuri.org/" //Get the Value of the Node 'AddResult' and assign to a variable def addResult = holder.getNodeValue("//ns1:AddResult") //print the value of the result in the Output panel log.info "The result value for integers is " + addResult //Comparing the value to print 'Pass' or 'Fail' if(addResult=="46") { log.info "Pass" } else { log.info "fail"}
- Κάντε κλικ στο κουμπί "Εκτέλεση" για να ενεργοποιήσετε την εκτέλεση.
- Η έξοδος του Script εμφανίζεται στο παράθυρο Output. Έχει εκτυπώσει τόσο την Αξία μετατροπής όσο και το τελικό αποτέλεσμα (Επιτυχία ή Αποτυχία)
- Εμφανίζεται η πληροφορία ότι «Πέρασε η δήλωση δέσμης ενεργειών». Κάντε κλικ στο OK.
Σημείωση: Το τελικό αναδυόμενο παράθυρο πληροφοριών θα εμφανίζεται πάντα με το μήνυμα "Η δέσμευση σεναρίου πέρασε" εφόσον το σενάριο είναι συντακτικά σωστό. Δεν έχει καμία σχέση με τον ισχυρισμό σου μέσα στο σενάριο.
κάντε κλικ στο OK
Βήμα 5: Τώρα, η καρτέλα ισχυρισμών εμφανίζει όλους τους ισχυρισμούς που είχαμε προσθέσει για αυτήν τη σουίτα δοκιμών με την Κατάσταση για κάθε έναν από αυτούς.
Βήμα 6: Τώρα
- Επιλέξτε το Test Suite από το δέντρο Navigator
- Κάντε κλικ στο κουμπί "Εκτέλεση".
- Τα αποτελέσματα θα εμφανίζονται για ολόκληρη τη δοκιμαστική σουίτα.
Ισχυρισμός αντιστοίχισης XQuery
Χρησιμοποιεί μια έκφραση XQuery για να επιλέξει περιεχόμενο από την ιδιότητα-στόχο. Χρειαζόμαστε ένα πολύ μεγαλύτερο XML απόκρισης για να κατανοήσουμε καλύτερα τον ισχυρισμό XQuery στο SoapUIΑς εισαγάγουμε ένα άλλο WSDL όπως φαίνεται παρακάτω: http://www.webservicex.net/medicareSupplier.asmx?WSDL
Σημείωση: Τα δημόσια τελικά σημεία επίδειξης webservicex.net που χρησιμοποιούνται σε αυτήν την αναλυτική παρουσίαση δεν είναι πλέον αξιόπιστα προσβάσιμα, επομένως τα στιγμιότυπα οθόνης αιτήματος και απόκρισης παρακάτω διατηρούνται ως παράδειγμα αναφοράς. Οποιοδήποτε WSDL που επιστρέφει ένα επαναλαμβανόμενο σύνολο κόμβων θα ασκήσει την διεκδίκηση XQuery με τον ίδιο ακριβώς τρόπο.
Βήμα 1: Κάντε δεξί κλικ στο υπάρχον έργο και επιλέξτε «Προσθήκη WSDL».
Βήμα 2: Ανοίγει το παράθυρο διαλόγου Προσθήκη WSDL. Αφήστε τις άλλες επιλογές ως προεπιλογές και κάντε κλικ στο κουμπί "OK".
Βήμα 3: Όλες οι λειτουργίες παρατίθενται όπως φαίνεται παρακάτω.
Βήμα 4: Τώρα ας προσθέσουμε ένα Δοκιμαστική θήκη μέσα στην ίδια δοκιμαστική σουίτα για την οποία είχαμε δημιουργήσει Δοκιμές ο μετατροπέας νομισμάτων.
Βήμα 5: Εισαγάγετε το όνομα της δοκιμαστικής περίπτωσης και κάντε κλικ στο κουμπί «OK»
Βήμα 6: Η δοκιμαστική περίπτωση δημιουργείται όπως φαίνεται παρακάτω.
Βήμα 7: Προσθέστε ένα νέο βήμα δοκιμής τύπου 'Soap Test Request' όπως φαίνεται παρακάτω.
Βήμα 8: Εισαγάγετε το όνομα του βήματος δοκιμής. Ας πούμε – Supplier_by_City (Προμηθευτής_ανά_Πόλη), το οποίο θα ήταν πιο ουσιαστικό. Κάντε κλικ στο «OK».
Βήμα 9: Επιλέξτε το Operaπου θα θέλαμε να επικυρώσουμε. Σε αυτήν την περίπτωση είναι «MedicareSupplierSoap -> GetSupplierByCity». Κάντε κλικ στο 'OK'.
Βήμα 10: Εισαγάγετε το όνομα της δοκιμαστικής περίπτωσης και κάντε κλικ στο «OK».
Βήμα 11: Το περίγραμμα αιτήματος XML θα εμφανιστεί όπως φαίνεται παρακάτω.
Βήμα 12: Ας βρούμε τώρα όλες τις πληροφορίες προμηθευτών για την πόλη της «Νέας Υόρκης».
Για να το κάνετε αυτό, προσθέστε τις ακόλουθες γραμμές στον κώδικά σας.
<GetSupplierByCity xmlns="http://www.webservicex.net/"> <City>New York</City> </GetSupplierByCity>
WSDL παρακάτω URL – http://www.webservicex.net/medicareSupplier.asmx?op=GetSupplierByCity
Βήμα 13: Μετά την εκτέλεση της δοκιμής, λαμβάνουμε την παρακάτω απάντηση
Βήμα 14: Ας υποθέσουμε ότι πρέπει να επικυρώσουμε όλους τους αριθμούς προμηθευτή. Δεν μπορούμε να χρησιμοποιήσουμε την διεκδίκηση XPath, καθώς χρειαζόμαστε εκατοντάδες διεκδικήσεις XPath. Επομένως, η χρήση του XQuery είναι αναπόφευκτη σε αυτήν την περίπτωση.
Το XQuery Assertion μας βοηθά να επικυρώσουμε μια ομάδα απόκρισης XML που είναι επαναλαμβανόμενης φύσης.
Βήμα 15: Τώρα κάντε κλικ στην επιλογή «Προσθήκη ισχυρισμού».
- Επιλέξτε την «Κατηγορία ισχυρισμών» – Περιεχόμενο ιδιοκτησίας σε αυτήν την περίπτωση.
- Επιλέξτε τον Τύπο διεκδίκησης ως "Διαφήμιση XQuery"
- Κάντε κλικ στο «Προσθήκη».
Βήμα 16: Όπως και με την διεκδίκηση XPath, πρέπει να δηλώσουμε τον χώρο ονομάτων.
- Κάντε κλικ στο κουμπί «Δήλωση» για αυτόματη ενεργοποίηση SoapUI για να δηλώσετε τον χώρο ονομάτων. Κάνοντας κλικ στο κουμπί δήλωσης, θα εμφανιστεί στον χρήστη ένα «ΑΝΑΔΥΟΜΕΝΟ παράθυρο» με το μήνυμα «δήλωση χώρου ονομάτων από σχήμα αντί αυτού». Κάντε κλικ στο «Ναι» για να συνεχίσετε όπως φαίνεται παρακάτω.
- Για την ανάκτηση όλου του Supplier Number, πρέπει να γράψουμε ένα ερώτημα XPath και θα το τοποθετήσουμε στο < SupplierNumber> και Ετικέτες.
- Κάντε κλικ στο «Επιλογή από το τρέχον» που θα εκτελεστεί από την τρέχουσα απάντηση.
- Κάνοντας κλικ στην επιλογή «Επιλογή από το τρέχον», εμφανίζονται όλοι οι αριθμοί προμηθευτή.
- Κάντε κλικ στο «Αποθήκευση».
Σημείωση: Πατώντας το κουμπί «Δήλωση» ενδέχεται να εμφανιστεί διαφορετικό URLως δήλωση ονοματοθέτη, ωστόσο, ο πραγματικός χώρος ονομάτων τοποθεσίας διαδικτυακής υπηρεσίας είναι αυτός που θα ληφθεί υπόψη για τον κωδικοποίηση.
Η ολοκληρωμένη έκφραση XQuery, με τις δηλώσεις ονομάτων της, μοιάζει με αυτό.
// Namespace declaration declare namespace soap='http://schemas.xmlsoap.org/soap/envelope/'; declare namespace ns1='http://www.webservicex.net/'; declare namespace x = ''; // Placing the result in Myresult Tags{ // Iterating through all the supplier number for $x in //ns1:GetSupplierByCityResponse/ns1:SupplierDataLists/ns1:SupplierDatas/ns1:SupplierData //Return all the Supplier number within ‘SupplierNumber’ Tags. return {data($x/ns1:SupplierNumber)} }
Βήμα 17: Εκτελείται η εντολή XQuery Assertion και εμφανίζεται το τελικό αποτέλεσμα στον πίνακα «Διεκδίκηση» όπως φαίνεται παρακάτω. Τώρα έχουμε προσθέσει με επιτυχία μια εντολή XQuery, χρησιμοποιώντας την οποία έχουμε επικυρώσει όλες τις πληροφορίες του Αριθμού Προμηθευτή. Οι ίδιες πληροφορίες θα συγκρίνονται με τις πραγματικές, κάθε φορά που αποστέλλεται το αίτημα στον διακομιστή ιστού.
Σημείωση: Οι πραγματικές τιμές δεν θα εμφανιστούν. Εάν όλες οι πραγματικές τιμές είναι ίδιες με αυτές των αναμενόμενων τιμών, τότε εμφανίζεται η ένδειξη ΕΓΚΥΡΗ διαφορετικά θα εμφανιστεί η ένδειξη "Αποτυχία".
Πότε να χρησιμοποιήσετε το Inbuilt Assertion;
Με καλυμμένες τόσο τις επιλογές point-and-click όσο και τις επιλογές scripted, το πρακτικό ερώτημα είναι ποια να επιλέξετε.
- Όταν μια απάντηση είναι σύντομη ώστε να μπορεί να επικυρωθεί χρησιμοποιώντας έναν από αυτούς τους ενσωματωμένους ισχυρισμούς.
- Μπορούμε επίσης να χρησιμοποιήσουμε το Inbuilt Assertion εάν η απάντηση που αποστέλλεται από τον διακομιστή web είναι πάντα στατική. Εάν είναι δυναμικό, δεν θα μπορούμε να το επιβεβαιώσουμε χρησιμοποιώντας ενσωματωμένους ισχυρισμούς.
- Όταν η χρήση ενσωματωμένων βεβαιώσεων, όπως οι ισχυρισμοί χρονικού ορίου και οι ισχυρισμοί ασφάλειας καθίσταται αναπόφευκτη.
- Το Inbuilt Assertions διατηρείται αρκετά καλά για εφάπαξ χρήση όπου οι δοκιμές δεν χρειάζεται να επαναληφθούν.
Επιλογές ισχυρισμών
Οι ισχυρισμοί που δημιουργούνται μπορούν να ελεγχθούν καλύτερα με τη βοήθεια του πίνακα ελέγχου που επισημαίνεται παρακάτω.
Οι δημιουργημένοι ισχυρισμοί επιτρέπουν στους δοκιμαστές να διαμορφώσουν τα ακόλουθα πράγματα από την εργαλειοθήκη των ισχυρισμών.
| Επιλογή | Περιγραφή |
| Ο επιλεγμένος ισχυρισμός ανεβάζει τη σειρά. | |
| Ο επιλεγμένος ισχυρισμός μετακινείται προς τα κάτω στη σειρά. | |
| Καταργεί τον επιλεγμένο ισχυρισμό | |
| Επαναδιαμόρφωση/Επεξεργασία του επιλεγμένου ισχυρισμού. |
Παρακάτω παρατίθενται οι λειτουργίες που διατίθενται αποκλειστικά στην έκδοση Pro του SoapUI, τώρα αποστέλλεται ως ReadyAPIΗ έκδοση Pro μας βοηθά επίσης να ομαδοποιούμε τους ισχυρισμούς, ώστε να μπορούμε να προσθέσουμε ένα ακόμη επίπεδο επικύρωσης στους δημιουργημένους ισχυρισμούς.
- ΚΑΙ: Όλοι οι ισχυρισμοί αξιολογούνται ως ΕΓΚΥΡΟΙ ισχυρισμοί, γεγονός που θα οδηγήσει σε ΕΠΙΤΥΧΗ συνθήκη ομάδας.
- Ή: Τουλάχιστον ένας από τους ισχυρισμούς εντός της ομάδας πρέπει να είναι ΈΓΚΥΡΟς (VALID) για να δηλωθεί μια συνθήκη ομάδας PASSED (ΕΠΙΤΥΧΗΣ).
- Η έκδοση Pro επιτρέπει επίσης Κλωνοποίηση ΙσχυρισμώνΑυτή η επιλογή επιτρέπει στους δοκιμαστές να επιτρέψουν την αντιγραφή ενός ισχυρισμού σε διαφορετικό βήμα δοκιμής στο ίδιο ή σε διαφορετικό έργο.
- Απενεργοποίηση/Ενεργοποίηση ισχυρισμών: Αυτή η επιλογή επιτρέπει την απενεργοποίηση ή την ενεργοποίηση οποιασδήποτε ομαδοποιημένης ή μη ομαδοποιημένης ισχυρισμού. Εάν μια ισχυρισμός είναι απενεργοποιημένη, εμφανίζεται γκριζαρισμένη και όταν εκτελείται μια δοκιμαστική περίπτωση, οι απενεργοποιημένοι ισχυρισμοί δεν θα εκτελούνται.
- Αποομαδοποίηση ισχυρισμών: Οποιοιδήποτε ομαδοποιημένοι ισχυρισμοί μπορούν να αποομαδοποιηθούν εάν οι δοκιμαστές αποφασίσουν να το κάνουν.
Πλήρης λίστα μεθόδων που διατίθενται σε διάφορους τύπους ισχυρισμών
Ο παρακάτω πίνακας συγκεντρώνει κάθε ισχυρισμό που συζητήθηκε παραπάνω, ομαδοποιημένο κατά κατηγορία στην οποία εμφανίζεται στο παράθυρο διαλόγου Προσθήκη ισχυρισμού.
| Μηχανισμός Επιβολής | Περιγραφή |
| ΠΕΡΙΕΧΟΜΕΝΟ ΑΚΙΝΗΤΟΥ | |
| Περιέχει | Αναζητά την ύπαρξη της καθορισμένης συμβολοσειράς. Υποστηρίζει επίσης κανονική έκφραση. |
| Δεν περιέχει | Αναζητά την ανυπαρξία της καθορισμένης συμβολοσειράς. Υποστηρίζει επίσης κανονική έκφραση. |
| Ταίριασμα XPath | Χρησιμοποιεί την έκφραση XPath για να επιλέξει τον κόμβο προορισμού και τις τιμές του. |
| XQuery Match | Χρησιμοποιεί μια έκφραση XQuery για να επιλέξει περιεχόμενο από την ιδιότητα-στόχο. |
| Συμμόρφωση, Κατάσταση, Πρότυπα | |
| HTTP Λήψη όλων των πόρων | Επικυρώνει το Έγγραφο HTML μετά τη λήψη και διατηρείται καλά σε οποιαδήποτε ιδιότητα που περιέχει HTML. |
| Μη έγκυρη κατάσταση HTTP Codes | Επαληθεύει εάν η απάντηση HTML περιέχει έναν κωδικό κατάστασης που δεν περιλαμβάνεται στη λίστα των καθορισμένων κωδικών. |
| Δεν είναι σφάλμα SOAP | Επαληθεύει εάν το τελευταίο μήνυμα που ελήφθη δεν είναι σφάλμα SOAP. Είναι πολύ προφανές ότι ισχύει μόνο για SOAP Test Steps. |
| Συμμόρφωση Σχήματος | Επαληθεύει εάν το τελευταίο ληφθέν μήνυμα είναι συμβατό με τον τυπικό ορισμό σχήματος WSDL ή WADL. Κρατάει καλά για SOAP και REST Test Steps. |
| Σφάλμα SOAP | Επαληθεύει εάν το τελευταίο ληφθέν μήνυμα είναι σφάλμα SOAP. Είναι το αντίστροφο των βεβαιώσεων σφαλμάτων «NOT SOAP». |
| SOAP Response | Επαληθεύει εάν η τελευταία ληφθείσα απάντηση είναι έγκυρη απόκριση SOAP και ισχύει μόνο για τα βήματα αιτήματος δοκιμής SOAP. |
| Έγκυρη κατάσταση HTTP Codes | Επαληθεύει εάν η απόκριση HTML περιέχει έναν κωδικό κατάστασης που βρίσκεται στη λίστα των καθορισμένων κωδικών. Είναι το αντίστροφο του "Μη έγκυρη κατάσταση HTTP". Codes' Ισχυρισμός. |
| WS-Αίτημα Διεύθυνσης | Επαληθεύει εάν το τελευταίο αίτημα που ελήφθη περιέχει κατάλληλες κεφαλίδες διεύθυνσης WS. |
| Απάντηση διεύθυνσης WS | Επαληθεύει εάν η τελευταία ληφθείσα απάντηση περιέχει κατάλληλες κεφαλίδες διεύθυνσης WS. |
| WS-Security Status | Επικυρώνεται εάν το τελευταίο ληφθέν μήνυμα περιέχει έγκυρες κεφαλίδες WS-Security και ισχύει μόνο για αιτήματα SOAP. |
| Γραφή | |
| Διακήρυξη σεναρίου | Επιτρέπει στους χρήστες να εκτελέσουν ένα προσαρμοσμένο σενάριο για την εκτέλεση επικυρώσεων που ορίζονται από το χρήστη. |
| SLA | |
| SLA απόκρισης | Επικυρώνεται εάν ο χρόνος απόκρισης της τελευταίας ληφθείσας απάντησης ήταν εντός του καθορισμένου ορίου. |
| JMS | |
| Κατάσταση JMS | Επαληθεύει εάν το αίτημα JMS του Βήματος δοκιμής έχει εκτελεστεί με επιτυχία και ισχύει για τα Βήματα δοκιμής με τελικό σημείο JMS. |
| Χρονικό όριο JMS | Επαληθεύει εάν η απόκριση JMS ενός βήματος δοκιμής δεν κράτησε περισσότερο από την καθορισμένη διάρκεια. |
| Ασφάλεια | |
| Έκθεση ευαίσθητων πληροφοριών | Επαληθεύει εάν το μήνυμα απάντησης δεν εκθέτει ευαίσθητες πληροφορίες σχετικά με το σύστημα προορισμού. Μπορούμε να χρησιμοποιήσουμε αυτόν τον ισχυρισμό για Βήματα δοκιμής REST, SOAP και HTTP. |
ΚΑΤΕΒΑΣΤΕ ΤΟ ΕΡΓΟ SOAPUI ΠΟΥ ΠΕΡΙΕΧΕΙ ΤΟΥΣ ΠΑΡΑΠΑΝΩ ΔΙΑΒΑΣΙΜΟΥΣ
Συνήθη σφάλματα και αντιμετώπιση προβλημάτων
Οι περισσότερες αποτυχίες διεκδίκησης tracΕπιστρέφουμε σε ένα μικρό σύνολο λαθών, επομένως ελέγξτε τα πριν ξαναγράψετε μια έκφραση.
- Χρησιμοποιήστε τον σωστό χώρο ονομάτων. Ο χώρος ονομάτων θα πρέπει να είναι ο URL όπου βρίσκεται η διαδικτυακή υπηρεσία.
- Εάν παρουσιαστεί σφάλμα κατά την ανάπτυξηping μια διεκδίκηση σεναρίου, χρησιμοποιήστε την εντολή 'log.info' για να εκτυπώσετε τα περιεχόμενα των μεταβλητών.
- Εάν δεν έχετε την επιθυμητή έξοδο, βεβαιωθείτε ότι έχει περάσει μια έγκυρη είσοδος στο αίτημα.
Για παράδειγμα, στον μετατροπέα νομισμάτων, εάν εισαγάγετε το 'intA' ως 'x' που δεν είναι ακέραιος αριθμός, η έξοδος εμφανίζει έναν κωδικό σφάλματος ως 'SOAP-Client', που σημαίνει ότι το πρόβλημα αφορά την παράμετρο που διαβιβάζεται από την πλευρά του πελάτη. Το αίτημα που φέρει την μη έγκυρη τιμή εμφανίζεται πρώτο.
Η απόκριση επιστρέφει τον κωδικό σφάλματος αντί για αποτέλεσμα, όπως φαίνεται παρακάτω.
Βεβαιωθείτε ότι χρησιμοποιείτε τη σωστή σύνταξη κατά τη χρήση των δηλώσεων XPath και XQuery. ΔΕΝ πρέπει να χρησιμοποιείτε dot(.) αντί για colon(:) κατά τη χρήση της παραπάνω δήλωσης. Η σύνταξη είναι //namespace:Tagname και ΟΧΙ //namespace.tagname. Με αυτόν τον τρόπο, ενδέχεται να εμφανιστεί το μήνυμα "ΔΕΝ υπάρχει αντιστοίχιση στην τρέχουσα απόκριση" παρόλο που το όνομα της ετικέτας είναι σωστό.














































