Συσχέτιση στο LoadRunner με Παράδειγμα Web_Reg_Save_Param

Πίνακας περιεχομένων:

Anonim

Τι είναι η συσχέτιση;

Η συσχέτιση, όπως υποδηλώνει το όνομα, είναι ένας μηχανισμός προσδιορισμού μιας σχέσης μεταξύ δύο μεταβλητών ή οντοτήτων. Ένα λεξικό το ορίζει ως «στατιστική σχέση μεταξύ δύο ή περισσότερων μεταβλητών έτσι ώστε οι συστηματικές αλλαγές στην άλλη να συνοδεύουν συστηματικές αλλαγές στην τιμή μιας μεταβλητής».

Σε αυτό το σεμινάριο, θα μάθουμε

  • Γιατί χρειαζόμαστε συσχέτιση;
  • Αυτόματη συσχέτιση
  • Μη αυτόματη συσχέτιση
  • Κατανόηση της λειτουργίας Web_reg_save_param

Γιατί χρειαζόμαστε συσχέτιση;

Ας καταλάβουμε τη συσχέτιση με το ακόλουθο σενάριο.

Σκεφτείτε ότι καταγράφετε ένα σενάριο χρησιμοποιώντας το LoadRunner.

Επικοινωνία πελάτη-διακομιστή

  1. Κατά τη διάρκεια της εγγραφής, ο πελάτης στέλνει ένα αίτημα στο διακομιστή για να ξεκινήσει μια συνεδρία
  2. Ένας διακομιστής λαμβάνει το αίτημα και εκχωρεί ένα νέο αναγνωριστικό περιόδου σύνδεσης ABC
  3. Ο πελάτης αποθηκεύει το αναγνωριστικό περιόδου σύνδεσης ABC στο σενάριο.
  4. Ο πελάτης ξεκινά τη συνεδρία με το αναγνωριστικό ABC και στέλνει ένα αίτημα σε έναν διακομιστή για να του επιτρέψει την εγγραφή
  5. Ο διακομιστής αναγνωρίζει το αναγνωριστικό ABC και επιτρέπει στον πελάτη να εγγράψει το σενάριο

  1. Τώρα, ας μελετήσουμε την επικοινωνία πελάτη-διακομιστή κατά την επανάληψη
  2. Κατά τη διάρκεια της αναπαραγωγής, ένας πελάτης στέλνει ένα αίτημα στον διακομιστή για να ξεκινήσει μια περίοδο λειτουργίας
  3. Ένας διακομιστής λαμβάνει το αίτημα και εκχωρεί ένα νέο αναγνωριστικό περιόδου σύνδεσης XYZ
  4. Ένας πελάτης ξεκινά την περίοδο λειτουργίας με προηγουμένως καταγεγραμμένο αναγνωριστικό περιόδου σύνδεσης ABC και στέλνει αίτημα στον διακομιστή για να του επιτρέψει την εγγραφή
  5. Ένας διακομιστής δεν μπορεί να αναγνωρίσει το αναγνωριστικό ABC, καθώς περίμενε το ID XYZ που έχει εκχωρήσει και η περίοδος λειτουργίας αποτυγχάνει.

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

  1. Κατά τη διάρκεια της αναπαραγωγής, ένας πελάτης στέλνει ένα αίτημα στον διακομιστή για να ξεκινήσει μια περίοδο λειτουργίας
  2. Ένας διακομιστής λαμβάνει το αίτημα και εκχωρεί ένα νέο αναγνωριστικό περιόδου σύνδεσης ZZZ
  3. Ένας πελάτης αναλύει αυτό το νέο αναγνωριστικό περιόδου σύνδεσης ZZZ από το αίτημα.
  4. Ένας πελάτης στέλνει ένα αίτημα για έναρξη της περιόδου λειτουργίας με το αναγνωριστικό ZZZ
  5. Ένας διακομιστής αναγνωρίζει το αναγνωριστικό ZZZ και επιτρέπει στον πελάτη να αναπαράγει το σενάριο

Αυτό δεν είναι παρά συσχέτιση .

Κάντε κλικ εδώ εάν το βίντεο δεν είναι προσβάσιμο

Σε περίπτωση VUGen, η συσχέτιση είναι μια δεσμευτική σχέση μεταξύ μιας απόκρισης και οποιουδήποτε προηγούμενου αιτήματος.

