τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Οι παράμετροι χρήστη κανονικής έκφρασης (RegEx User Parameters) είναι ένας προ-επεξεργαστής (Pre-Processor) που επιτρέπει στους χρήστες να εξάγουν τιμές από δεδομένα απόκρισης με βάση κανονικές εκφράσεις και να τις εφαρμόζουν και να μεταβιβάζουν αυτές τις τιμές ως παραμέτρους σε επόμενεςΑίτημα HTTP ή άλλα μέρη που χρειάζονται. Αυτή η δυνατότητα είναι εξαιρετικά ευέλικτη για το χειρισμό δυναμικού περιεχομένου, αναγνωριστικών περιόδου σύνδεσης, διακριτικών κ.λπ. και αποτελεί βασικό στοιχείο για την υλοποίηση αυτοματοποιημένων σεναρίων δοκιμών.
Χρησιμοποιούμε το SpringBoot για να γράψουμε τον ακόλουθο κώδικα διεπαφής
@PostMapping(value = "/login",produces = "application/json;charset=UTF-8")
public String authenticate(@RequestBody JSONObject request) {
String validUsername = "admin";
String validPassword = "password";
String response = "{"total":2,"data":[{"id":123,"name":"John Doe","email":"[email protected]","phone":"123-456-7890","address":{"street":"123 Main St","city":"New York","state":"NY","zip":"10001"},"interests":["sports","music","travel"]},{"id":456,"name":"Jane Smith","email":"[email protected]","phone":"987-654-3210","address":{"street":"456 Elm St","city":"Los Angeles","state":"CA","zip":"90001"},"interests":["reading","cooking","hiking"]}]}";
if (request.getString("username").equals(validUsername) && request.getString("password").equals(validPassword)) {
return response;
} else {
return response;
}
}
Στη συνέχεια γράφουμε το παρακάτω σενάριο
Ομάδα θεμάτων: Διατήρηση προεπιλογής
Αίτημα HTTP 1: πρωτόκολλο http, όνομα διακομιστή ή IP127.0.0.1, αριθμός θύρας 8091, μέθοδος POST, διαδρομή/σύνδεση, κωδικοποίηση περιεχομένου utf-8, δεδομένα σώματος μηνύματος
{
"username": "admin",
"password": "password"
}
Εξαγωγή κανονικής έκφρασης器:设置的参数为引用名称var,正则表达式"id"😦.;),"όνομα":"(.?)", "email" (μπορεί να γίνει γνωστό από το περιεχόμενο του δείγματος κώδικα) και σκοπός μας είναι να εξαγάγουμε το αναγνωριστικό και το όνομα, ο αριθμός που ταιριάζει ορίζεται σε -1 και η προεπιλεγμένη τιμή είναι NotFound
Σε αυτό το σημείο μπορούμε πρώτα να απενεργοποιήσουμε τις παραμέτρους χρήστη αιτήματος HTTP 2 και κανονικής έκφρασης, στη συνέχεια να εκτελέσουμε το σενάριο και να προβάλουμε το δείγμα εντοπισμού σφαλμάτων του δέντρου αποτελεσμάτων. Μπορείτε να δείτε τα ακόλουθα αποτελέσματα στο Σώμα απόκρισης των δεδομένων απόκρισης.
JMeterVariables:
JMeterThread.last_sample_ok=false
JMeterThread.pack=org.apache.jmeter.threads.SamplePackage@4fa1cf1
START.HMS=165132
START.MS=1720515092259
START.YMD=20240709
TESTSTART.MS=1720578466746
_jm__threadgroup__idx=0
_jmeter.U_T=ομάδα νημάτων 1-1
var=Δεν βρέθηκε
var_1=
var_1_g=2
var_1_g0="id":123,"name":"John Doe","email"
var_1_g1=123
var_1_g2=John Doe
var_2=
var_2_g=2
var_2_g0="id":456,"name":"Jane Smith","email"
var_2_g1=456
var_2_g2=Τζέιν Σμιθ
var_matchNr=2
Από το παραπάνω περιεχόμενο, μπορούμε να δούμε την τιμή της μεταβλητής var που εξάγεται από την αντίστοιχη κανονική έκφραση.
Αίτημα HTTP 2: πρωτόκολλο http, όνομα διακομιστή ή IP127.0.0.1, αριθμός θύρας 8091, μέθοδος POST, διαδρομή/σύνδεση, κωδικοποίηση περιεχομένου utf-8, στη συνέχεια προσθέστε δύο παραμέτρους στις παραμέτρους, συμπληρώστε τα ονόματα 123, 456 αντίστοιχα, μην τα χρησιμοποιείτε τώρα Ανεξάρτητα από τη συγκεκριμένη σημασία, ας το δοκιμάσουμε πρώτα.
Παράμετροι χρήστη κανονικής έκφρασης: Το όνομα αναφοράς κανονικής έκφρασης έχει οριστεί σε var, το όνομα παραμέτρου εδώ πρέπει να είναι σύμφωνο με το όνομα παραμέτρου στην παραπάνω κανονική έκφραση, Ονόματα παραμέτρων αριθμός ομάδας regexp έχει οριστεί σε 1, τιμές παραμέτρων ο αριθμός ομάδας regex έχει οριστεί έως 2, γιατί Πώς να το ρυθμίσετε έτσι; Μπορούμε να το καταλάβουμε με αυτόν τον τρόπο Δεν έχουμε ορίσει τα 123 και 456 στο αίτημα 2 του HTTP στο αίτημα HTTP 2 Αφού οι παράμετροι είναι συνεπείς με τις παραμέτρους εδώ, θα αντιστοιχίσουμε στη σχέση μεταξύ παραμέτρων και δεδομένων, ανοίγοντας το δρόμο για να οριστεί ο αριθμός της ομάδας regex των τιμών παραμέτρων στο 2. Μπορούμε πολύ καλά να καταλάβουμε ότι όταν οι τιμές παραμέτρων Ο αριθμός της ομάδας regex ορίζεται σε 2, αυτό που προκύπτει Οι παράμετροι γίνονται var_1_g2 και var_2_g2.
Το επόμενο βήμα είναι να επαληθεύσουμε τα αποτελέσματά μας για να προβάλουμε τα δεδομένα ανάρτησης του αιτήματος HTTP 2 στο δέντρο αποτελεσμάτων, αλλά δεν έχει σημασία Το αποτέλεσμα είναι άσχετο
ΑΝΑΡΤΗΣΗ http://127.0.0.1:8091/login
Δεδομένα POST:
123=John+Doe&456=Jane+Smith
[χωρίς cookies]
Από τα παραπάνω δεδομένα POST, μπορείτε να δείτε ότι τα αντίστοιχα δεδομένα έχουν αντικατοπτριστεί στο αίτημα.
● Πεδίο εφαρμογής: Οι παράμετροι χρήστη κανονικών εκφράσεων ισχύουν μόνο στο ακόλουθο αίτημα HTTP ή δειγματολήπτη Εάν πρέπει να τις εφαρμόσετε καθολικά, εξετάστε το ενδεχόμενο να χρησιμοποιήσετε τον "εξαγωγέα κανονικών εκφράσεων" σε συνδυασμό με μεταβλητές.
● Εντοπισμός σφαλμάτων: Χρησιμοποιήστε το πρόγραμμα ακρόασης "Προβολή δέντρου αποτελεσμάτων" για να ελέγξετε την αντιστοίχιση των τυπικών εκφράσεων για να διασφαλίσετε τη σωστή εξαγωγή δεδομένων.
Οι παράμετροι χρήστη κανονικής έκφρασης είναι μια ισχυρή δυνατότητα στο JMeter, η οποία απλοποιεί την επεξεργασία δυναμικών δεδομένων και βελτιώνει την ευελιξία και την αυτοματοποίηση των σεναρίων δοκιμών. Η σωστή διαμόρφωση και χρήση αυτής της λειτουργίας μπορεί να αντιμετωπίσει αποτελεσματικά τις ανάγκες δοκιμών απόδοσης πολύπλοκων συστημάτων.