Κοινή χρήση τεχνολογίας

jmeter κατανεμημένο (4)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. gui

Το gui του jmeter χρησιμοποιείται κυρίως για τον εντοπισμό σφαλμάτων σε σενάρια

1. Πρώτα δημιουργήστε το σενάριο χρησιμοποιώντας GUI

Κάντε πρώτα ένα σενάριο
Επίδειξη: Πώς να γράψετε σενάριο μια μικτή σκηνή;
Χρησιμοποιήστε αναλογία επιχειρήσεων 211

① Ξεκινήστε την υπηρεσία βάσης δεδομένων

Υπηρεσίες βάσης δεδομένων: συμπεριλαμβανομένων των mysql, redis
Η προεπιλεγμένη θύρα mysql 3306

netstat -lntp | grep 3306
  • 1

Σε κατάσταση ακρόασης, το 6379 είναι η προεπιλεγμένη θύρα του redis

netstat -lntp | grep 6379
  • 1

Θύρα υπηρεσίας έργου 18089

netstat -lntp | grep 18089
  • 1

②Πρόσβαση στο swagger εγγράφων διεπαφής

Το 211 μπορεί να μετατραπεί σε δύο υπηρεσίες προσομοίωσης ακραίων καταστάσεων

Το ένα είναι να εγγραφείτε, το άλλο είναι να εγγραφείτε και να συνδεθείτε για να προσθέσετε προϊόντα.
Και τα δύο είναι 50%

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

jmeter—προσθήκη ομάδας νήματος-προσθήκη-νήματος-χρήστη-ομάδα νημάτων

Μετατροπή δύο υπηρεσιών προσομοίωσης ακραίων καταστάσεων

④Προσθήκη ελεγκτή απόδοσης

jmeter—add-logic controller—ρυθμιστής ροής

Μετατρέψτε δύο υπηρεσίες προσομοίωσης ακραίων καταστάσεων.
Η πρώτη επιχείρηση δοκιμής ακραίων καταστάσεων περιλαμβάνει την εγγραφή, τη σύνδεση και την προσθήκη προϊόντων
Η δεύτερη επιχείρηση προσομοίωσης ακραίων καταστάσεων είναι η εγγραφή

Εισαγάγετε την περιγραφή της εικόνας εδώ

50% το καθένα
Εισαγάγετε την περιγραφή της εικόνας εδώ

⑤Προσθήκη αιτήματος δειγματοληψίας http

jmeter-add-sampler-http-request
Μετατροπή δύο υπηρεσιών προσομοίωσης ακραίων καταστάσεων
Εισαγάγετε την περιγραφή της εικόνας εδώ

Η πρώτη επιχείρηση δοκιμής ακραίων καταστάσεων περιλαμβάνει την εγγραφή, τη σύνδεση και την προσθήκη προϊόντων

Εισαγάγετε την περιγραφή της εικόνας εδώ

Εισαγάγετε την περιγραφή της εικόνας εδώ

Η δεύτερη επιχείρηση είναι η εγγραφή

Γράψτε σύμφωνα με το swagger εγγραφής, εισαγάγετε παραμέτρους
Εισαγάγετε την περιγραφή της εικόνας εδώ
Γενικά, δεν χρειάζεται να συμπληρώσετε το αναγνωριστικό κατά την εισαγωγή του.
Ούτε ο χρόνος προσθήκης χρειάζεται να συμπληρωθεί
Αντιγράψτε και επικολλήστε τα δεδομένα παραμέτρων στο jmeter
Εισαγάγετε την περιγραφή της εικόνας εδώ

διαδρομή με βάση το url
Εισαγάγετε την περιγραφή της εικόνας εδώ

Εισαγάγετε την περιγραφή της εικόνας εδώ

Εισαγάγετε την περιγραφή της εικόνας εδώ

⑥Προσθήκη διαχειριστή κεφαλίδων http,

Όλοι περνούν json
Εισαγάγετε την περιγραφή της εικόνας εδώ

Εισαγάγετε την περιγραφή της εικόνας εδώ

⑦Προσθήκη προεπιλεγμένης τιμής αιτήματος http

