Δοκιμή φορτίου JMeter
Το JMeter Load Testing είναι μια διαδικασία δοκιμής που γίνεται χρησιμοποιώντας ένα εργαλείο δοκιμής φόρτωσης που ονομάζεται Apache JMeter, το οποίο είναι μια εφαρμογή ανοιχτού κώδικα για υπολογιστές που βασίζεται σε Java. Το JMeter για δοκιμή φορτίου είναι ένα κρίσιμο εργαλείο που καθορίζει εάν η υπό δοκιμή εφαρμογή ιστού μπορεί να ικανοποιήσει υψηλές απαιτήσεις φορτίου ή όχι. Βοηθά επίσης στην ανάλυση του συνολικού διακομιστή υπό βαρύ φορτίο.
Δοκιμή απόδοσης JMeter
Το JMeter Performance Testing είναι μια μέθοδος δοκιμής που εκτελείται χρησιμοποιώντας το Apache JMeter για να ελέγξετε την απόδοση μιας διαδικτυακής εφαρμογής. Το JMeter για δοκιμή απόδοσης βοηθά στη δοκιμή τόσο στατικών όσο και δυναμικών πόρων, βοηθά στην ανακάλυψη ταυτόχρονων χρηστών στον ιστότοπο και παρέχει ποικιλία γραφικών αναλύσεων για δοκιμές απόδοσης. Ο έλεγχος απόδοσης JMeter περιλαμβάνει δοκιμή φορτίου και δοκιμή πίεσης εφαρμογών ιστού.
Το εργαλείο δοκιμών Apache JMeter προσφέρει τα ακόλουθα οφέλη στο Performance Testing
- Το JMeter μπορεί να χρησιμοποιηθεί για τη δοκιμή της απόδοσης τόσο στατικών πόρων, όπως JavaScript και HTML, όσο και δυναμικών πόρων, όπως JSP, Servlets και AJAX.
- Το JMeter μπορεί να ανακαλύψει τον μέγιστο αριθμό ταυτόχρονων χρηστών που μπορεί να χειριστεί ο ιστότοπός σας
- Το JMeter παρέχει μια ποικιλία γραφικών αναλύσεων των αναφορών απόδοσης.
Ο έλεγχος απόδοσης JMeter περιλαμβάνει:
- Load Testing: Μοντελοποίηση της αναμενόμενης χρήσης με προσομοίωση πολλαπλής πρόσβασης των χρηστών στις υπηρεσίες Web ταυτόχρονα.
- Stress Testing: Κάθε διακομιστής ιστού έχει μέγιστη χωρητικότητα φόρτωσης. Όταν το φορτίο υπερβαίνει το όριο, ο διακομιστής Ιστού αρχίζει να αποκρίνεται αργά και να παράγει σφάλματα. Ο σκοπός του Stress Testing είναι να βρει το μέγιστο φορτίο που μπορεί να χειριστεί ο διακομιστής Ιστού
Το παρακάτω σχήμα δείχνει πώς το JMeter load Testing προσομοιώνει το βαρύ φορτίο:
Δημιουργήστε ένα σχέδιο δοκιμής απόδοσης στο JMeter
Σε αυτό το σεμινάριο, κάνουμε μια ανάλυση απόδοσης του Google.com για 1000 χρήστες
Πριν από τη δοκιμή της απόδοσης της εφαρμογής ιστού στόχου, πρέπει να καθορίσουμε-
- Κανονικό φορτίο : Μέσος αριθμός χρηστών που επισκέπτονται τον ιστότοπό σας
- Heavy Load : Ο μέγιστος αριθμός χρηστών που επισκέπτονται τον ιστότοπό σας
- Ποιος είναι ο στόχος σας σε αυτό το τεστ;
Εδώ είναι ο χάρτης πορείας αυτού του πρακτικού παραδείγματος
Βήμα 1) Προσθήκη ομάδας νημάτων
- Ξεκινήστε το JMeter
- Επιλέξτε Δοκιμαστικό σχέδιο στο δέντρο
- Προσθήκη ομάδας νημάτων
Κάντε δεξί κλικ στο "Πρόγραμμα δοκιμών" και προσθέστε μια νέα ομάδα νήματος: Προσθήκη -> Νήματα (Χρήστες) -> Ομάδα νήματος
Στον πίνακα ελέγχου της ομάδας νημάτων, εισαγάγετε τις ιδιότητες νημάτων ως εξής:
- Αριθμός νημάτων : 100 (Ο αριθμός χρηστών συνδέεται στον ιστότοπο προορισμού: 100)
- Αριθμός βρόχων : 10 (Αριθμός χρόνου εκτέλεσης δοκιμών)
- Περίοδος αύξησης : 100
Οι μετρήσεις νημάτων και οι μετρήσεις βρόχων είναι διαφορετικές.
Το Ramp-Up Period λέει στον JMeter πόσο καιρό πρέπει να καθυστερήσει πριν ξεκινήσει ο επόμενος χρήστης. Για παράδειγμα, εάν έχουμε 100 χρήστες και περίοδο αύξησης 100 δευτερολέπτων, η καθυστέρηση μεταξύ των αρχικών χρηστών θα είναι 1 δευτερόλεπτο (100 δευτερόλεπτα / 100 χρήστες)
Βήμα 2) Προσθήκη στοιχείων JMeter
Τώρα καθορίζουμε ποια στοιχεία JMeter σε αυτήν τη δοκιμή. Τα στοιχεία είναι
-
Προεπιλογή αιτήματος HTTP
Αυτό το στοιχείο μπορεί να προστεθεί κάνοντας δεξί κλικ στο Thread Group και επιλέγοντας: Add -> Config Element -> HTTP Request Defaults.
Στον πίνακα ελέγχου HTTP Request Defaults, εισαγάγετε το δοκιμαστικό όνομα ιστότοπου (http://www.google.com)
-
Αίτημα HTTP
Κάντε δεξί κλικ στο Thread Group και επιλέξτε: Προσθήκη -> Sampler -> HTTP Request .
Στον πίνακα ελέγχου αιτήσεων HTTP, το πεδίο Διαδρομή υποδεικνύει ποιο αίτημα διεύθυνσης URL θέλετε να στείλετε στον διακομιστή Google.
Για παράδειγμα, εάν εισαγάγετε "ημερολόγιο" στο πεδίο Path. Το JMeter θα δημιουργήσει το αίτημα διεύθυνσης URL http://www.google.com/calendar στον διακομιστή Google
Εάν διατηρήσετε κενό το πεδίο Path, το JMeter θα δημιουργήσει το αίτημα URL http://www.google.com στον διακομιστή Google.
Σε αυτήν τη δοκιμή, διατηρείτε κενό το πεδίο Path για να κάνετε το JMeter να δημιουργήσει το αίτημα URL http://www.google.com στον διακομιστή Google.
Βήμα 3) Προσθήκη αποτελέσματος γραφήματος
Το JMeter μπορεί να δείξει το αποτέλεσμα της δοκιμής σε μορφή γραφήματος.
Κάντε δεξί κλικ Test Plan, Add -> Listener -> Graph Results
Βήμα 4) Εκτελέστε το τεστ και λάβετε το αποτέλεσμα του τεστ
Πατήστε το κουμπί Εκτέλεση (Ctrl + R) στη γραμμή εργαλείων για να ξεκινήσετε τη διαδικασία δοκιμής λογισμικού. Θα δείτε την εμφάνιση του αποτελέσματος δοκιμής στο γράφημα σε πραγματικό χρόνο.
Η παρακάτω εικόνα παρουσιάζει ένα γράφημα ενός σχεδίου δοκιμών, όπου προσομοιώσαμε 100 χρήστες που έχουν πρόσβαση στον ιστότοπο www.google.com.
Στο κάτω μέρος της εικόνας, υπάρχουν τα ακόλουθα στατιστικά στοιχεία, που παρουσιάζονται σε χρώματα:
- Μαύρο: Ο συνολικός αριθμός των τρεχόντων δειγμάτων που στάλθηκαν.
- Μπλε: Ο τρέχων μέσος όρος όλων των δειγμάτων που στάλθηκαν.
- Κόκκινο: Η τρέχουσα τυπική απόκλιση.
- Πράσινο: Ποσοστό απόδοσης που αντιπροσωπεύει τον αριθμό αιτημάτων ανά λεπτό που χειρίζεται ο διακομιστής
Ας αναλύσουμε την απόδοση του διακομιστή Google στο παρακάτω σχήμα.
Για να αναλύσετε την απόδοση του υπό δοκιμή διακομιστή ιστού, θα πρέπει να εστιάσετε σε 2 παραμέτρους
- Διακίνηση
- Απόκλιση
Το Throughput είναι η πιο σημαντική παράμετρος. Αντιπροσωπεύει την ικανότητα του διακομιστή να χειρίζεται ένα βαρύ φορτίο. Όσο υψηλότερη είναι η Απόδοση, τόσο καλύτερη είναι η απόδοση του διακομιστή.
Σε αυτήν τη δοκιμή, η απόδοση του διακομιστή Google είναι 1.491.193 / λεπτό. Αυτό σημαίνει ότι ο διακομιστής Google μπορεί να χειριστεί 1.491.193 αιτήματα ανά λεπτό. Αυτή η τιμή είναι αρκετά υψηλή, ώστε να συμπεράνουμε ότι ο διακομιστής Google έχει καλή απόδοση
Η απόκλιση εμφανίζεται με κόκκινο χρώμα - δείχνει την απόκλιση από τον μέσο όρο. Όσο μικρότερο τόσο το καλύτερο .
Ας συγκρίνουμε την απόδοση του διακομιστή Google με άλλους διακομιστές ιστού. Αυτό είναι το αποτέλεσμα δοκιμής απόδοσης του ιστότοπου http://www.yahoo.com/ (Μπορείτε να επιλέξετε άλλους ιστότοπους)
Η απόδοση ενός ιστότοπου υπό δοκιμή http://www.yahoo.com είναι 867.326 / λεπτά. Αυτό σημαίνει ότι αυτός ο διακομιστής χειρίζεται 867.326 αιτήματα ανά λεπτό, χαμηλότερο από το Google.
Η απόκλιση είναι 2689, πολύ υψηλότερη από την Google (577). Έτσι μπορούμε να προσδιορίσουμε ότι η απόδοση αυτού του ιστότοπου είναι μικρότερη από έναν διακομιστή Google.
ΣΗΜΕΙΩΣΗ: Οι παραπάνω τιμές εξαρτώνται από διάφορους παράγοντες όπως το τρέχον φορτίο διακομιστή στο Google, η ταχύτητα του διαδικτύου σας, η ισχύς της CPU κ.λπ. Ως εκ τούτου, είναι πολύ απίθανο να έχετε τα ίδια αποτελέσματα με τα παραπάνω. Οπότε μην πανικοβληθείτε!
Αντιμετώπιση προβλημάτων:
Εάν αντιμετωπίζετε το πρόβλημα κατά την εκτέλεση του παραπάνω σεναρίου… κάντε τα εξής
- Ελέγξτε αν συνδέεστε στο Διαδίκτυο μέσω διακομιστή μεσολάβησης. Εάν ναι, καταργήστε τον πληρεξούσιο.
- Ανοίξτε μια νέα εμφάνιση του Jmeter
- Ανοίξτε το PerformanceTestPlan.jmx στο Jmeter
- Κάντε διπλό κλικ στο Thread Group -> Αποτέλεσμα γραφήματος
- Εκτελέστε το τεστ