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

Εφαρμογή εργαλείου: Χρησιμοποιήστε το JMeter για να εφαρμόσετε τη δοκιμή απόδοσης Phpwind!

2024-07-12

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

Εισαγωγή πειράματος

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

Σκοπός

(1) Κατακτήστε τη χρήση της αναζήτησης συσχέτισης στο JMeter.

(2) Κατακτήστε τον σχεδιασμό και τη χρήση νημάτων στο JMeter.

(3) Κατακτήστε τη χρήση των αναφορών δοκιμών στο JMeter.

πειραματική διαδικασία

  1. Εφαρμόστε το δειγματολήπτη σύνδεσης του Phpwind

Έχουμε δημιουργήσει συνολικά 100 χρήστες για το Phpwind από το testuser_1 έως το testuser_100, επομένως κατά τη διαδικασία δοκιμής απόδοσης, θα πρέπει να εφαρμόσουμε τυχαία σύνδεση χρηστών, ώστε να προσομοιώνουμε καλύτερα πραγματικά σενάρια.

(1) Δημιουργήστε ένα δειγματολήπτη "Αίτημα HTTP", ονομάστε το "DoLogin" και συμπληρώστε τις αντίστοιχες παραμέτρους αιτήματος σύνδεσης POST.

(2) Δημιουργήστε μια "διαβεβαίωση απόκρισης" και "δέντρο προβολής αποτελεσμάτων" για τον δειγματολήπτη, και το ίδιο ισχύει για τα επόμενα αιτήματα.

(3) Δημιουργήστε έναν "προεπεξεργαστή" για τον δειγματολήπτη και εφαρμόστε έναν τυχαίο αριθμό από το 1 έως το 100.

(4) Το τελικό αίτημα δοκιμής που εφαρμόστηκε έχει ως εξής:

2. Χρησιμοποιήστε κανονικές εκφράσεις για να συσχετίσετε κωδικούς επαλήθευσης

Εφόσον όταν δημοσιεύετε στο Phpwind, πρέπει να καθορίσετε ένα πεδίο "επαλήθευση", το οποίο τιμή είναι τυχαίος αριθμός, πρέπει να χρησιμοποιήσουμε κανονικές εκφράσεις για να συσχετίσουμε την αντίστοιχη τιμή στην απάντηση. Αυτό το μέρος έχει κατακτηθεί στη διαδικασία υλοποίησης της δοκιμής διεπαφής Εδώ εξετάζουμε κυρίως πώς να το εφαρμόσουμε στο JMeter:

(1) Προσθέστε ένα δειγματολήπτη "Αίτημα HTTP" και στείλτε ένα αίτημα GET στο "/phpwind/post.php?fid=2" για να λάβετε την απάντηση.

(2) Προσθέστε έναν μετα-επεξεργαστή στο δειγματολήπτη, ορίστε τον σε "Regular Expression Extractor" και κάντε τις ακόλουθες ρυθμίσεις:

(3) Μια σύντομη επεξήγηση των παραπάνω πεδίων εισαγωγής:

α) Όνομα αναφοράς: Το όνομα της παραμέτρου προς αναφορά στο επόμενο αίτημα Εάν συμπληρώσετε τον κωδικό επιβεβαίωσης, μπορείτε να χρησιμοποιήσετε το ${verifycode} για να το αναφέρετε.

β) Κανονική έκφραση: Οι παρενθέσεις περιέχουν το προς εξαγωγή περιεχόμενο, το οποίο είμαστε ειδικευμένοι στην εφαρμογή.

γ) Πρότυπο: αναφέρεται με $-$ Εάν η κανονική έκφραση που ορίσαμε βρίσκει πολλαπλές τιμές, ο αριθμός ακολουθίας υποδεικνύει ποια τιμή να επεξεργαστεί.

δ) Αριθμοί που ταιριάζουν: Το 0 αντιπροσωπεύει μια τυχαία τιμή, το 1 αντιπροσωπεύει όλες τις τιμές, συνήθως απλώς συμπληρώστε το 0.

ε) Προεπιλεγμένη τιμή: Εάν η παράμετρος δεν λάβει μια τιμή, τότε δίνεται μια προεπιλεγμένη τιμή για να λάβει.