Συμπληρώστε την ip και τη θύρα σύμφωνα με το έγγραφο διασύνδεσης
Εισαγάγετε την περιγραφή της εικόνας εδώ
Εισαγάγετε την περιγραφή της εικόνας εδώ

⑧Προσθέστε έναν ακροατή και δείτε το δέντρο αποτελεσμάτων

Εισαγάγετε την περιγραφή της εικόνας εδώ

⑨Προσθήκη ισχυρισμού

Είναι καλύτερο να προσθέσετε ισχυρισμούς

Εισαγάγετε την περιγραφή της εικόνας εδώΕισαγάγετε την περιγραφή της εικόνας εδώ

2. Μη-gui

-nΕκτέλεση jmeter σε λειτουργία non-gui
-t εκτελεί τη θέση του αρχείου δοκιμής Καθορίζει τη δέσμη ενεργειών για την εκτέλεση του jmeter Δεν είναι στην τρέχουσα διαδρομή.
-l καθορίζει το αρχείο αποτελεσμάτων που δημιουργείται, το οποίο είναι αρχείο jtl
-e Αφού ολοκληρωθεί η δοκιμή, δημιουργήστε μια αναφορά δοκιμής
-o καθορίζει τη θέση αποθήκευσης της αναφοράς δοκιμής html
-r απομακρυσμένη εκκίνηση

1. Πρέσσα μονής μηχανής

① Αίτηση για τύπο

Εγκαταστήστε τα jdk και jmeter στο linux press
Εγκατάσταση κάτω από το usr/local
Μεταφορτώστε απευθείας το jmeter στο παράθυρο στο linux press, επειδή είναι επίσης διαθέσιμα τα πρόσθετα που εμπλέκονται στο σενάριο εντοπισμού σφαλμάτων.
Εισαγάγετε την περιγραφή της εικόνας εδώ

② Ανεβάστε το σενάριο στον τύπο

Σημείωση: Εάν το σενάριο περιλαμβάνει ένα αρχείο παραμέτρου csv, πρέπει να ανεβάσετε το αρχείο παραμέτρων csv' στον κατάλογο bin του jmeter στο Linux.
Οι αναφορές συγκέντρωσης και οι ακροατές πρέπει να απενεργοποιηθούν πριν από τη μεταφόρτωση

5 νήματα, προσθέστε ένα κάθε 30 δευτερόλεπτα, δηλαδή 150

Η διάρκεια πρέπει να είναι μεγαλύτερη από τον χρόνο Rang up των 150. Εάν λειτουργεί για άλλα 50 δευτερόλεπτα, ρυθμίστε το στο 200.
Εισαγάγετε την περιγραφή της εικόνας εδώ

Μετά την επιτυχή μεταφόρτωση του jmeter, επαληθεύστε την έκδοση του jmeter και εάν είναι διαθέσιμη.

Εισαγάγετε την περιγραφή της εικόνας εδώ

③ Αρχικοποίηση

Υπάρχουν δύο μέρη
Αρχικά, η διαδρομή για την αποθήκευση του δοκιμαστικού σεναρίου πρέπει να δημιουργήσει έναν κατάλογο για την αποθήκευση της αναφοράς html.

Εισαγάγετε την περιγραφή της εικόνας εδώ
Πριν εκτελέσετε το σενάριο, ο κατάλογος res πρέπει να είναι κενός
Δεύτερον, καθαρίστε τα δεδομένα στον πίνακα της βάσης δεδομένων χωρίς να λάβετε υπόψη τα υπάρχοντα δεδομένα.
Εισαγάγετε την περιγραφή της εικόνας εδώ

④Εκτέλεση σεναρίου

Εισαγάγετε την περιγραφή της εικόνας εδώ

⑤Προβολή αποτελεσμάτων

αποτέλεσμα
Ολοκληρώθηκαν 548 αιτήματα σε 13 δευτερόλεπτα

Εισαγάγετε την περιγραφή της εικόνας εδώ
Εισαγάγετε την περιγραφή της εικόνας εδώ

