Διακομιστής μεσολάβησης HTTP σε JMeter: Εγγραφή Παράδειγμα Σεναρίου
⚡ Έξυπνη Σύνοψη
JMeter Ο HTTP Proxy Server καταγράφει τη δραστηριότητα του προγράμματος περιήγησης σε ένα επαναχρησιμοποιήσιμο σενάριο δοκιμής. Το καταγραφικό βρίσκεται ανάμεσα στο πρόγραμμα περιήγησης και τον ιστότοπο, καταγράφει κάθε αίτημα σε έναν Ελεγκτή Εγγραφής και το αποθηκευμένο σχέδιο αναπαράγεται από πολλούς εικονικούς χρήστες.

Ποια είναι η JMeter Διακομιστής μεσολάβησης HTTP;
The JMeter Ο HTTP Proxy Server είναι μια ενσωματωμένη συσκευή εγγραφής που βρίσκεται ανάμεσα στο πρόγραμμα περιήγησης και τον ιστότοπο που δοκιμάζεται. Παρακολουθεί και καταγράφει τη δραστηριότητα των χρηστών ενώ η εφαρμογή περιηγείται κανονικά και μετατρέπει κάθε καταγεγραμμένο αίτημα σε ένα δείγμα αιτήματος HTTP μέσα στο σχέδιο δοκιμής. JMeter 3.0 το στοιχείο έχει ονομαστεί Εγγραφή σεναρίων δοκιμής HTTP(S), και τα δύο ονόματα περιγράφουν το ίδιο στοιχείο.
Ρεκόρ δοκιμών βοηθά έναν δοκιμαστή να καταγράφει και να αναπαράγει δραστηριότητα σε σχέση με έναν στόχο δοκιμής. Είναι ένας τύπος αυτοματοποιημένης δοκιμής, αλλά για πολλούς χρήστες ταυτόχρονα.
Γιατί να ηχογραφήσετε αντί να κατασκευάσετε το σενάριο χειροκίνητα;
Ένα ρεαλιστικό ταξίδι χρήστη σε έναν σύγχρονο ιστότοπο παράγει δεκάδες αιτήματα, το καθένα με τις δικές του κεφαλίδες, cookies και παραμέτρους φόρμας.ping Η χειροκίνητη μεταφορά όλων αυτών σε δειγματολήπτες είναι αργή και επιρρεπής σε σφάλματα. Η καταγραφή καταγράφει την ακριβή επισκεψιμότητα που έστειλε το πρόγραμμα περιήγησης, γεγονός που προσφέρει τρία πλεονεκτήματα:
- Ακρίβεια: Η σειρά κεφαλίδων, τα cookies και τα κρυφά πεδία φόρμας καταγράφονται ακριβώς όπως τα έλαβε ο διακομιστής.
- Ταχύτητα: Ένα ταξίδι δέκα σελίδων χρειάζεται λεπτά για να καταγραφεί και ώρες για να γραφτεί χειροκίνητα.
- Κάλυψη: Οι κλήσεις AJAX στο παρασκήνιο που είναι αόρατες στη διεπαφή εξακολουθούν να εμφανίζονται στην ηχογράφηση.
Η καταγραφή είναι ένα σημείο εκκίνησης και όχι μια ολοκληρωμένη δοκιμή. Χρειάζεται ακόμη καθαρισμό, συσχέτιση και παραμετροποίηση πριν να είναι χρησιμοποιήσιμη για δοκιμή φορτίουΟι παρακάτω ενότητες καλύπτουν την πλήρη διαδρομή από ένα κενό JMeter παράθυρο σε ένα σενάριο που αναπαράγεται αξιόπιστα.
Εδώ είναι η οδικός χάρτης αυτού του πρακτικού παραδείγματος
Πώς να εγγράψετε ένα σενάριο σε JMeter 5.x
Η τρέχουσα έκδοση είναι Apache JMeter 5.6.3, που δημοσιεύτηκε στις 9 Ιανουαρίου 2024, και απαιτεί Java 8 ή νεότερη έκδοση, με Java 17 συνιστάται. Όποιος ακολουθήσει την εικονογραφημένη αναλυτική παρουσίαση παρακάτω σε αυτήν τη σελίδα σχετικά με αυτήν την έκδοση δεν θα βρει έναν κόμβο WorkBench, επειδή αφαιρέθηκε στην έκδοση 5.0. Η λειτουργικότητα δεν εξαφανίστηκε, αλλά μετακινήθηκε. Η συσκευή εγγραφής προστίθεται τώρα απευθείας στο Σχέδιο Δοκιμών και ονομάζεται Συσκευή Εγγραφής Σεναρίων Δοκιμών HTTP(S).
Η ταχύτερη διαδρομή είναι το πακέτο προτύπου. Επιλέξτε Αρχεία > Templates > Εγγραφή και JMeter δημιουργεί ένα πλήρες σχέδιο που περιέχει μια ομάδα νημάτων, προεπιλογές αιτημάτων HTTP, έναν ελεγκτή εγγραφής και την ίδια τη συσκευή εγγραφής, ήδη συνδεδεμένα μεταξύ τους. Η χειροκίνητη κατασκευή της ίδιας δομής ακολουθεί τα παρακάτω βήματα.
- Κατασκευάστε τον σκελετό του σχεδίου. Προσθέστε μια Ομάδα Νημάτων και, στη συνέχεια, προσθέστε έναν Ελεγκτή Εγγραφής από κάτω. Εδώ θα προσγειωθούν τα καταγεγραμμένα δείγματα.
- Προσθέστε τη συσκευή εγγραφής στο Σχέδιο Δοκιμής. Κάντε δεξί κλικ στον κόμβο Test Plan και επιλέξτε Πρόσθεση > Μη δοκιμαστικά στοιχεία > Εγγραφή σεναρίων δοκιμής HTTP(S)Είναι αδελφό μέλος της Ομάδας Νημάτων, όχι παιδί.
- Ρυθμίστε τη θύρα. Η προεπιλογή είναι 8888. Οποιαδήποτε ελεύθερη θύρα λειτουργεί, αρκεί το πρόγραμμα περιήγησης να έχει ρυθμιστεί ώστε να ταιριάζει.
- Επιλέξτε Target Ελεγκτής. Επιλέξτε τον Ελεγκτή Εγγραφής που δημιουργήθηκε στο πρώτο βήμα, ώστε τα αιτήματα να ομαδοποιούνται εκεί που περιμένετε και όχι να είναι διασκορπισμένα στη ρίζα του σχεδίου.
- Πρόσθεση URL πρότυπα αποκλεισμού. Στην καρτέλα Φιλτράρισμα αιτημάτων, εξαιρέστε στατικούς πόρους με μοτίβο όπως .*\.(bmp|css|js|gif|ico|jpe?g|png|svg|woff2?)Αυτό καταργεί το μεγαλύτερο μέρος του χειροκίνητου καθαρισμού που περιγράφεται αργότερα.
- Ξεκινήστε τη συσκευή εγγραφής. Πατήστε Αρχική στο επάνω μέρος του πάνελ της συσκευής εγγραφής. JMeter γράφει ο ApacheJMeterΤο TemporaryRootCA.crt στον φάκελο bin αυτή τη στιγμή, κάτι που καθιστά δυνατή την εγγραφή HTTPS.
- Στρέψτε το πρόγραμμα περιήγησης προς τον διακομιστή μεσολάβησης χρησιμοποιώντας το localhost και την επιλεγμένη θύρα και, στη συνέχεια, πλοηγηθείτε στην εφαρμογή κανονικά.
- Σταμάτα και τακτοποίησε. Πατήστε Διακοπή, διαγράψτε τυχόν υπόλοιπες κλήσεις τρίτων και αποθηκεύστε το πρόγραμμα.
- Επικύρωση πριν από την κλιμάκωση. Κάντε δεξί κλικ στην ομάδα νημάτων και επιλέξτε ΕπικύρωσεΑυτό εκτελεί το σχέδιο μία φορά με ένα μόνο νήμα, έτσι ώστε οι βλάβες να εμφανίζονται πριν εφαρμοστεί οποιοδήποτε φορτίο.
Μια ακόμη συνήθεια διαχωρίζει ένα λειτουργικό σενάριο από ένα αξιόπιστο. Χρησιμοποιήστε τη γραφική διεπαφή μόνο για δημιουργία και εντοπισμό σφαλμάτων και, στη συνέχεια, εκτελέστε την πραγματική δοκιμή από τη γραμμή εντολών με jmeter -n -t plan.jmx -l results.jtl -e -o αναφορά, το οποίο δημιουργεί επίσης έναν πίνακα ελέγχου HTML. Η ίδια εντολή αποτελεί τη βάση του κατανεμημένες δοκιμές σε διάφορες γεννήτριες φορτίου. Η εγκατάσταση καλύπτεται στο JMeter οδηγός εγκατάστασηςκαι η πλήρης διαδικασία καταγράφεται στο Apache JMeter σελίδα εγγραφής.
⚠️ Σημείωση έκδοσης: Οι οθόνες στην παρακάτω αναλυτική παρουσίαση καταγράφηκαν σε παλαιότερο JMeter έκδοση που εξακολουθούσε να έχει τον κόμβο WorkBench. Το WorkBench αφαιρέθηκε στο JMeter 5.0. Κάθε έννοια εξακολουθεί να ισχύει. Μόνο η θέση του καταγραφέα αλλάζει και η τρέχουσα διαδικασία είναι αυτή που δίνεται παραπάνω.
Βήμα 1) Ρύθμιση του διακομιστή μεσολάβησης HTTP
Αυτός είναι ένας οδηγός βήμα προς βήμα για τη ρύθμιση του διακομιστή μεσολάβησης
- Αρχική JMeter
- Αγορά Σχέδιο δοκιμής στο δέντρο
- Πρόσθεση Ομάδα νημάτωνΚάντε δεξί κλικ στο Σχέδιο δοκιμής και προσθέστε μια νέα ομάδα νημάτων: Πρόσθεση > Νήματα (Χρήστες) > Ομάδα νημάτων
- Πρόσθεση Αίτημα HTTPΕπιλέξτε την ομάδα νημάτων. Κάντε δεξί κλικ Πρόσθεση > Στοιχείο διαμόρφωσης > Προεπιλογές αιτήματος HTTP
Στο νέο στοιχείο Προεπιλογές αιτήματος HTTP: Στο όνομα διακομιστή ή στο IP, πληκτρολογήστε "google.com". Θα πρέπει να κρατήσετε τα άλλα πεδία κενά
- Πρόσθεση Ελεγκτής εγγραφήςΚάντε δεξί κλικ στην «Ομάδα νημάτων» και προσθέστε έναν ελεγκτή εγγραφής: Πρόσθεση > Λογικός ελεγκτής > Ελεγκτής εγγραφής
- Πρόσθεση proxy server στο WorkBench. Κάντε δεξί κλικ στο Workbench και προσθέστε τον διακομιστή μεσολάβησης http: Πρόσθεση > Μη δοκιμαστικά στοιχεία > Διακομιστής μεσολάβησης HTTP. Επί JMeter 5.x, κάντε δεξί κλικ στο Σχέδιο δοκιμής κόμβος αντί για αυτό και επιλέξτε Εγγραφή σεναρίων δοκιμής HTTP(S).
- σετ Target ελεγκτής όπου θα προστεθούν τα εγγεγραμμένα σενάρια σας
- Αρχική Διακομιστής μεσολάβησης. Επιστρέψτε στον Διακομιστή μεσολάβησης HTTP και κάντε κλικ στο Αρχική κουμπί στο κάτω μέρος. Τώρα το δικό σου JMeter έναρξη διακομιστή μεσολάβησης
- Εκκινήστε το πρόγραμμα περιήγησής σας (εγώ χρησιμοποίησα Firefox), επιλέξτε Εργαλείο > Επιλογή > Προηγμένη > Δίκτυο > Ρύθμιση > Εισαγάγετε τον διακομιστή μεσολάβησης HTTP όπως φαίνεται παρακάτω. Στην τρέχουσα κατάσταση, ο διακομιστής μεσολάβησης HTTP είναι ο εξής: Firefox απελευθερώνει τον ίδιο διάλογο που επιτυγχάνεται μέσω Ρυθμίσεις > Γενικός > Ρυθμίσεις Δικτύου.
Βήμα 2) Καταγράψτε τη δραστηριότητά σας
- Τώρα Εκκίνηση http://www.google.com στο πρόγραμμα περιήγησής σας (JMeter ακόμα ανοιχτό)
- Οι δραστηριότητες αναζητούν τη λέξη-κλειδί "guru99".
- Επιστροφή στην JMeter, στον διακομιστή μεσολάβησης HTTP, κάντε κλικ στάση όταν τελειώσει
- Αφού ολοκληρώσετε την εγγραφή, θα δείτε JMeter δημιούργησε αυτόματα ένα νέο αίτημα HTTP όπως το παρακάτω σχήμα
JMeter έχει ήδη καταγράψει ένα αίτημα χρήστη στο την Αρχική Σελίδα of Google ιστοσελίδα. http://www.google.com/
Τα άλλα αιτήματα HTTP εμφανίζονται στο παραπάνω σχήμα, θα πρέπει να τα αφαιρέσετε. Γιατί κάποια στιγμή JMeter καταγράφει επίσης ορισμένους διαφημιστικούς συνδέσμους ενώ αναζητάτε λέξεις-κλειδιά σε GoogleΘα πρέπει να τα αγνοήσουμε στο Σχέδιο Δοκιμών μας.
- Κάντε κλικ στο Αρχείο > Αποθήκευση του σχεδίου δοκιμής ως
- Εμφανίζεται ένα παράθυρο διαλόγου > πληκτρολογήστε ένα όνομα για το σχέδιο δοκιμής σας στο πεδίο Όνομα αρχείου > κάντε κλικ στην επιλογή Αποθήκευση. Τώρα το σχέδιο δοκιμής σας αποθηκεύεται με το όνομα RecordingTestPlan.jmx
Βήμα 3) Εκτελέστε το σχέδιο δοκιμής σας
- Αγορά Ομάδα νημάτων > Προσθήκη > Ακροατής > Αναφορά σύνοψης
- Η Συνοπτική Έκθεση θα εμφανίσει ορισμένα βασικά στατικά
- Επιλέξτε Ομάδα νημάτων, εισαγάγετε πληροφορίες όπως στην παρακάτω εικόνα
Μπορείτε να ανατρέξετε στο άρθρο JMeter Δοκιμές Απόδοσης για να μάθετε τις λεπτομέρειες σχετικά με τη διαμόρφωση της ομάδας νημάτων.
- Πριν ξεκινήσετε τη δοκιμή, επιλέξτε «Σύνοψη αναφοράς». Όταν είστε έτοιμοι να εκτελέσετε μια δοκιμή, επιλέξτε Εκτέλεση > Έναρξη (Ctrl+R). JMeter θα αναπαράγει τη δραστηριότητά σας 100 φορές. Καθώς εκτελείται η δοκιμή, τα στατιστικά στοιχεία θα αλλάζουν μέχρι να ολοκληρωθεί η δοκιμή.
Βήμα 4) Αποθηκεύστε το αποτέλεσμα της δοκιμής σας
- Πατήστε Αποθήκευση δεδομένων πίνακα για να αποθηκεύσετε το αποτέλεσμα της δοκιμής στο αρχείο
- Εισαγάγετε το όνομα του αποτελέσματος της δοκιμής και κάντε κλικ στην επιλογή Αποθήκευση. Αποτέλεσμα δοκιμής σε JMeter αποθηκεύεται σε μορφή *.csv ως προεπιλογή
Κατεβάστε το Πρόγραμμα δοκιμής εγγραφής αρχείου
Κάντε λήψη του αρχείου HTTP Proxy Server
Καταγραφή κίνησης HTTPS και πιστοποιητικών
Σχεδόν κάθε ιστότοπος πλέον εξυπηρετεί HTTPS, το οποίο προηγείται της αρχικής αναλυτικής παρουσίασης. Ένας διακομιστής μεσολάβησης δεν μπορεί να διαβάσει κρυπτογραφημένη επισκεψιμότητα εκτός εάν το πρόγραμμα περιήγησης τον εμπιστευτεί, επομένως απαιτείται ένα επιπλέον βήμα.
Όταν ξεκινήσει η συσκευή εγγραφής, JMeter δημιουργεί ένα προσωρινό πιστοποιητικό ρίζας με το όνομα ApacheJMeterTemporaryRootCA.crt στον κατάλογο bin του. Εισαγάγετε αυτό το αρχείο στο πρόγραμμα περιήγησης ως αξιόπιστη αρχή έκδοσης πιστοποιητικών και, στη συνέχεια, επανεκκινήστε το πρόγραμμα περιήγησης. JMeter μπορεί πλέον να παρουσιάσει το δικό του πιστοποιητικό για κάθε ιστότοπο και να αποκρυπτογραφήσει την περίοδο λειτουργίας για καταγραφή.
Τρία σημεία που αξίζει να γνωρίζετε:
- Το πιστοποιητικό λήγει μετά από επτά ημέρες. Αυτό είναι σκόπιμο. Διαγράψτε το και αφήστε το JMeter αναδημιουργήστε ένα νέο αντί να επεκτείνετε την ισχύ του.
- Αφαιρέστε το όταν τελειώσετε. Η εγκατάσταση ενός αξιόπιστου πιστοποιητικού ρίζας σε έναν λειτουργικό υπολογιστή αποτελεί πραγματικό κίνδυνο ασφαλείας και όχι θεωρητικό.
- Ορισμένες εφαρμογές το αρνούνται. Οι ιστότοποι που χρησιμοποιούν καρφίτσωμα πιστοποιητικών ή αμοιβαίο TLS δεν μπορούν να καταγραφούν μέσω διακομιστή μεσολάβησης και το σενάριο πρέπει να δημιουργηθεί χειροκίνητα από εργαλεία προγραμματιστών προγράμματος περιήγησης.
Συσχέτιση: Πώς να κάνετε ένα ηχογραφημένο σενάριο επαναλήψιμο
Ένα εγγεγραμμένο σενάριο αναπαράγει ακριβώς αυτό που συνέβη μία φορά, κάτι που σπάνια συμβαίνει τη δεύτερη φορά. Τα αναγνωριστικά περιόδου σύνδεσης, τα διακριτικά και τα δημιουργημένα κλειδιά που καταγράφονται κατά την εγγραφή είναι νεκρές τιμές μέχρι την επανάληψη του σεναρίου και η εκτέλεση αποτυγχάνει με τρόπους που μοιάζουν με σφάλματα εφαρμογής.
Η συσχέτιση είναι η λύση. Α μετα-επεξεργαστής όπως η Κανονική Έκφραση Extractor ή το JSON ExtracΤο tor καταγράφει την νέα τιμή από την απόκριση σύνδεσης, την αποθηκεύει σε μια μεταβλητή και αργότερα ζητά αναφορά σε αυτήν τη μεταβλητή αντί για το καταγεγραμμένο literal.
Η ροή εργασίας είναι σύντομη:
- Επαναλάβετε τη δέσμη ενεργειών μία φορά με έναν ακροατή View Results Tree και βρείτε το πρώτο αποτυχημένο αίτημα.
- Συγκρίνετε το αίτημα που απέτυχε με την εγγραφή. Οποιαδήποτε τιμή που διαφέρει μεταξύ δύο εκτελέσεων χρειάζεται συσχέτιση.
- Προσθήκη πρώηνtractor στην απόκριση που παρήγαγε την τιμή και, στη συνέχεια, αντικαταστήστε το ενσωματωμένο literal με την αναφορά μεταβλητής.
- Προσθέστε ένα ισχυρισμός επομένως, μια σελίδα που επιστρέφει HTTP 200 με μήνυμα σφάλματος εξακολουθεί να αποτυγχάνει στη δοκιμή.
Μόνο μετά τη συσχέτιση είναι ασφαλές το σενάριο να αναβαθμιστεί. Η εκτέλεση μιας μη συσχετισμένης εγγραφής σε εκατό χρήστες μετράει τον χειρισμό σφαλμάτων και όχι απόδοσηΠεραιτέρω στοιχεία καλύπτονται σε όλο το JMeter tutorials.
Αντιμετώπιση προβλημάτων
Εάν αντιμετωπίσετε κάποιο πρόβλημα κατά την εκτέλεση του παραπάνω σεναρίου, κάντε τα εξής:
- Ελέγξτε εάν συνδέεστε στο διαδίκτυο μέσω διακομιστή μεσολάβησης. Εάν ναι, αφαιρέστε τον διακομιστή μεσολάβησης.
- Ανοίξτε μια νέα παρουσία του JMeter.
- Ανοίξτε το RecordingTestPlan.jmx στο JMeter.
- Κάντε δεξί κλικ στο Workbench > Merge > Select HTTP Proxy Server.jmx. Ενεργοποιημένο JMeter 5.x, συγχωνεύστε τον κόμβο Test Plan, καθώς το WorkBench δεν υπάρχει πλέον.
- Κάντε κλικ στην επιλογή Ομάδα νημάτων > Αναφορά σύνοψης.
- Εκτελέστε τη δοκιμή.
Δύο επιπλέον συμπτώματα ευθύνονται για τις περισσότερες αποτυχίες που απομένουν. Εάν το πρόγραμμα περιήγησης αναφέρει ότι δεν μπορεί να συνδεθεί, η συσκευή εγγραφής δεν ξεκίνησε ποτέ ή η θύρα που έχει οριστεί στο πρόγραμμα περιήγησης δεν ταιριάζει με τη θύρα που έχει οριστεί στο JMeterΕάν οι σελίδες φορτώνουν κανονικά αλλά δεν εμφανίζεται τίποτα στο δέντρο, η επισκεψιμότητα είναι HTTPS και το πιστοποιητικό δεν έχει εισαχθεί.



