Υπάρχουν διάφορες καταστάσεις όταν ένα αίτημα βασίζεται σε μια απόκριση που είχε ληφθεί στο παρελθόν από το διακομιστή, όπως ένα αναγνωριστικό περιόδου σύνδεσης, ημερομηνία / ώρα διακομιστή που ανακτήθηκε από το διακομιστή. Αυτές οι τιμές είναι διαφορετικές κάθε φορά που εκτελείτε μια εφαρμογή ή καταγράφετε ένα σενάριο. Προφανώς, εάν η εκτέλεση του σεναρίου εξαρτάται από μια τιμή που επιστρέφεται από τον διακομιστή, αυτό σημαίνει ότι πρέπει να βρείτε έναν μηχανισμό όπου μπορείτε να "πιάσετε" την απόκριση του διακομιστή και να επισυνάψετε σε αυτά τα αιτήματα που ο διακομιστής αναμένει. Αυτό συνήθως ονομάζεται Συσχέτιση στο LoadRunner.

Με απλά λόγια, η λύση χρησιμοποιώντας το Correlation είναι:

  1. Καταγράψτε την τιμή εξόδου από ένα βήμα
  2. Χρησιμοποιήστε την παραπάνω καταγεγραμμένη τιμή για να χρησιμεύσετε ως είσοδος σε όλα τα επόμενα βήματα

Η συσχέτιση ταξινομείται σε 2 κατηγορίες στο VUGen / LoadRunner:

  • Αυτόματη συσχέτιση
  • Μη αυτόματη συσχέτιση

Αυτόματη συσχέτιση

LoadRunner provides a mechanism to easily perform correlation in automatic fashion.

VUGen will require you to run a recorded script at least two times so it can internally compare the varying values in the server response.

Automatic correlation can be classified into 3 categories:

  • Auto-Detect Correlation
  • Rule-Based Correlation
  • Correlating All Statements
Rule Name When to Use
Auto-detect Correlation Detect and correlate dynamic data for application servers supported by HP LoadRunner
Rule-Based Used when working with a non-supported application server for which the context is known.
Correlate All Helps correlate all dynamic data in blind fashion.

Though Automatic Correlation seems simpler, it can be error-prone and works in not more than 5% of the cases. It is always advisable to use manual correlation.

To configure automatic correlation at the time of recording, perform below configuration in Record Time Setting after a script has been recorded.

Click on Record =>Recording Options (or click Ctrl +F7),

>

Below window will open:

Click on Correlation =>Configuration - below window will open.

Here, you need to mark as checked against all applications (ASPNET) etc., which are used in your subject application. On the right-hand side, you can see the rules which will detect possible candidates for correlation e.g. _VIEWSTATE. You can also add more applications or custom rules by clicking on New Rule button.

You can also click on RULES, you will see as below:

In order for Automatic Correlation to work, you need to ensure Rules Scan is marked as checked. If you click on automatically correlate values found, VUGen will not prompt you with the choice once a correlation candidate is found, instead, it will just correlate them.

We will understand API used for correlation later. However, it is advisable to use HTML comparison instead of text comparison.

Once you’ve selected any rules, click on OK button to close the windows.

Click on from menu and VUGen will regenerate script (without having to record) with new configurations. VUGen will automatically add a required piece of code to handle correlation. We will look at the sample in more detail in Manual Correlation.

Please note, if you perform correlation manually or use automatic correlation, the piece of code will contain exactly same syntax and function.

Steps to auto-correlate a script:

  1. Record a script
  2. Replay script
  3. Identify the values to be correlated
  4. Select the values and click the auto-correlate button
  5. Verify the script by running again. A successful run means successful correlation.

Tip:

  • Correlation helps run your script with different values
  • Correlation also reduces the size of your script

Manual Correlation

Manual correlation is about writing code directly into your script to cater for ever-changing values. We can split it into below steps:

  1. Determine the value to capture
  2. Find the right and left text boundaries of the value to capture (WEB)
  3. Find which occurrence of the text boundaries should be used
  4. Add a web_reg_save_param function to the script, above the piece of code which requests the page with the value to capture
  5. Add a parameter name, left boundary, the right boundary, and occurrence to the function
  6. Parameterize the dynamic value in the script every time it occurs
  7. Verify correct execution
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);