Άνοιγμα συγκεντρωτικής αναφοράς
Ο αριθμός των αποτυχημένων αιτημάτων ko

Εισαγάγετε την περιγραφή της εικόνας εδώ
χρόνος απόκρισης χρόνου
Εισαγάγετε την περιγραφή της εικόνας εδώ

tps

Εισαγάγετε την περιγραφή της εικόνας εδώ

Πώς μπορώ να προβάλω αρχεία jtl;
Το jtl μπορεί να ανοίξει σε οποιονδήποτε ακροατή, όπως προβολή δέντρου αποτελεσμάτων, συγκεντρωτική αναφορά, tps, χρόνος απόκρισης.
Εάν ανοίξει σε μια συγκεντρωτική αναφορά, κάντε κλικ στην Αναζήτηση
Εισαγάγετε την περιγραφή της εικόνας εδώ

Εισαγάγετε την περιγραφή της εικόνας εδώ
Όπως tps, χρόνος απόκρισης
Ας δούμε πρώτα τα tps
Προσθέστε tps
Κάντε κλικ για περιήγηση

Εισαγάγετε την περιγραφή της εικόνας εδώ
Εισαγάγετε την περιγραφή της εικόνας εδώ
Εισαγάγετε την περιγραφή της εικόνας εδώ

Εισαγάγετε την περιγραφή της εικόνας εδώ

Χρόνος απόκρισηςΕισαγάγετε την περιγραφή της εικόνας εδώ

Εισαγάγετε την περιγραφή της εικόνας εδώ

2. Διανεμήθηκε

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

2.1 Αρχή διανομής

Επίσημη ιστοσελίδα:https://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step.html

Ένα μηχάνημα διακομιστή χρησιμεύει ως μηχάνημα ελέγχου
Τα υπόλοιπα μηχανήματα χρησιμοποιούνται ως μηχανές φόρτωσης
Η υπηρεσία που ζητήθηκε από τον στόχο
Ο ελεγκτής ελέγχει εξ αποστάσεως την εκκίνηση και τη διακοπή της μηχανής φόρτωσης στέλνοντας σήματα και ταυτόχρονα συλλέγει δεδομένα και περίληψη της μηχανής φορτίου
Το μηχάνημα φόρτωσης ξεκινά κυρίως νήματα για πρόσβαση στον διακομιστή και στόχευση του διακομιστή υπό δοκιμή πίεσης.
Γενικά, ο εργαζόμενος ξεκινά το μηχάνημα ελέγχου jmeter-server για τον απομακρυσμένο έλεγχο του μηχανήματος φόρτωσης.

Πού τοποθετούνται τα σενάρια όταν διανέμονται;
Ένας ελεγκτής πολλαπλοί εργαζόμενοι
Όταν εκτελείτε non-gui, το σενάριο μεταδίδεται στον διακομιστή Τώρα που διανέμεται, πού πρέπει να μεταδοθεί το σενάριο;
Το σενάριο θα μεταδοθεί στον ελεγκτή κατά την εκτέλεση, το σενάριο θα αποσταλεί σε κάθε μηχανή φόρτωσης, δηλαδή, αφού το φορτίο λάβει το σενάριο, μετά την εκτέλεση, τα δεδομένα θα περάσουν στο μηχάνημα ελέγχου για περίληψη.

2.2 Προφυλάξεις για τη δοκιμή κατανεμημένης πίεσης

