Ουρές και JMeter: κοινή χρήση με Publisher και Subscriber
Γεια σου, Χαμπρ! Αυτή είναι η συνέχεια της δικής μου προηγούμενη δημοσίευση, στο οποίο θα μιλήσω για επιλογές για την τοποθέτηση μηνυμάτων σε ουρές χρησιμοποιώντας το JMeter.
Κατασκευάζουμε ένα δίαυλο δεδομένων για μια μεγάλη ομοσπονδιακή εταιρεία. Διάφορες μορφές αιτημάτων, μετασχηματισμοί, περίπλοκη δρομολόγηση. Για δοκιμή, πρέπει να στείλετε πολλά μηνύματα στην ουρά. Το χειροκίνητο είναι ένας πόνος που δεν μπορεί να χειριστεί κάθε χειροπράκτης.
Εισαγωγή
Αν και έπρεπε στην αρχή να αντέξω αυτόν τον πόνο. Όλα ξεκίνησαν με το RFHUtil. Ισχυρό, αλλά δύστροπο και τρομακτικό: Λοιπόν, ξέρεις τον Rus.
Απαραίτητο σε ορισμένες περιπτώσεις, αλλά μειώνεται σταθερά σε περίπτωση ενεργητικής χρήσης.
Η βολική δοκιμή είναι αδύνατη με αυτό.
Με το JMeter όλα έχουν γίνει πιο εύκολα. Μετά το πρώτο στάδιο του mastering και της εξοικείωσης, άρχισε να ξημερώνει η ελπίδα για χαρούμενες δοκιμές.
Χρησιμοποιώ ενεργά τους δειγματολήπτες JMS Publisher και JMS Subscriber. Σε αντίθεση με το JMS Point-to-Point, αυτό το ζεύγος φαινόταν πιο βολικό στη χρήση. Για παράδειγμα, με το Subscriber στο JMS Selector μπορείτε να καθορίσετε μια μεταβλητή, αλλά με το Point-to-Point δεν μπορείτε (ή αυτή η μέθοδος δεν είναι πολύ προφανής).
Προετοιμασία δειγματοληπτών
Εκδότης JMS
Ρύθμιση - Κάθε δείγμα. Απάχης συνιστά χρησιμοποιήστε αυτήν την επιλογή εάν οι ουρές/θέματα καθορίζονται μέσω μεταβλητών.
Λήξη (ms) = 120000. Σε περίπτωση αποτυχίας, τα αιτήματα δοκιμής θα εξαφανιστούν από την ουρά μετά από 2 λεπτά.
Χρήση μη μόνιμης λειτουργίας παράδοσης; - αλήθεια. IBM αξιώσειςΑυτή η επίμονη λειτουργία εξασφαλίζει αξιόπιστη διατήρηση των μεταδιδόμενων μηνυμάτων σε περίπτωση ξαφνικής αποτυχίας. Και ταχύτερη ανταλλαγή σε μη επίμονη λειτουργία. Για λόγους δοκιμής, η ταχύτητα είναι πιο σημαντική.
Σε κάθε Publisher ορίζω μια ιδιότητα jms που θα χρησιμοποιεί ο Συνδρομητής στον Επιλογέα JMS. Για κάθε υποβολή, δημιουργείται μια τυχαία τιμή στο στοιχείο του σχεδίου δοκιμής παραμέτρων χρήστη:
Με αυτόν τον τρόπο μπορείτε να είστε βέβαιοι ότι έχει διαβαστεί το σωστό μήνυμα.
Το τελικό "κενό" ενός προδιαμορφωμένου JMS Publisher:
Συνδρομητής JMS
Ρύθμιση - Κάθε δείγμα. Λοιπόν, καταλαβαίνεις.
Λήξη χρονικού ορίου (ms) = 100000. Εάν το αίτημα δεν φτάσει στην ουρά μετά από 100 δευτερόλεπτα αναμονής, τότε κάτι πήγε στραβά.
Διακοπή μεταξύ δειγμάτων; - αλήθεια.
Επιλογέας JMS - αρκετά βολικός πράγμα. Τελικός συνδρομητής JMS:
Πώς να αντιμετωπίσετε το κυριλλικό αλφάβητο στα μεταδιδόμενα μηνύματα. Στο JMeter, από προεπιλογή, μετά τη διόρθωση, εμφανίζεται στραβά. Για να το αποφύγετε αυτό και να απολαμβάνετε τα μεγάλα και δυνατά πάντα και παντού, πρέπει:
Προσθέστε ένα όρισμα JVM στον "εκκινητήρα" του JMeter:
-Dfile.encoding=UTF-8
Προσθήκη JSR223 PostProcessor σε συνδρομητή με γραμμή groovy:
prev.setDataEncoding("UTF-8")
Στείλε μήνυμα
Η πιο νωχελική επιλογή. Κατάλληλο για εντοπισμό σφαλμάτων πρόσφατα γραπτών δοκιμών. Ή για περιπτώσεις που πρέπει να στείλετε τουλάχιστον κάτι μικρό. Επιλέξτε επιλογή Πηγή μηνύματος - Textarea και τοποθετήστε το σώμα του μηνύματος σε ένα μπλοκ κειμένου:
Μεταφορά αρχείων
Η πιο συνηθισμένη επιλογή. Κατάλληλο για τα περισσότερα σενάρια. Επιλέξτε επιλογή Πηγή μηνύματος - Από αρχείο και υποδείξτε τη διαδρομή προς το μήνυμα στο πεδίο Αρχείο - Όνομα αρχείου:
Μεταφορά αρχείου σε πεδίο κειμένου
Η πιο ευέλικτη επιλογή. Κατάλληλο για τα περισσότερα σενάρια + μπορεί να χρησιμοποιηθεί στο JMS Point-to-Point όπου δεν υπάρχει δεύτερη επιλογή αποστολής:
Διαβίβαση πίνακα byte
Η πιο δύσκολη επιλογή. Κατάλληλο για τον έλεγχο της αλάνθαστα ακριβής μετάδοσης των αιτημάτων μέχρι το byte, χωρίς παραμόρφωση, SMS και διαταραχές. Δεν θα μπορείτε να το κάνετε αυτό στο προεπιλεγμένο JMeter. εδώ Μου είπαν σίγουρα για αυτό.
Έπρεπε λοιπόν να κατεβάσω πηγές και τροποποιήστε κώδικας Συνδρομητής JMS.
Αντικαταστάθηκε στη μέθοδο extractContent(..) γραμμή:
buffer.append(bytesMessage.getBodyLength() + " bytes received in BytesMessage");
Το μόνο που μένει είναι να προσθέσουμε μερικά JSR223 Samplers. Η πρώτη είναι πριν από το ζεύγος Publisher/Subscriber να δημιουργήσετε ένα αρχείο DAT που περιέχει τυχαία byte:
Περιέγραψα τέσσερις τρόπους αποστολής μηνυμάτων σε ουρές, τους οποίους χρησιμοποιώ καθημερινά στην πράξη. Ελπίζω αυτές οι πληροφορίες να κάνουν τη ζωή σας πιο εύκολη. Στη συνέχεια, σκοπεύω να μιλήσω για την εμπειρία μου από τη δοκιμή μιας ανταλλαγής όπου υπάρχει μια ουρά στη μια άκρη και μια βάση δεδομένων ή σύστημα αρχείων στην άλλη.
Εξοικονομήστε χρόνο. Και ευχαριστώ για την προσοχή σας.