Manual correlation can be done by VUser Comparison. Steps in VUser Comparison method of Correlation can be split as below:

  1. Identify Dynamic values that need to be correlated
  2. Find Servers response containing the Dynamic value
  3. Capture the Dynamic value in a parameter
  4. Replace every occurrence of the Dynamic value with the parameter
  5. Verify Changes

Understanding Web_reg_save_param function

VUGen provides multiple functions or APIs to correlate candidates, including:

  • web_reg_save_param
  • web_reg_save_param_ex
  • web_reg_save_param_regexp
  • web_reg_save_param_xpath

While a brief introduction is being provided here, for a detailed understanding of functions and their parameters, open VUGen, write function (or use Steps Toolbox), move a cursor on the function and click F1 - get yourself acquainted with VUGen help and make a habit. You will have to deal with it a lot when working in the industry.

Here we go with the function details:

web_reg_save_param(Parameter Name , Left Boundary , Right Boundary )

List of Attributes

Convert: The possible values are:

HTML_TO_URL: convert HTML-encoded data to a URL-encoded data format

HTML_TO_TEXT: convert HTML-encoded data to plain text format; this attribute is optional.

Ignore Redirections: If "Ignore Redirections=Yes" is specified and the server response is redirection information (HTTP status code 300-303, 307), the response is not searched. Instead, after receiving a redirection response, the GET request is sent to the redirected location, and the search is performed on the response from that location.

This attribute is optional. The default is "Ignore Redirections=No".

LB: The left boundary of the parameter or the dynamic data. If you do not specify an LB value, it uses all of the characters from the beginning of the data as a boundary. Boundary parameters are case-sensitive. To further customize the search text, use one or more text flags. This attribute is required. See the Boundary Arguments section.

NOTFOUND: The handling option when a boundary is not found, and an empty string is generated.

"Not found=error", the default value, causes an error to be raised when a boundary is not found.

"Not found=warning" ("Not found=empty" in earlier versions), does not issue an error. If the boundary is not found, it sets the parameter count to 0 and continues executing the script. The "warning" option is ideal if you want to see if the string was found, but you do not want the script to fail.

Note: If Continue on Error is enabled for the script, then even when NOTFOUND is set to "error", the script continues when the boundary is not found, but an error message is written to the extended log file.

This attribute is optional as well.

ORD: Indicates the ordinal position or instance of the match. The default instance is 1. If you specify "All," it saves the parameter values in an array. This attribute is optional.

Note: The use of Instance instead of ORD is supported for backward compatibility, but deprecated.

RB: The right boundary of the parameter or the dynamic data. If you do not specify an RB value, it uses all of the characters until the end of the data as a boundary. Boundary parameters are case-sensitive. To further customize the search text, use one or more text flags. This attribute is required. See the Boundary Arguments section.

RelFrameID: The hierarchy level of the HTML page relative to the requested URL. The possible values are ALL or a number. Click RelFrameID Attribute for a detailed description. This attribute is optional.

Note: RelFrameID is not supported in GUI level scripts.

SaveLen : Το μήκος μιας υπο-συμβολοσειράς της τιμής που βρέθηκε, από την καθορισμένη μετατόπιση, για αποθήκευση στην παράμετρο. Αυτό το χαρακτηριστικό είναι προαιρετικό. Η προεπιλογή είναι -1, υποδεικνύοντας να αποθηκεύσετε στο τέλος της συμβολοσειράς

SaveOffset : Η μετατόπιση μιας υπο-συμβολοσειράς της τιμής που βρέθηκε, για αποθήκευση στην παράμετρο. Η τιμή μετατόπισης πρέπει να είναι μη αρνητική. Η προεπιλογή είναι 0. Αυτό το χαρακτηριστικό είναι προαιρετικό.

Αναζήτηση: Το εύρος της αναζήτησης-πού να αναζητήσετε τα οριοθετημένα δεδομένα. Οι πιθανές τιμές είναι Κεφαλίδες (Αναζήτηση μόνο στις κεφαλίδες), Σώμα (μόνο δεδομένα σώματος αναζήτησης, όχι κεφαλίδες), Χωρίς πόρους (αναζήτηση μόνο στο σώμα HTML, εξαιρουμένων όλων των κεφαλίδων και πόρων) ή ΟΛΕΣ (σώμα αναζήτησης, κεφαλίδες και πόροι) . Η προεπιλεγμένη τιμή είναι ΟΛΗ. Αυτό το χαρακτηριστικό είναι προαιρετικό αλλά γενικά προτιμάται.