(https://img-blog.csdnimg.cn/e3de7b8b65a1447db3bc3618876f62d3.png)
Το τείχος προστασίας πρέπει να κλείσει. Εάν το τείχος προστασίας δεν είναι κλειστό, η θύρα πρέπει να ανοίξει.
Όλοι οι πελάτες πρέπει να βρίσκονται στο ίδιο υποδίκτυο.
Βεβαιωθείτε ότι το jmeter μπορεί να έχει πρόσβαση στον διακομιστή
Βεβαιωθείτε ότι οι εκδόσεις jmeter και java είναι ίδιες
απενεργοποιήστε το ssl

2.3 Προετοιμασία περιβάλλοντος

Απαιτεί 3 εικονικές μηχανές
Χρησιμοποιήστε το 181 ως ελεγκτή (μηχάνημα ελέγχου)
Χρησιμοποιήστε 182.183 ως Worker (μηχάνημα φόρτωσης)
Ταυτόχρονα, αυτές οι τρεις εικονικές μηχανές πρέπει να εγκαταστήσουν jdk και jmeter.
Εισαγάγετε την περιγραφή της εικόνας εδώ
Εισαγάγετε την περιγραφή της εικόνας εδώ
Εισαγάγετε την περιγραφή της εικόνας εδώ
Εισαγάγετε την περιγραφή της εικόνας εδώ
Δείτε την έκδοση jdk
Εισαγάγετε την περιγραφή της εικόνας εδώ
Εγκαταστήστε το jmeter σε τρεις εικονικές μηχανές
Το jmeter της τοπικής μηχανής μεταφέρεται στον κατάλογο usr/τοπικό της εικονικής μηχανής.
Ελέγξτε την έκδοση jmeter μετά τη μεταφόρτωση
Εισαγάγετε την περιγραφή της εικόνας εδώ

2.4 Κατανεμημένη διαμόρφωση

①Εργαζόμενος

182、182
Δημιουργήστε αντίγραφα ασφαλείας του αρχείου διαμόρφωσης jmeter.properties πρώτα
Εισαγάγετε την περιγραφή της εικόνας εδώ

server_port μπορεί να τροποποιηθεί ή να μην τροποποιηθεί Η προεπιλεγμένη τιμή είναι 1099.
Εισαγάγετε την περιγραφή της εικόνας εδώ

απενεργοποιήστε το ssl
server.rmi.ssl.disable=false, αλλαγή false σε true
Εισαγάγετε την περιγραφή της εικόνας εδώ

Ξεκινήστε jemter
./jmeter-server
Εισαγάγετε την περιγραφή της εικόνας εδώ
Ελέγξτε τη θύρα 182 για να δείτε εάν είναι σε κατάσταση ακρόασης

Εισαγάγετε την περιγραφή της εικόνας εδώ

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

②Ελεγκτής

Πριν διαμορφώσετε το μηχάνημα ελέγχου, πραγματοποιήστε εντοπισμό σφαλμάτων στο jmeter στο παράθυρο.
win: για διόρθωση σφαλμάτων
Δημιουργήστε αντίγραφα ασφαλείας του αρχείου διαμόρφωσης jmeter.properties πρώτα
Εισαγάγετε την περιγραφή της εικόνας εδώ
Από προεπιλογή, αυτό το μηχάνημα χρησιμοποιείται ως μηχάνημα φόρτωσης.
Το τρέχον μηχάνημα φόρτωσης είναι ένα μηχάνημα απομακρυσμένης φόρτωσης, αλλάξτε το remote_hosts=127.0.0.1 σε remote_hosts=192.168.117.182:1099
Η IP και η θύρα του μηχανήματος απομακρυσμένης φόρτωσης πρέπει να γραφτούν εδώ, εάν πολλά είναι πολλά, διαχωρίστε τα με κόμματα.
Εισαγάγετε την περιγραφή της εικόνας εδώ
Εισαγάγετε την περιγραφή της εικόνας εδώ
απενεργοποιήστε το ssl
Αλλαγή server.rmi.ssl.disable=false σε server.rmi.ssl.disable=true
Εισαγάγετε την περιγραφή της εικόνας εδώ

Πρώτα διορθώστε το μέσω αυτού του μηχανήματος
Επανεκκινήστε το jmeter και διαβάστε ξανά το αρχείο ρυθμίσεων
Εισαγάγετε την περιγραφή της εικόνας εδώ
Μετά την αποσφαλμάτωση στο παράθυρο, μεταβείτε στο Linux για διαμόρφωση.

Ρύθμιση παραμέτρων στο 181
Δημιουργήστε αντίγραφα ασφαλείας του αρχείου διαμόρφωσης jmeter.properties πρώτα

Εισαγάγετε την περιγραφή της εικόνας εδώ

Η τρέχουσα μηχανή φόρτωσης είναι μια μηχανή απομακρυσμένης φόρτωσης, η οποία θαremote_hosts=127.0.0.1Αλλάζω σεremote_hosts=192.168.117.182:1099
Η IP και η θύρα του μηχανήματος απομακρυσμένης φόρτωσης πρέπει να γραφτούν εδώ, εάν πολλά είναι πολλά, διαχωρίστε τα με κόμματα.

Εισαγάγετε την περιγραφή της εικόνας εδώ

Εισαγάγετε την περιγραφή της εικόνας εδώ

server.rmi.ssl.disable=false
Θαserver.rmi.ssl.disable=falseΑλλάζω σεserver.rmi.ssl.disable=true
Εισαγάγετε την περιγραφή της εικόνας εδώ
Όταν το σενάριο μεταδίδεται στο μηχάνημα ελέγχου, το σενάριο θα διανεμηθεί αυτόματα σε κάθε μηχανή φόρτωσης.
Ξεχωριστή δοκιμαστική σύνδεση με ένα σενάριο
Εισαγάγετε την περιγραφή της εικόνας εδώ
Αφού ανεβάσετε το σενάριο, εκτελέστε το σενάριο
Εκτέλεση μέσω απομακρυσμένης φόρτωσης

/usr/local/apache-jmeter-5.1.1/bin/jmeter -n -r -t test.jmx
  • 1

Εισαγάγετε την περιγραφή της εικόνας εδώ

Κάθε μηχάνημα φορτίου εργασίας (πρέσσα) έχει 5 νήματα και το συνολικό μηχάνημα ελέγχου έχει 10 νήματα.
Εισαγάγετε την περιγραφή της εικόνας εδώ

Περιβαλλοντική προετοιμασία
Δύο εικονικές μηχανές. Υπάρχει ένας κύριος και δύο σκλάβοι Το μηχάνημα των Windows χρησιμεύει ως ένα κύριο και το slave χρησιμοποιεί μια εικονική μηχανή.
原理:https://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step.html

Προβλήματα που προκύπτουν:
java.rmi.RemoteException: Δεν είναι δυνατή η εκκίνηση. Το localhost.localdomain είναι μια διεύθυνση επαναφοράς

Δημιουργήθηκε απομακρυσμένο αντικείμενο: UnicastServerRef2 [liveRef: [endpoint:127.0.0.1:43474,objID:[-5a8dd143:17e2852fe88:-7fff, 3673082414768940798]]]
Ο διακομιστής απέτυχε να ξεκινήσει: java.rmi.RemoteException: Δεν είναι δυνατή η εκκίνηση. Το localhost.localdomain είναι μια διεύθυνση επαναφοράς.
Παρουσιάστηκε σφάλμα: Δεν είναι δυνατή η εκκίνηση. Το localhost.localdomain είναι μια διεύθυνση επαναφοράς.
Εισαγάγετε την περιγραφή της εικόνας εδώ
Πληροφορίες εξαίρεσης: Εξαίρεση εκκίνησης διακομιστή: Εξαίρεση κλήσεων απομακρυσμένης μεθόδου Java: Δεν είναι δυνατή η εκκίνηση της υπηρεσίας. Το localhost.localdomain είναι μια τοπική διεύθυνση loopback

Το όνομα κεντρικού υπολογιστή που λαμβάνεται μέσω της εντολής hostname είναι localhost.
Ελέγξτε τη διαμόρφωση των κεντρικών υπολογιστών μέσω της εντολής cat /etc/host localhost.localdomain localhost4... δείχνει 127.0.0.1.
Εισαγάγετε την περιγραφή της εικόνας εδώ
Λύση:
Καθορίστε τη διεύθυνση IP του κεντρικού υπολογιστή απομακρυσμένου διακομιστή (rmi.server.hostname)
Ξεκινήστε καθορίζοντας την εντολή τερματικού
./jmeter-server -Djava.rmi.server.hostname=192.168.2.2
Εισαγάγετε την περιγραφή της εικόνας εδώΕισαγάγετε την περιγραφή της εικόνας εδώ