Συσχέτιση στο LoadRunner με Παράδειγμα Web_Reg_Save_Param
Τι είναι η Συσχέτιση;
Η συσχέτιση, όπως υποδηλώνει το όνομα, είναι ένας μηχανισμός καθορισμού μιας σχέσης μεταξύ δύο μεταβλητών ή οντοτήτων. Ένα Λεξικό την ορίζει ως «στατιστική σχέση μεταξύ δύο ή περισσότερων μεταβλητών, έτσι ώστε οι συστηματικές αλλαγές στην άλλη να συνοδεύουν συστηματικές αλλαγές στην τιμή μιας μεταβλητής».
Γιατί χρειαζόμαστε τη Συσχέτιση;
Ας κατανοήσουμε τη συσχέτιση με το παρακάτω σενάριο.
Σκεφτείτε ότι ηχογραφείτε ένα σενάριο χρησιμοποιώντας το LoadRunner.
Επικοινωνία πελάτη-διακομιστή
- Κατά τη διάρκεια της εγγραφής, ο πελάτης στέλνει ένα αίτημα στον διακομιστή για να ξεκινήσει μια συνεδρία
- Ένας διακομιστής λαμβάνει το αίτημα και εκχωρεί ένα νέο αναγνωριστικό περιόδου σύνδεσης ABC
- Ο πελάτης αποθηκεύει το αναγνωριστικό περιόδου σύνδεσης ABC στο σενάριο.
- Ο πελάτης ξεκινά τη συνεδρία με το ID ABC και στέλνει ένα αίτημα σε έναν διακομιστή για να του επιτραπεί η εγγραφή
- Ο διακομιστής αναγνωρίζει το αναγνωριστικό ABC και επιτρέπει στον πελάτη να καταγράψει το σενάριο
- Τώρα, ας μελετήσουμε την επικοινωνία πελάτη-διακομιστή κατά την επανάληψη
- Κατά τη διάρκεια της Επανάληψης, ένας πελάτης στέλνει ένα αίτημα στον διακομιστή για να ξεκινήσει μια περίοδος λειτουργίας
- Ένας διακομιστής λαμβάνει το αίτημα και εκχωρεί ένα νέο αναγνωριστικό συνεδρίας XYZ
- Ένας πελάτης ξεκινά τη συνεδρία με προηγουμένως εγγεγραμμένο αναγνωριστικό περιόδου σύνδεσης ABC και στέλνει αίτημα στον διακομιστή για να του επιτραπεί η εγγραφή
- Ένας διακομιστής δεν μπορεί να αναγνωρίσει το αναγνωριστικό ABC καθώς περίμενε το αναγνωριστικό XYZ που έχει εκχωρήσει και η περίοδος λειτουργίας αποτυγχάνει.
Χρειαζόμαστε μια λύση, η οποία για να συλλάβει να αναλύσει τη δυναμική τιμή που αποστέλλεται κατά το χρόνο εκτέλεσης και να επιστρέψει αυτήν την τιμή πίσω στον διακομιστή. Δείτε πώς θα μοιάζει η επικοινωνία πελάτη-διακομιστή με αυτήν τη λύση
- Κατά τη διάρκεια της Επανάληψης, ένας πελάτης στέλνει ένα αίτημα στον διακομιστή για να ξεκινήσει μια περίοδος λειτουργίας
- Ένας διακομιστής λαμβάνει το αίτημα και εκχωρεί ένα νέο αναγνωριστικό περιόδου λειτουργίας ZZZ
- Ένας πελάτης αναλύει αυτό το νέο αναγνωριστικό συνεδρίας ZZZ από το αίτημα.
- Ένας πελάτης στέλνει ένα αίτημα για έναρξη συνεδρίας με αναγνωριστικό ZZZ
- Ένας διακομιστής αναγνωρίζει το αναγνωριστικό ZZZ και επιτρέπει στον πελάτη να αναπαράγει ξανά το σενάριο
Αυτό δεν είναι παρά συσχέτιση.
Πατήστε εδώ εάν το βίντεο δεν είναι προσβάσιμο
Στην περίπτωση του VUGen, η συσχέτιση είναι μια δεσμευτική σχέση μεταξύ μιας απάντησης και οποιουδήποτε προηγούμενου αιτήματος.
Υπάρχουν διάφορες περιπτώσεις κατά τις οποίες ένα αίτημα βασίζεται σε μια απάντηση που ελήφθη προηγουμένως από τον διακομιστή, όπως ένα Αναγνωριστικό περιόδου σύνδεσης, ημερομηνία/ώρα διακομιστή που έχει ληφθεί από τον διακομιστή. Αυτές οι τιμές είναι διαφορετικές κάθε φορά που εκτελείτε μια εφαρμογή ή καταγράφετε ένα σενάριο. Προφανώς, εάν η εκτέλεση του σεναρίου εξαρτάται από μια τιμή που επιστρέφεται από τον διακομιστή, σημαίνει ότι πρέπει να βρείτε έναν μηχανισμό όπου μπορείτε να "συλλάβετε" την απάντηση του διακομιστή και να επισυνάψετε σε εκείνα τα αιτήματα που αναμένει ο διακομιστής. Αυτό συνήθως ονομάζεται συσχέτιση στο LoadRunner.
Με απλά λόγια, η λύση με τη χρήση συσχέτισης είναι:
- Καταγράψτε την τιμή εξόδου από ένα βήμα
- Χρησιμοποιήστε την παραπάνω τιμή που καταγράφηκε για να χρησιμεύσει ως είσοδος σε όλα τα επόμενα βήματα
Η συσχέτιση ταξινομείται σε 2 κατηγορίες στο VUGen/LoadRunner:
- Αυτόματος συσχετισμός
- Χειροκίνητη συσχέτιση
Αυτόματος συσχετισμός
Το LoadRunner παρέχει έναν μηχανισμό για την εύκολη εκτέλεση συσχέτισης με αυτόματο τρόπο.
Το VUGen θα σας ζητήσει να εκτελέσετε ένα εγγεγραμμένο σενάριο τουλάχιστον δύο φορές, ώστε να μπορεί να συγκρίνει εσωτερικά τις ποικίλες τιμές στην απόκριση διακομιστή.
Η αυτόματη συσχέτιση μπορεί να ταξινομηθεί σε 3 κατηγορίες:
- Αυτόματος εντοπισμός συσχέτισης
- Συσχέτιση βάσει κανόνων
- Συσχέτιση όλων των δηλώσεων
Όνομα κανόνα | Πότε να χρησιμοποιήσετε |
---|---|
Αυτόματος εντοπισμός συσχέτισης | Εντοπίστε και συσχετίστε δυναμικά δεδομένα για διακομιστές εφαρμογών που υποστηρίζονται από το HP LoadRunner |
Βασισμένο σε κανόνες | Χρησιμοποιείται όταν εργάζεστε με έναν μη υποστηριζόμενο διακομιστή εφαρμογών για τον οποίο είναι γνωστό το περιβάλλον. |
Συσχετίστε όλα | Βοηθά στη συσχέτιση όλων των δυναμικών δεδομένων με τυφλό τρόπο. |
Αν και η Αυτόματη Συσχέτιση φαίνεται απλούστερη, μπορεί να είναι επιρρεπής σε σφάλματα και να λειτουργεί όχι περισσότερο από το 5% των περιπτώσεων. Συνιστάται πάντα να χρησιμοποιείτε χειροκίνητη συσχέτιση.
Για να διαμορφώσετε την αυτόματη συσχέτιση τη στιγμή της εγγραφής, εκτελέστε την παρακάτω διαμόρφωση στη Ρύθμιση χρόνου εγγραφής μετά την εγγραφή ενός σεναρίου.
Κάντε κλικ στο Record =>Recording Options (ή κάντε κλικ στο Ctrl +F7),
Θα ανοίξει το παρακάτω παράθυρο:
Κάντε κλικ στο Συσχέτιση => Διαμόρφωση - θα ανοίξει το παρακάτω παράθυρο.
Εδώ, πρέπει να επισημάνετε ως επιλεγμένες σε σχέση με όλες τις εφαρμογές (ASPNET) κ.λπ., που χρησιμοποιούνται στη θεματική σας εφαρμογή. Στη δεξιά πλευρά, μπορείτε να δείτε τους κανόνες που θα εντοπίσουν πιθανούς υποψηφίους για συσχέτιση π.χ. _VIEWSTATE. Μπορείτε επίσης να προσθέσετε περισσότερες εφαρμογές ή προσαρμοσμένους κανόνες κάνοντας κλικ στο κουμπί Νέος κανόνας.
Μπορείτε επίσης να κάνετε κλικ στους ΚΑΝΟΝΕΣ, θα δείτε ως εξής:
Για να λειτουργήσει η Αυτόματη συσχέτιση, πρέπει να βεβαιωθείτε ότι η Σάρωση κανόνων έχει επισημανθεί ως επιλεγμένη. Εάν κάνετε κλικ στην αυτόματη συσχέτιση τιμών που βρέθηκαν, το VUGen δεν θα σας ζητήσει την επιλογή μόλις βρεθεί ένας υποψήφιος συσχετισμός, αλλά απλώς θα τις συσχετίσει.
Θα καταλάβουμε το API που χρησιμοποιείται για συσχέτιση αργότερα. Ωστόσο, συνιστάται η χρήση σύγκρισης HTML αντί για σύγκριση κειμένου.
Αφού επιλέξετε κάποιους κανόνες, κάντε κλικ στο κουμπί OK για να κλείσετε τα παράθυρα.
Κάντε κλικ στο από το μενού και το VUGen θα αναγεννήσει το σενάριο (χωρίς να χρειάζεται εγγραφή) με νέες διαμορφώσεις. Το VUGen θα προσθέσει αυτόματα ένα απαραίτητο κομμάτι κώδικα για να χειριστεί τη συσχέτιση. Θα εξετάσουμε το δείγμα με περισσότερες λεπτομέρειες στο Manual Correlation.
Λάβετε υπόψη ότι εάν κάνετε συσχέτιση με μη αυτόματο τρόπο ή χρησιμοποιείτε αυτόματη συσχέτιση, το κομμάτι κώδικα θα περιέχει ακριβώς την ίδια σύνταξη και λειτουργία.
Βήματα για την αυτόματη συσχέτιση ενός σεναρίου:
- Ηχογραφήστε ένα σενάριο
- Επανάληψη σεναρίου
- Προσδιορίστε τις τιμές που θα συσχετιστούν
- Επιλέξτε τις τιμές και κάντε κλικ στο κουμπί αυτόματης συσχέτισης
- Επαληθεύστε το σενάριο εκτελώντας ξανά. Μια επιτυχημένη πορεία σημαίνει επιτυχημένη συσχέτιση.
Συμβουλή:
- Η συσχέτιση βοηθά στην εκτέλεση του σεναρίου σας με διαφορετικές τιμές
- Η συσχέτιση μειώνει επίσης το μέγεθος του σεναρίου σας
Χειροκίνητη Συσχέτιση
Η μη αυτόματη συσχέτιση αφορά τη σύνταξη κώδικα απευθείας στο σενάριό σας για να καλύψει συνεχώς μεταβαλλόμενες τιμές. Μπορούμε να το χωρίσουμε στα παρακάτω βήματα:
- Προσδιορίστε την τιμή που θέλετε να καταγράψετε
- Βρείτε τα δεξιά και τα αριστερά όρια κειμένου της τιμής προς λήψη (WEB)
- Βρείτε ποια εμφάνιση των ορίων κειμένου πρέπει να χρησιμοποιηθεί
- Προσθέστε μια συνάρτηση web_reg_save_param στο σενάριο, πάνω από το κομμάτι κώδικα που ζητά από τη σελίδα με την τιμή για καταγραφή
- Προσθέστε ένα όνομα παραμέτρου, το αριστερό όριο, το δεξί όριο και μια εμφάνιση στη συνάρτηση
- Παραμετροποιήστε τη δυναμική τιμή στο σενάριο κάθε φορά που εμφανίζεται
- Επαληθεύστε τη σωστή εκτέλεση
web_reg_save_param (" OracleAppJSESSIONID3", "LB/IC=JSESSIONID=", "RB/IC=;", "Ord=l", "Search=headers", "RelFrameId=l", LAST); web_reg_save_param("Siebel_Analytic_ViewState2", "LB/IC=ViewState\" value=\"", "RB/IC=\"", "Ord=1", "Search=Body", "RelFrameId=l", LAST);
Ο χειροκίνητος συσχετισμός μπορεί να γίνει με τη σύγκριση VUser. Τα βήματα στη μέθοδο συσχέτισης της σύγκρισης VUser μπορούν να χωριστούν ως εξής:
- Προσδιορίστε δυναμικές τιμές που πρέπει να συσχετιστούν
- Βρείτε την απόκριση διακομιστών που περιέχει την τιμή Dynamic
- Καταγράψτε τη Δυναμική τιμή σε μια παράμετρο
- Αντικαταστήστε κάθε εμφάνιση της τιμής Dynamic με την παράμετρο
- Επαλήθευση αλλαγών
Κατανόηση της συνάρτησης Web_reg_save_param
Το VUGen παρέχει πολλαπλές λειτουργίες ή API για τη συσχέτιση υποψηφίων, όπως:
- web_reg_save_param
- web_reg_save_param_ex
- web_reg_save_param_regexp
- web_reg_save_param_xpath
Ενώ παρέχεται μια σύντομη εισαγωγή εδώ, για μια λεπτομερή κατανόηση των συναρτήσεων και των παραμέτρων τους, ανοίξτε το VUGen, γράψτε τη συνάρτηση (ή χρησιμοποιήστε το Steps Toolbox), μετακινήστε τον κέρσορα στη συνάρτηση και κάντε κλικ στο F1 – εξοικειωθείτε με τη βοήθεια του VUGen και κάντε μια συνήθεια. Θα πρέπει να το αντιμετωπίσετε πολύ όταν εργάζεστε στον κλάδο.
Εδώ πάμε με τις λεπτομέρειες της λειτουργίας:
web_reg_save_param(Όνομα παραμέτρου , αριστερό όριο , δεξιό όριο )
Κατάλογος Ιδιοτήτων
Μετατρέπω: Οι πιθανές τιμές είναι:
HTML_TO_URL: μετατροπή δεδομένων με κωδικοποίηση HTML σε μορφή δεδομένων με κωδικοποίηση URL
HTML_TO_TEXT: μετατροπή δεδομένων με κωδικοποίηση HTML σε μορφή απλού κειμένου. αυτό το χαρακτηριστικό είναι προαιρετικό.
Αγνοήστε τις ανακατευθύνσεις: Εάν έχει καθοριστεί "Ignore Redirections=Yes" και η απόκριση διακομιστή είναι πληροφορίες ανακατεύθυνσης (κωδικός κατάστασης HTTP 300-303, 307), η απάντηση δεν αναζητείται. Αντίθετα, μετά τη λήψη μιας απάντησης ανακατεύθυνσης, το αίτημα GET αποστέλλεται στην ανακατευθυνόμενη τοποθεσία και η αναζήτηση εκτελείται στην απάντηση από αυτήν τη θέση.
Αυτό το χαρακτηριστικό είναι προαιρετικό. Η προεπιλογή είναι "Ignore Redirections=No".
LB: Το αριστερό όριο της παραμέτρου ή τα δυναμικά δεδομένα. Εάν δεν καθορίσετε μια τιμή LB, χρησιμοποιεί όλους τους χαρακτήρες από την αρχή των δεδομένων ως όριο. Οι οριακές παράμετροι έχουν διάκριση πεζών-κεφαλαίων. Για να προσαρμόσετε περαιτέρω το κείμενο αναζήτησης, χρησιμοποιήστε μία ή περισσότερες σημαίες κειμένου. Αυτό το χαρακτηριστικό είναι απαραίτητο. Δείτε την ενότητα Οριακά επιχειρήματα.
ΔΕΝ ΒΡΕΘΗΚΕ: Η επιλογή χειρισμού όταν δεν βρίσκεται ένα όριο και δημιουργείται μια κενή συμβολοσειρά.
Το "Not found=error", η προεπιλεγμένη τιμή, προκαλεί την εμφάνιση σφάλματος όταν δεν βρίσκεται ένα όριο.
"Not found=warning" ("Not found=empty" σε προηγούμενες εκδόσεις), δεν προκαλεί σφάλμα. Εάν το όριο δεν βρεθεί, ορίζει το πλήθος παραμέτρων στο 0 και συνεχίζει την εκτέλεση του σεναρίου. Η επιλογή "προειδοποίηση" είναι ιδανική εάν θέλετε να δείτε αν βρέθηκε η συμβολοσειρά, αλλά δεν θέλετε να αποτύχει το σενάριο.
Σημείωση: Εάν το Continue on Error είναι ενεργοποιημένο για το σενάριο, τότε ακόμα και όταν το NOTFOUND έχει οριστεί σε "σφάλμα", το σενάριο συνεχίζει όταν δεν βρεθεί το όριο, αλλά ένα μήνυμα σφάλματος εγγράφεται στο εκτεταμένο αρχείο καταγραφής.
Αυτό το χαρακτηριστικό είναι επίσης προαιρετικό.
ΠΑΡΑΓΓΕΛΙΑ: Υποδεικνύει τη θέση ή το στιγμιότυπο του αγώνα. Η προεπιλεγμένη εμφάνιση είναι 1. Εάν καθορίσετε "Όλα", αποθηκεύει τις τιμές παραμέτρων σε έναν πίνακα. Αυτό το χαρακτηριστικό είναι προαιρετικό.
Σημείωση: Η χρήση του Instance αντί του ORD υποστηρίζεται για συμβατότητα προς τα πίσω, αλλά έχει καταργηθεί.
RB: Το δεξί όριο της παραμέτρου ή τα δυναμικά δεδομένα. Εάν δεν καθορίσετε μια τιμή RB, χρησιμοποιεί όλους τους χαρακτήρες μέχρι το τέλος των δεδομένων ως όριο. Οι οριακές παράμετροι έχουν διάκριση πεζών-κεφαλαίων. Για να προσαρμόσετε περαιτέρω το κείμενο αναζήτησης, χρησιμοποιήστε μία ή περισσότερες σημαίες κειμένου. Αυτό το χαρακτηριστικό είναι απαραίτητο. Δείτε την ενότητα Οριακά επιχειρήματα.
RelFrameID: Το επίπεδο ιεραρχίας της σελίδας HTML σε σχέση με τη διεύθυνση URL που ζητήθηκε. Οι πιθανές τιμές είναι ΟΛΕΣ ή αριθμός. Κάντε κλικ στην επιλογή RelFrameID Attribute για λεπτομερή περιγραφή. Αυτό το χαρακτηριστικό είναι προαιρετικό.
Σημείωση: Το RelFrameID δεν υποστηρίζεται σε σενάρια επιπέδου GUI.
SaveLen: Το μήκος μιας δευτερεύουσας συμβολοσειράς της τιμής που βρέθηκε, από την καθορισμένη μετατόπιση, για αποθήκευση στην παράμετρο. Αυτό το χαρακτηριστικό είναι προαιρετικό. Η προεπιλογή είναι -1, υποδεικνύοντας την αποθήκευση στο τέλος της συμβολοσειράς.
SaveOffset: Η μετατόπιση μιας δευτερεύουσας συμβολοσειράς της τιμής που βρέθηκε, για αποθήκευση στην παράμετρο. Η τιμή μετατόπισης πρέπει να είναι μη αρνητική. Η προεπιλογή είναι 0. Αυτό το χαρακτηριστικό είναι προαιρετικό.
Έρευνα: Το εύρος της αναζήτησης - πού να αναζητήσετε τα οριοθετημένα δεδομένα. Οι πιθανές τιμές είναι Headers (Αναζήτηση μόνο στις κεφαλίδες), Body (αναζήτηση μόνο δεδομένων σώματος, όχι κεφαλίδων), No resource (αναζήτηση μόνο στο σώμα HTML, εξαιρουμένων όλων των κεφαλίδων και πόρων) ή ΌΛΟΙ (σώμα αναζήτησης, κεφαλίδες και πόροι). Η προεπιλεγμένη τιμή είναι ALL. Αυτό το χαρακτηριστικό είναι προαιρετικό αλλά γενικά προτιμάται.