3. Προσθέστε ένα αίτημα ανάρτησης

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

(2) Χρησιμοποιήστε τον κωδικό επαλήθευσης που λήφθηκε στο προηγούμενο βήμα ως τιμή του πεδίου επαλήθευσης στο σώμα αιτήματος POST.

(3) Το τελικό αίτημα δοκιμής που δημιουργήθηκε έχει ως εξής:

4. Βεβαιωθείτε ότι γίνεται λήψη όλων των πόρων με κάθε αίτημα

Από προεπιλογή, το JMeter, όπως και το τεστ διεπαφής, είναι υπεύθυνο μόνο για τη λήψη της τρέχουσας σελίδας που ζητήθηκε και δεν θα πραγματοποιήσει λήψη άλλων πρόσθετων πόρων της σελίδας. Αυτό προφανώς δεν συνάδει με την πραγματική κατάσταση. Πρέπει λοιπόν να κατεβάσουμε όλους τους πόρους της σελίδας Στην καρτέλα "Για προχωρημένους" στο δειγματολήπτη HTTP, επιλέξτε "Λήψη όλων των πόρων από αρχεία HTML".

5. Σχεδιάστε παράλληλα σενάρια

Για αυτήν την εκτέλεση, εξακολουθούμε να ακολουθούμε τον ίδιο σχεδιασμό σεναρίου με το προηγούμενο σενάριο Java: 50 χρήστες, 5 ταυτόχρονοι χρήστες κάθε 10 δευτερόλεπτα και κάθε χρήστης εκτελείται 100 φορές. Οι συγκεκριμένες ρυθμίσεις είναι οι εξής:

Η ρύθμιση της παραμέτρου "Ramp-Up Period (σε δευτερόλεπτα)" στις παραπάνω ρυθμίσεις στα 100 δευτερόλεπτα σημαίνει την προσθήκη ενός νήματος κάθε δύο δευτερόλεπτα Αν και η συχνότητα δεν μπορεί να οριστεί αυθαίρετα όπως ένα προσαρμοσμένο νήμα, μια τέτοια ρύθμιση είναι συνεπής με κάθε 10 δευτερόλεπτα. Δεν υπάρχει ουσιαστική διαφορά στην επίδραση 5 ταυτόχρονων χρηστών.

Εκτός από τη ρύθμιση του αριθμού των εκτελέσεων, μπορούμε επίσης να ορίσουμε τον συνολικό χρόνο εκτέλεσης της διαδικασίας δοκιμής απόδοσης. Στο κάτω μέρος της παραπάνω εικόνας, επιλέξτε "Χρονοδιάγραμμα" και ορίστε τη διάρκεια. Εάν χρειάζεται να τρέξουμε συνεχώς για μία ώρα, χρειάζεται μόνο να ορίσουμε την τιμή του στα 3600 δευτερόλεπτα.

6. Ορίστε χρόνο σκέψης για κάθε βήμα

Ο χρόνος σκέψης είναι μια ρύθμιση απαραίτητη για την προσομοίωση πραγματικών σεναρίων χρηστών. Το στοιχείο "χρονόμετρο" που παρέχεται από το JMeter χρησιμοποιείται για την προσομοίωση του χρόνου σκέψης του χρήστη. Ένας δειγματολήπτης ορίζει τον χρόνο σκέψης:

(1) Κάντε δεξί κλικ σε ένα δειγματολήπτη, για παράδειγμα, κάνουμε κλικ στο "DoLogin" για να δημιουργήσουμε ένα νέο "Gaussian random timer".

(2) Ρυθμίστε τη μετατόπιση στα 2000 χιλιοστά του δευτερολέπτου και τη σταθερή μετατόπιση καθυστέρησης στα 4000 χιλιοστά του δευτερολέπτου. Η λειτουργία του είναι να δημιουργεί έναν τυχαίο αριθμό εντός του εύρους των 4 δευτερολέπτων συν ή πλην 2 δευτερολέπτων, δηλαδή ο χρόνος τυχαίας παύσης είναι μεταξύ 2 δευτερολέπτων και 6 δευτερολέπτων.

Περισσότερα για τη χρήση του χρονοδιακόπτη JMeter

