Χρονοδιακόπτες Jmeter: Constant, Gaussian Random, Uniform [Παράδειγμα]
Τι είναι τα χρονόμετρα;
Από προεπιλογή, JMeter στέλνει το αίτημα χωρίς παύση μεταξύ κάθε αιτήματος. Σε αυτή την περίπτωση, JMeter θα μπορούσε να συντρίψει ο δοκιμαστικός διακομιστής σας κάνοντας πάρα πολλά αιτήματα σε σύντομο χρονικό διάστημα.
Φανταστείτε ότι στέλνετε χιλιάδες αίτημα σε διακομιστή web υπό δοκιμή σε λίγα δευτερόλεπτα. Αυτό συμβαίνει!
Τα χρονόμετρα επιτρέπουν JMeter προς την delay μεταξύ κάθε αιτήματος που κάνει ένα νήμα. Ένα χρονόμετρο μπορεί να λύσει τον διακομιστή υπερφόρτωση πρόβλημα.
Έτσι, Στην πραγματική ζωή οι επισκέπτες δεν φτάνουν σε έναν ιστότοπο ταυτόχρονα, αλλά σε διαφορετικά χρονικά διαστήματα. Έτσι, το Timer θα βοηθήσει στη μίμηση της συμπεριφοράς σε πραγματικό χρόνο.
Ακολουθούν μερικά κοινός τύποι χρονοδιακόπτη σε JMeter
Σταθερός χρονοδιακόπτης
Ο σταθερός χρονοδιακόπτης καθυστερεί κάθε αίτημα χρήστη για το ίδιο χρονικό διάστημα.
Gaussian Random Timer
Gaussian Το τυχαίο χρονόμετρο καθυστερεί κάθε αίτημα χρήστη για α τυχαίος χρονικό διάστημα.
Παράμετροι
Χαρακτηριστικό | Τεχνικές Περιγραφές |
---|---|
Όνομα | Descriptive όνομα για αυτό το χρονόμετρο που εμφανίζεται στο δέντρο |
Αποκλίσεις (χιλιοστά του δευτερολέπτου) | A παράμετρος της συνάρτησης Gaussian Distribution |
Μετατόπιση σταθερής καθυστέρησης (χιλιοστά του δευτερολέπτου) | Πρόσθετος τιμή σε χιλιοστά του δευτερολέπτου |
Άρα η συνολική καθυστέρηση περιγράφεται ως το παρακάτω σχήμα:
Uniform Random Timer
Το Uniform random timer καθυστερεί κάθε αίτημα χρήστη για ένα τυχαίο χρονικό διάστημα.
Παράμετροι
Χαρακτηριστικό | Τεχνικές Περιγραφές |
---|---|
Όνομα | Descriptive όνομα για αυτό το χρονόμετρο που εμφανίζεται στο δέντρο |
Τυχαία Μέγιστη καθυστέρηση | Μέγιστος τυχαίος αριθμός χιλιοστών του δευτερολέπτου για καθυστέρηση. |
Μετατόπιση σταθερής καθυστέρησης (χιλιοστά του δευτερολέπτου) | Πρόσθετος τιμή σε χιλιοστά του δευτερολέπτου |
Η συνολική καθυστέρηση είναι το άθροισμα της τυχαίας τιμής και της τιμής μετατόπισης.
BeanShell Timer
The BeanShell Μπορεί να χρησιμοποιηθεί χρονοδιακόπτης παράγουν ένα χρόνο καθυστέρησης μεταξύ κάθε αιτήματος χρήστη.
Χρονοδιακόπτης BSF
Ο χρονοδιακόπτης BSF μπορεί να χρησιμοποιηθεί για τη δημιουργία καθυστέρησης μεταξύ κάθε αιτήματος χρήστη χρησιμοποιώντας α BSF γλώσσα σεναρίου.
Χρονοδιακόπτης JSR223
Το χρονόμετρο JSR223 μπορεί να χρησιμοποιηθεί για τη δημιουργία καθυστέρησης μεταξύ κάθε αιτήματος χρήστη χρησιμοποιώντας α JSR223 γλώσσα δέσμης ενεργειών
Πώς να χρησιμοποιήσετε το Constant Timer
Σε αυτό το παράδειγμα, θα χρησιμοποιήσετε Σταθερός χρονοδιακόπτης για να ρυθμίσετε σταθερή καθυστέρηση μεταξύ των αιτημάτων των χρηστών στο google.com.
Ας ξεκινήσουμε με ένα απλό σενάριο δοκιμής
- JMeter δημιουργεί ένας αίτημα χρήστη προς http://www.google.com 100 φορές
- Καθυστέρηση μεταξύ κάθε αιτήματος χρήστη είναι 5000 ms
Εδώ είναι η οδικός χάρτης για αυτό το πρακτικό παράδειγμα:
Προϋπόθεση
We επαναχρησιμοποίηση το Βήμα 1 και Βήμα 2 στο σεμινάριο JMeter Δοκιμές Απόδοσης.
Βήμα 1) Προσθήκη ομάδας νημάτων
Κάντε δεξί κλικ στο Σχέδιο δοκιμής και προσθέστε μια νέα ομάδα νημάτων: Πρόσθεση-> Νήματα (Χρήστες) ->Ομάδα νημάτων
Στον πίνακα ελέγχου Ομάδας νημάτων, εισαγάγετε τις Ιδιότητες νήματος ως εξής
Αυτή η ρύθμιση επιτρέπει JMeter δημιουργία ένας αίτημα χρήστη προς http://www.google.com in 100 φορές
Βήμα 2) Προσθέστε JMeter στοιχεία
- Προσθήκη προεπιλεγμένου αιτήματος HTTP
- Προσθήκη αιτήματος HTTP
Βήμα 3) Προσθήκη Constant Timer
Κάντε δεξί κλικ Ομάδα νημάτων -> χρονόμετρο -> Σταθερός χρονοδιακόπτης
Διαμόρφωση καθυστέρησης νήματος 5000 χιλιοστών του δευτερολέπτου
Βήμα 4) Προσθήκη Προβολής Αποτελεσμάτων στον Πίνακα
Προβολή αποτελεσμάτων στον πίνακα εμφανίζει το αποτέλεσμα της δοκιμής σε μορφή πίνακα.
Κάντε δεξί κλικ Πρόσθεση -> Ακροατής ->Προβολή αποτελεσμάτων στον πίνακα
Προβολή Αποτελεσμάτων στον Πίνακα εμφανίζεται όπως στην παρακάτω εικόνα
Βήμα 5) Εκτελέστε τη δοκιμή σας
Όταν είστε έτοιμοι να εκτελέσετε μια δοκιμή, κάντε κλικ το τρέξιμο κουμπί στη γραμμή μενού ή το πλήκτρο συντόμευσης Ctrl + R
Αυτό είναι το αποτέλεσμα αυτής της δοκιμής
Για παράδειγμα, στο παραπάνω σχήμα, ας αναλύσουμε το Δείγμα 2
- Ώρα έναρξης είναι 22:05:01.866
- Δείγμα Ώρα του Δείγματος 2 είναι 172 ms
- Σταθερός χρονοδιακόπτης: 5000 ms (όπως έχει διαμορφωθεί)
- Ώρα λήξης αυτού του δείγματος είναι = 22:05:01.866 + 172 + 5000 = 22:05:07.038
Έτσι το δείγμα 3 θα πρέπει να ξεκινήσει τη στιγμή που είναι 22:05:07.039 (Όπως φαίνεται στο παραπάνω σχήμα)
The delay κάθε δείγματος είναι 5000 ms
Εάν αλλάξετε το Constant Timer είναι μηδέν, θα δείτε ότι το αποτέλεσμα έχει αλλάξει
Ας αναλύσουμε το Δείγμα 1
- Ώρα έναρξης είναι 22:17:39.141
- Δείγμα Ώρα του Δείγματος 2 είναι 370 ms
- Σταθερός χρονοδιακόπτης : 0 ms (όπως έχει διαμορφωθεί)
- Ώρα λήξης αυτού του δείγματος είναι = 22:17:39.141+ 370 + 0 = 22:17:39.511
Ετσι το Δείγμα 2 πρέπει να ξεκινήσει τη στιγμή που είναι 22:17:39.512 (Φαίνεται στο παραπάνω σχήμα)
Αντιμετώπιση προβλημάτων
Εάν αντιμετωπίσετε το πρόβλημα κατά την εκτέλεση του παραπάνω σεναρίου… κάντε τα εξής
- Ελέγξτε εάν συνδέεστε στο διαδίκτυο μέσω διακομιστή μεσολάβησης. Εάν ναι, αφαιρέστε τον διακομιστή μεσολάβησης.
- Ανοίξτε μια νέα παρουσία του JMeter
- Ανοίξτε το TimerTestPlan.jmx σε Jmeter
- Double Κάντε κλικ στην Ομάδα νημάτων -> Προβολή αποτελεσμάτων στον πίνακα
- Εκτελέστε το Test