Jmeter Timers: Constant, Gaussian Random, Uniform (Παράδειγμα)

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

Anonim

Τι είναι οι χρονοδιακόπτες;

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

Ας υποθέσουμε ότι στέλνετε χιλιάδες αίτημα σε έναν διακομιστή ιστού που βρίσκεται υπό δοκιμή σε λίγα δευτερόλεπτα. Αυτό συμβαίνει!

Τα χρονόμετρα επιτρέπουν στο JMeter να καθυστερεί μεταξύ κάθε αιτήματος που κάνει ένα νήμα. Ένας χρονοδιακόπτης μπορεί να λύσει το πρόβλημα υπερφόρτωσης του διακομιστή .

Επίσης, στην πραγματική ζωή οι επισκέπτες δεν φτάνουν ταυτόχρονα σε έναν ιστότοπο, αλλά σε διαφορετικά χρονικά διαστήματα. Έτσι ο χρονοδιακόπτης θα βοηθήσει να μιμηθεί τη συμπεριφορά σε πραγματικό χρόνο.

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

  • Σταθερός χρονοδιακόπτης
  • Τυχαίο χρονόμετρο Gauss
  • Ομοιόμορφος τυχαίος χρονοδιακόπτης
  • Χρονόμετρο BeanShell
  • Χρονοδιακόπτης BSF
  • Χρονόμετρο JSR223
  • Τρόπος χρήσης σταθερού χρονοδιακόπτη

Ακολουθούν ορισμένοι κοινοί τύποι χρονοδιακόπτη στο JMeter

Σταθερός χρονοδιακόπτης:

Ο σταθερός χρονοδιακόπτης καθυστερεί κάθε αίτημα χρήστη για το ίδιο χρονικό διάστημα.

Τυχαίο χρονόμετρο Gauss:

Το τυχαίο χρονόμετρο Gauss καθυστερεί κάθε αίτημα χρήστη για τυχαίο χρονικό διάστημα.

Παράμετροι:

Χαρακτηριστικό Περιγραφή
Ονομα Περιγραφικό όνομα για αυτό το χρονόμετρο που εμφανίζεται στο δέντρο
Απόκλιση (χιλιοστά του δευτερολέπτου) Μια παράμετρος της συνάρτησης διανομής Gaussian
Μετατόπιση σταθερής καθυστέρησης (χιλιοστά του δευτερολέπτου) Πρόσθετη τιμή σε χιλιοστά του δευτερολέπτου

Έτσι, η συνολική καθυστέρηση περιγράφεται ως παρακάτω σχήμα:

Ομοιόμορφος τυχαίος χρονοδιακόπτης:

Ο ομοιόμορφος τυχαίος χρονοδιακόπτης καθυστερεί κάθε αίτημα χρήστη για τυχαίο χρονικό διάστημα.

Παράμετροι:

Χαρακτηριστικό

Περιγραφή

Ονομα

Περιγραφικό όνομα για αυτό το χρονόμετρο που εμφανίζεται στο δέντρο

Μέγιστη τυχαία καθυστέρηση

Μέγιστος τυχαίος αριθμός χιλιοστών του δευτερολέπτου για καθυστέρηση.

Μετατόπιση σταθερής καθυστέρησης (χιλιοστά του δευτερολέπτου)

Πρόσθετη τιμή σε χιλιοστά του δευτερολέπτου

Η συνολική καθυστέρηση είναι το άθροισμα της τυχαίας τιμής και της τιμής μετατόπισης.

Χρονόμετρο BeanShell

Το BeanShell Timer μπορεί να χρησιμοποιηθεί για τη δημιουργία χρόνου καθυστέρησης μεταξύ κάθε αιτήματος χρήστη.

Χρονοδιακόπτης BSF

Ο χρονοδιακόπτης BSF μπορεί να χρησιμοποιηθεί για τη δημιουργία καθυστέρησης μεταξύ κάθε αιτήματος χρήστη χρησιμοποιώντας μια γλώσσα δέσμης ενεργειών BSF.

Χρονόμετρο JSR223

Το χρονόμετρο JSR223 μπορεί να χρησιμοποιηθεί για τη δημιουργία καθυστέρησης μεταξύ κάθε αιτήματος χρήστη χρησιμοποιώντας μια γλώσσα δέσμης ενεργειών JSR223

Τρόπος χρήσης σταθερού χρονοδιακόπτη

Σε αυτό το παράδειγμα, θα χρησιμοποιήσετε το Constant Timer για να ορίσετε μια σταθερή καθυστέρηση μεταξύ των αιτημάτων των χρηστών στο google.com.

Ας ξεκινήσουμε με ένα απλό σενάριο δοκιμής

  1. Το JMeter δημιουργεί ένα αίτημα χρήστη στη διεύθυνση http://www.google.com 100 φορές
  2. Η καθυστέρηση μεταξύ κάθε αιτήματος χρήστη είναι 5000 ms

Εδώ είναι ο χάρτης πορείας για αυτό το πρακτικό παράδειγμα:

Προϋπόθεση:

Χρησιμοποιούμε ξανά το Βήμα 1 και το Βήμα 2 στο τεστ JMeter Performance Testing.

Βήμα 1) Προσθήκη ομάδας νημάτων

Κάντε δεξί κλικ στο Σχέδιο δοκιμής και προσθέστε μια νέα ομάδα νήματος: Προσθήκη -> Νήματα (Χρήστες) -> Ομάδα νήματος

Στον πίνακα ελέγχου Thread Group, εισαγάγετε τις ιδιότητες νημάτων ως εξής

Αυτή η ρύθμιση επιτρέπει στο JMeter να δημιουργήσει ένα αίτημα χρήστη στη διεύθυνση http://www.google.com 100 φορές

Βήμα 2) Προσθέστε στοιχεία JMeter

  • Προσθήκη προεπιλογής αιτήματος HTTP
  • Προσθήκη αιτήματος HTTP

Βήμα 3) Προσθήκη σταθερού χρονοδιακόπτη

Κάντε δεξί κλικ στην Ομάδα νήματος -> Χρονοδιακόπτης -> Σταθερός χρονοδιακόπτης

Διαμόρφωση καθυστέρησης νημάτων 5000 χιλιοστών του δευτερολέπτου

Βήμα 4) Προσθήκη αποτελεσμάτων προβολής στον πίνακα

Η προβολή αποτελεσμάτων στον πίνακα εμφανίζει το αποτέλεσμα της δοκιμής σε μορφή πίνακα.

Κάντε δεξί κλικ στο Add -> Listener -> Προβολή αποτελεσμάτων στον πίνακα

Προβολή αποτελεσμάτων σε πίνακες όπως φαίνεται παρακάτω

Βήμα 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 (Όπως φαίνεται στην παραπάνω εικόνα)

Η καθυστέρηση κάθε δείγματος είναι 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 (Εμφανίζεται στην παραπάνω εικόνα)

Αντιμετώπιση προβλημάτων:

Εάν αντιμετωπίζετε το πρόβλημα κατά την εκτέλεση του παραπάνω σεναρίου… κάντε τα εξής

  1. Ελέγξτε αν συνδέεστε στο Διαδίκτυο μέσω διακομιστή μεσολάβησης. Εάν ναι, καταργήστε τον πληρεξούσιο.
  2. Ανοίξτε μια νέα παρουσία του JMeter
  3. Ανοίξτε το TimerTestPlan.jmx στο Jmeter
  4. Κάντε διπλό κλικ στο Thread Group -> Προβολή αποτελεσμάτων στον πίνακα
  5. Εκτελέστε το τεστ