7. Ρυθμίστε σημεία συνάντησης

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

Στο JMeter, μπορούμε να χρησιμοποιήσουμε το χρονόμετρο "Συγχρονισμός χρονοδιακόπτη" για να ολοκληρώσουμε την επεξεργασία των σημείων του ραντεβού. Για παράδειγμα, το ακόλουθο σχήμα μας δείχνει πώς να εφαρμόσουμε μια στρατηγική ταυτόχρονης δοκιμής για το δειγματολήπτη "DoPost":

(1) Αριθμός προσομοιωμένων χρηστών σε ομαδοποίηση: Αυτή η τιμή αντιστοιχεί στον αριθμό των νημάτων στο σημείο του ραντεβού. Εάν οριστεί στο 0 εδώ, σημαίνει ότι χρησιμοποιείται το σύνολο όλων των νημάτων που έχει οριστεί από την ομάδα νημάτων.

(2) Χρονικό όριο σε χιλιοστά του δευτερολέπτου: Ορίστε εδώ σε 10000, που σημαίνει ότι το χρονικό όριο λήξης του σημείου ραντεβού είναι 10 δευτερόλεπτα, δηλαδή, εάν όλα τα νήματα δεν έχουν περιμένει για 10 δευτερόλεπτα, δεν θα περιμένουν πλέον. Το νήμα που έχει ολοκληρώσει τη συλλογή στέλνει απευθείας το επόμενο αίτημα.

Στην πραγματικότητα, στην ανάπτυξη του εγγενούς νήματος της Java, μπορούμε επίσης να χρησιμοποιήσουμε τις δύο μεθόδους συγχρονισμού "wait()" και "notifyAll()" για να ολοκληρώσουμε την προσομοίωση του σημείου ραντεβού.

8. Δείτε τα αποτελέσματα των δοκιμών απόδοσης

Το JMeter έχει επίσης πολλά ενσωματωμένα στοιχεία για την προβολή αναφορών δοκιμών, αλλά το πιο συχνά χρησιμοποιούμενο είναι η "αναφορά συνάθροισης" που δημιουργήθηκε για μια συγκεκριμένη ομάδα νημάτων. Για παράδειγμα, τα αποτελέσματα της τρέχουσας δοκιμής απόδοσης Phpwind φαίνονται παρακάτω:

Μπορούμε να δούμε από το παραπάνω σχήμα τον αριθμό των εκτελέσεων κάθε δειγματολήπτη, διάφορα μαθηματικά στατιστικά στοιχεία χρόνου απόκρισης (μέσος όρος, διάμεσος, τιμή 90%, ελάχιστη τιμή, μέγιστη τιμή), ποσοστό σφάλματος συναλλαγής, εύρος ζώνης δικτύου, συνολικό μέγεθος απόκρισης, συνολικό μέγεθος αιτήματος και άλλα δεδομένα. Εκτός από την παρακολούθηση των δεικτών απόδοσης από την πλευρά του διακομιστή, αυτοί οι δείκτες είναι βασικά αρκετοί για να αναλύσουμε βασικά δεδομένα για μια δοκιμή απόδοσης.

Άσκηση σκέψης

(1) Να είστε εξοικειωμένοι με τη χρήση άλλων εξαρτημάτων στο JMeter.

(2) Χρησιμοποιήστε το JMeter για να ολοκληρώσετε τη δοκιμή απόδοσης ενός έργου και να λύσετε τα προβλήματα που αντιμετωπίζονται ένα προς ένα.

(3) Συγκρίνετε τη δοκιμή απόδοσης στο JMeter με τη δοκιμή απόδοσης που αναπτύξαμε μόνοι μας χρησιμοποιώντας εγγενή Java για να δείτε τις ομοιότητες και τις διαφορές.

Τέλος, θα ήθελα να ευχαριστήσω όλους όσοι διάβασαν προσεκτικά το άρθρο μου. 

Έγγραφο συνέντευξης δοκιμής λογισμικού

Πρέπει να μελετήσουμε για να βρούμε μια υψηλά αμειβόμενη δουλειά set Πιστεύω ότι όλοι μπορούν να βρουν μια ικανοποιητική δουλειά με βάση τις πληροφορίες της συνέντευξης.

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