Τι είναι το Load Testing; (Παραδείγματα)
⚡ Έξυπνη Σύνοψη
Η Δοκιμή Φόρτου (Load Testing) μετράει τον τρόπο με τον οποίο συμπεριφέρεται μια εφαρμογή λογισμικού όταν πολλοί χρήστες έχουν πρόσβαση σε αυτήν ταυτόχρονα, μέχρι την αναμενόμενη κορύφωση. Προσδιορίζει τη μέγιστη λειτουργική χωρητικότητα, τα σημεία συμφόρησης που την περιορίζουν και εάν η τρέχουσα υποδομή είναι επαρκής.

Τι είναι το Load Testing;
Δοκιμές φορτίου είναι μια μη λειτουργική διαδικασία δοκιμής λογισμικού κατά την οποία ελέγχεται η απόδοση μιας εφαρμογής λογισμικού κάτω από ένα συγκεκριμένο αναμενόμενο φορτίο. Καθορίζει πώς συμπεριφέρεται η εφαρμογή λογισμικού ενώ την έχουν πρόσβαση πολλοί χρήστες ταυτόχρονα. Ο στόχος του Load Testing είναι να βελτιώσει τα σημεία συμφόρησης στην απόδοση και να διασφαλίσει τη σταθερότητα και την ομαλή λειτουργία της εφαρμογής λογισμικού πριν από την ανάπτυξη.
Αυτή η δοκιμή συνήθως προσδιορίζει -
- Η μέγιστη λειτουργική ικανότητα μιας εφαρμογής
- Προσδιορίστε εάν η τρέχουσα υποδομή είναι επαρκής για την εκτέλεση της εφαρμογής
- Βιωσιμότητα της εφαρμογής σε σχέση με το μέγιστο φορτίο χρήστη
- Αριθμός ταυτόχρονων χρηστών που μπορεί να υποστηρίξει μια εφαρμογή και επεκτασιμότητα που επιτρέπει σε περισσότερους χρήστες να έχουν πρόσβαση σε αυτήν.
Είναι ένα είδος μη λειτουργικής δοκιμής. Στη Μηχανική Λογισμικού, η δοκιμή φόρτωσης χρησιμοποιείται συνήθως για τον Πελάτη/Διακομιστή, τις εφαρμογές που βασίζονται στο Web – τόσο στο Intranet όσο και στο Διαδίκτυο.
Γιατί χρειάζεται η δοκιμή φορτίου;
Ορισμένοι εξαιρετικά δημοφιλείς ιστότοποι έχουν υποστεί σοβαρούς χρόνους διακοπής λειτουργίας όταν έχουν τεράστιο όγκο επισκεψιμότητας. Οι ιστότοποι ηλεκτρονικού εμπορίου επενδύουν σε μεγάλο βαθμό σε διαφημιστικές καμπάνιες, αλλά όχι σε Δοκιμές φόρτωσης για να διασφαλίσουν τη βέλτιστη απόδοση του συστήματος, όταν αυτό το μάρκετινγκ φέρνει επισκεψιμότητα.
Παραδείγματα δοκιμών φορτίου
- Το Toysrus.com δεν μπορούσε να διαχειριστεί την επισκεψιμότητα που δημιουργούσε η δική του διαφημιστική καμπάνια, χάνοντας τόσο τις δαπάνες μάρκετινγκ όσο και τις πωλήσεις που υποτίθεται ότι θα παρήγαγε.
- Ένας ιστότοπος της αεροπορικής εταιρείας δεν ήταν σε θέση να χειριστεί 10000+ χρήστες κατά τη διάρκεια μιας προσφοράς φεστιβάλ.
- Η Encyclopedia Britannica δήλωσε δωρεάν πρόσβαση στην ηλεκτρονική της βάση δεδομένων ως προωθητική προσφορά. Δεν ήταν σε θέση να συμβαδίσουν με την επίθεση της κυκλοφορίας για εβδομάδες.
Πολλοί ιστότοποι υφίστανται καθυστερήσεις φόρτωσης όταν αντιμετωπίζουν μεγάλη επισκεψιμότητα. Λίγα γεγονότα -
- Η εγκατάλειψη αυξάνεται απότομα πέραν των περίπου 3 δευτερολέπτων χρόνου φόρτωσης σελίδας και η επίδραση επιδεινώνεται στις συνδέσεις κινητής τηλεφωνίας.
- Οι αργές σελίδες κοστίζουν στους ιστότοπους ηλεκτρονικού εμπορίου μετρήσιμα έσοδα σε κάθε επίσκεψη, γι' αυτό και η απόδοση αντιμετωπίζεται ως επιχειρηματική μέτρηση και όχι ως τεχνική.
Γιατί φόρτωση δοκιμής;
- Η δοκιμή φορτίου δίνει εμπιστοσύνη στο σύστημα, την αξιοπιστία και την απόδοσή του.
- Η δοκιμή φόρτωσης βοηθά στον εντοπισμό των σημείων συμφόρησης στο σύστημα κάτω από βαριά σενάρια πίεσης χρήστη προτού συμβούν σε περιβάλλον παραγωγής.
- Η δοκιμή φορτίου παρέχει εξαιρετική προστασία από κακές επιδόσεις και περιλαμβάνει συμπληρωματικές στρατηγικές για τη διαχείριση της απόδοσης και την παρακολούθηση ενός περιβάλλοντος παραγωγής.
Στόχοι Δοκιμής Φορτίου
Η δοκιμή φόρτωσης εντοπίζει τα ακόλουθα προβλήματα πριν από τη μεταφορά της εφαρμογής στην αγορά ή την παραγωγή:
- Χρόνος απόκρισης για κάθε συναλλαγή
- Απόδοση εξαρτημάτων του συστήματος κάτω από διάφορα φορτία
- Απόδοση στοιχείων βάσης δεδομένων κάτω από διαφορετικά φορτία
- Καθυστέρηση δικτύου μεταξύ του πελάτη και του διακομιστή
- Ζητήματα σχεδιασμού λογισμικού
- Ζητήματα διαμόρφωσης διακομιστή όπως διακομιστής Web, διακομιστή εφαρμογών, διακομιστή βάσης δεδομένων κ.λπ.
- Ζητήματα περιορισμού υλικού όπως μεγιστοποίηση CPU, περιορισμοί μνήμης, συμφόρηση δικτύου κ.λπ.
Η δοκιμή φόρτωσης θα καθορίσει εάν το σύστημα πρέπει να τελειοποιηθεί ή εάν απαιτείται τροποποίηση του υλικού και του λογισμικού για τη βελτίωση της απόδοσης. Για την αποτελεσματική διεξαγωγή δοκιμών φορτίου, μπορείτε να χρησιμοποιήσετε διάφορα εργαλεία δοκιμής απόδοσης που είναι διαθέσιμα για να σας βοηθήσουν να εντοπίσετε τομείς προς βελτίωση.
Προαπαιτούμενα για τη δοκιμή φορτίου
Η κύρια μέτρηση για τη δοκιμή φορτίου είναι ο χρόνος απόκρισης. Πριν ξεκινήσετε τη δοκιμή φορτίου, πρέπει να προσδιορίσετε:
- Εάν ο χρόνος απόκρισης έχει ήδη μετρηθεί και συγκριθεί – Ποσοτική
- Εάν ο χρόνος απόκρισης ισχύει για την επιχειρηματική διαδικασία – Σχετικό
- Εάν ο χρόνος απόκρισης είναι δικαιολογημένος - Ρεαλιστικό
- Εάν ο χρόνος απόκρισης είναι εφικτός - Εφικτός
- Είτε ο χρόνος απόκρισης είναι μετρήσιμος με χρήση εργαλείου ή χρονόμετρου – Μετρήσιμος
Ρύθμιση περιβάλλοντος πριν από τη δοκιμή φόρτωσης
| Πλατφόρμα υλικού | Διαμόρφωση λογισμικού |
|---|---|
|
|
Στρατηγικές Δοκιμής Φορτίου
Υπάρχουν πολλοί τρόποι για την εκτέλεση δοκιμών φορτίου. Ακολουθούν μερικές στρατηγικές δοκιμών φορτίου-
- Δοκιμή χειροκίνητου φορτίου: Αυτή είναι μια από τις στρατηγικές για την εκτέλεση δοκιμών φορτίου, αλλά δεν παράγει επαναλαμβανόμενα αποτελέσματα, δεν μπορεί να παρέχει μετρήσιμα επίπεδα πίεσης σε μια εφαρμογή και είναι μια διαδικασία αδύνατο να συντονιστεί.
- Εσωτερικά αναπτύχθηκαν εργαλεία δοκιμής φορτίου: Ένας οργανισμός, ο οποίος αντιλαμβάνεται τη σημασία της δοκιμής φορτίου, μπορεί να δημιουργήσει τα δικά του εργαλεία για την εκτέλεση δοκιμών φορτίου.
- Εργαλεία δοκιμής φόρτωσης ανοιχτού κώδικα: Υπάρχουν πολλά εργαλεία δοκιμής φόρτωσης διαθέσιμα ως ανοιχτού κώδικα που είναι δωρεάν. Μπορεί να μην είναι τόσο εξελιγμένοι όσο οι αντίστοιχοι επί πληρωμή, αλλά αν έχετε προϋπολογισμό, είναι η καλύτερη επιλογή.
- Εργαλεία δοκιμής φορτίου κατηγορίας επιχειρήσεων: Συνήθως συνοδεύονται από δυνατότητα λήψης/αναπαραγωγής. Υποστηρίζουν μεγάλο αριθμό πρωτοκόλλων. Μπορούν να προσομοιώσουν έναν εξαιρετικά μεγάλο αριθμό χρηστών.
Πώς να κάνετε Load Testing
Η διαδικασία δοκιμής φορτίου μπορεί να περιγραφεί εν συντομία ως εξής:
- Δημιουργήστε ένα ειδικό Περιβάλλον δοκιμής για δοκιμή φορτίου
- Ορίστε τα σενάρια δοκιμής φορτίου
- Προσδιορίστε τις συναλλαγές δοκιμής φορτίου για μια εφαρμογή
- Προετοιμάστε δεδομένα για κάθε συναλλαγή
- Ο αριθμός των χρηστών που έχουν πρόσβαση στο σύστημα πρέπει να προβλεφθεί
- Προσδιορίστε τις ταχύτητες σύνδεσης. Ορισμένοι χρήστες ενδέχεται να συνδέονται μέσω μισθωμένων γραμμών ενώ άλλοι μπορεί να χρησιμοποιούν σύνδεση μέσω τηλεφώνου
- Προσδιορίστε διαφορετικά προγράμματα περιήγησης και λειτουργικά συστήματα που χρησιμοποιούνται από τους χρήστες
- Μια ρύθμιση παραμέτρων όλων των διακομιστών όπως διακομιστές web, εφαρμογών και DB
- Εκτέλεση και παρακολούθηση σεναρίου δοκιμής. Συλλογή διαφόρων μετρήσεων
- Αναλύστε τα αποτελέσματα. Κάντε συστάσεις
- Βελτιστοποιήστε το Σύστημα
- Επανεξέταση
Οδηγίες για δοκιμές φορτίου
- Η δοκιμή φόρτωσης θα πρέπει να προγραμματιστεί μόλις η εφαρμογή γίνει λειτουργικά σταθερή.
- Ένας μεγάλος αριθμός μοναδικών δεδομένων θα πρέπει να είναι έτοιμος στη δεξαμενή δεδομένων
- Ο αριθμός των χρηστών πρέπει να αποφασιστεί για κάθε σενάριο ή σενάρια
- Αποφύγετε τη δημιουργία λεπτομερών αρχείων καταγραφής για τη διατήρηση του χώρου IO του δίσκου
- Προσπαθήστε να αποφύγετε τη λήψη εικόνων στον ιστότοπο
- Κατά τη διαδικασία εκτέλεσης δοκιμών δοκιμής φορτίου, η συνέπεια του χρόνου απόκρισης κατά τη διάρκεια της περιόδου που έχει παρέλθει θα πρέπει να καταγράφεται και να συγκρίνεται με διάφορες δοκιμαστικές εκτελέσεις.
Διαφορά μεταξύ δοκιμών φορτίου και καταπόνησης
| Δοκιμές φορτίου | Έλεγχος πίεσης |
|---|---|
| Η δοκιμή φορτίου εντοπίζει τα σημεία συμφόρησης στο σύστημα κάτω από διάφορους φόρτους εργασίας και ελέγχει πώς αντιδρά το σύστημα όταν το φορτίο αυξάνεται σταδιακά | Έλεγχος πίεσης καθορίζει το σημείο θραύσης του συστήματος για να αποκαλύψει το μέγιστο σημείο μετά το οποίο σπάει. |
| Για να αναγνωρίσετε το ανώτερο όριο του συστήματος, ορίστε το SLA της εφαρμογής και ελέγξτε πώς το σύστημα μπορεί να χειριστεί ένα μεγάλο φορτίο. | Για να ελέγξετε πώς συμπεριφέρεται το σύστημα κάτω από ακραία φορτία και πώς ανακάμπτει από αστοχία. |
| Η δημιουργία αυξημένου φορτίου σε μια εφαρμογή Ιστού είναι ο κύριος στόχος της δοκιμής φορτίου. | Η δοκιμή καταπόνησης στοχεύει να διασφαλίσει ότι κάτω από ένα ξαφνικό υψηλό φορτίο για μεγάλο χρονικό διάστημα οι διακομιστές δεν κολλάνε. |
| Τα χαρακτηριστικά που ελέγχονται σε μια δοκιμή φόρτωσης είναι η μέγιστη απόδοση, η ποσότητα διακομιστή και ο χρόνος απόκρισης. | Αυτό το είδος δοκιμής ελέγχει τον χρόνο απόκρισης σταθερότητας κ.λπ. |
| Στη δοκιμή φορτίου το όριο φορτίου είναι ένα κατώφλι διακοπής. | Σε δοκιμές ακραίων καταστάσεων το όριο φορτίου είναι πάνω από το όριο μιας διακοπής. |
Διαφορά μεταξύ Λειτουργικής και Δοκιμής Φορτίου
| Λειτουργική δοκιμή | Δοκιμές φορτίου |
|---|---|
| Τα αποτελέσματα των λειτουργικών δοκιμών είναι εύκολα προβλέψιμα καθώς έχουμε ορίσει τα κατάλληλα βήματα και τις προϋποθέσεις | Τα αποτελέσματα των δοκιμών φορτίου είναι απρόβλεπτα |
| Τα αποτελέσματα των λειτουργικών δοκιμών διαφέρουν ελαφρώς | Τα αποτελέσματα των δοκιμών φόρτωσης ποικίλλουν δραστικά |
| Συχνότητα εκτέλεσης Λειτουργική δοκιμή θα είναι ψηλά | Η συχνότητα εκτέλεσης δοκιμών φορτίου θα είναι χαμηλή |
| Τα αποτελέσματα των λειτουργικών δοκιμών εξαρτώνται από τα δεδομένα της δοκιμής | Η δοκιμή φόρτωσης εξαρτάται από τον αριθμό των χρηστών. |
Φόρτωση εργαλείων δοκιμής
LoadRunner
LoadRunner, αρχικά από την HP και τώρα μέρος της OpenText Μετά την απόκτηση του Micro Focus, δοκιμάζει εφαρμογές υπό κανονικό και μέγιστο φορτίο. Δημιουργεί φορτίο μέσω εικονικών χρηστών που μιμούνται την πραγματική κίνηση δικτύου και αναφέρει τα αποτελέσματα γραφικά.
Διαβάστε περισσότερα στο Εκπαιδευτικό βίντεο LoadRunner.
Apache JMeter
Ένα ανοιχτού κώδικα Java εργαλείο και η πιο ευρέως χρησιμοποιούμενη δωρεάν επιλογή. Υποστηρίζει HTTP, JDBC, JMS, FTP και άλλα, αποθηκεύει σχέδια δοκιμών ως XML και ενσωματώνεται σε αγωγούς CI. Δείτε το JMeter φροντιστήριο για μια περιήγηση.
Gatling
Ένα εργαλείο ανοιχτού κώδικα του οποίου οι δοκιμές γράφονται ως κώδικας σε Scala ή JavaΧειρίζεται υψηλό ταυτόχρονο χαρακτήρα σε μέτριο υλικό και παράγει λεπτομερείς αναφορές HTML, κάτι που ταιριάζει σε ομάδες που προτιμούν σενάρια δοκιμών με έλεγχο έκδοσης.
k6
Ένα εργαλείο ανοιχτού κώδικα με δοκιμές γραμμένες σε JavaΣκριπτ, σχεδιασμένο για δοκιμές απόδοσης που ανήκουν σε προγραμματιστές εντός ενός αγωγού CI και όχι ως ξεχωριστή δραστηριότητα διασφάλισης ποιότητας.
Επιλέγοντας ένα εργαλείο
Pick JMeter Για την ευρύτερη κάλυψη πρωτοκόλλου χωρίς κόστος, το Gatling ή το k6 όταν η ομάδα θέλει οι δοκιμές να διατηρούνται στον έλεγχο πηγαίου κώδικα παράλληλα με την εφαρμογή, και ένα εμπορικό εργαλείο όπως το LoadRunner όταν η υποστήριξη εταιρικού πρωτοκόλλου και η βοήθεια προμηθευτή δικαιολογούν την άδεια χρήσης.
Πλεονεκτήματα και μειονεκτήματα της δοκιμής φορτίου
Ακολουθούν τα πλεονεκτήματα της δοκιμής φορτίου:
- Προσδιορισμός σημείων συμφόρησης απόδοσης πριν από την παραγωγή
- Βελτιώνει την επεκτασιμότητα του συστήματος
- Ελαχιστοποιήστε τον κίνδυνο που σχετίζεται με το χρόνο διακοπής λειτουργίας του συστήματος
- Μειωμένο κόστος αποτυχίας
- Αυξήστε την ικανοποίηση των πελατών
Μειονεκτήματα της δοκιμής φορτίου:
- Τα περισσότερα εργαλεία απαιτούν γνώσεις προγραμματισμού για τη δημιουργία ρεαλιστικών σεναρίων.
- Τα εργαλεία μπορεί να είναι ακριβά, καθώς η τιμολόγηση εξαρτάται από τον αριθμό των εικονικών χρηστών που υποστηρίζονται.
Βασικές μετρήσεις που πρέπει να καταγραφούν κατά τη διάρκεια μιας δοκιμής φορτίου
Η ενότητα προαπαιτούμενων ορίζει τον χρόνο απόκρισης ως το κύριο μέτρο. Στην πράξη, μια αναφορά δοκιμής φορτίου χρειάζεται εξαψήφιο αριθμό, επειδή ο χρόνος απόκρισης από μόνος του δεν μπορεί να σας πει γιατί ένα σύστημα επιβραδύνθηκε.
| Μετρικός | Αυτό που σου λέει | Σημάδι προειδοποίησης |
|---|---|---|
| Μέσος χρόνος απόκρισης | Η τυπική εμπειρία χρήστη | Αυξάνεται καθώς αυξάνεται το φορτίο |
| Χρόνος απόκρισης 95ου εκατοστημορίου | Η εμπειρία των πιο αργών χρηστών | Πολύ πάνω από τον μέσο όρο |
| Διακίνηση | Αιτήματα που διεκπεραιώθηκαν με επιτυχία ανά δευτερόλεπτο | Επιπέδωση ή πτώση ενώ το φορτίο αυξάνεται |
| Ποσοστό σφάλματος | Ποσοστό αιτημάτων που έχουν αποτύχει ή έχουν λήξει με χρονικό όριο | Οποιαδήποτε αύξηση πάνω από το συμφωνημένο όριο |
| Ταυτόχρονοι χρήστες | Πραγματικές ταυτόχρονες συνεδρίες που επιτεύχθηκαν | Χαμηλότερο από το προβλεπόμενο σενάριο |
| Χρήση πόρων διακομιστή | Περιθώριο CPU, μνήμης, δίσκου και δικτύου | Οποιοσδήποτε πόρος άνω του 80% περίπου |
Απόδοση ανάγνωσης μαζί με χρόνο απόκρισης. Η αύξηση του χρόνου απόκρισης με την αύξηση της απόδοσης σημαίνει απλώς ότι το σύστημα είναι πιο απασχολημένο. Η αύξηση του χρόνου απόκρισης με που Η απόδοση σημαίνει ότι έχει ξεπεράσει την χωρητικότητά του και τώρα χάνει εργασία, το οποίο είναι το σημείο για το οποίο υπάρχει η δοκιμή.
Ποτέ μην αναφέρετε τον μέσο όρο μόνοι σας. Ένας μέσος χρόνος 900 ms με 95ο εκατοστημόριο 1.1 δευτερολέπτων περιγράφει ένα συνεπές σύστημα. Ο ίδιος μέσος όρος με 95ο εκατοστημόριο 11 δευτερολέπτων σημαίνει ότι ένας χρήστης στους είκοσι έχει μια απαράδεκτη εμπειρία την οποία ο μέσος όρος αποκρύπτει.
Πώς συγκρίνεται αυτή η δοκιμή με άλλες δοκιμές απόδοσης
Οι δοκιμές απόδοσης είναι μια οικογένεια δοκιμών που διαφέρουν ως προς το σχήμα του εφαρμοζόμενου φορτίου, γι' αυτό και συγχέονται τόσο εύκολα.
| Τύπος δοκιμής | Τι αυξάνεται | Ερώτηση που απαντά |
|---|---|---|
| Δοκιμή φόρτωσης | Ταυτόχρονοι χρήστες, μέχρι την αναμενόμενη κορύφωση | Επιτυγχάνει τους στόχους υπό κανονικές συνθήκες αιχμής της κυκλοφορίας; |
| Δοκιμή όγκου | Δεδομένα που διατηρούνται στη βάση δεδομένων | Αντιμετωπίζει το πρόβλημα καθώς το σύνολο δεδομένων μεγαλώνει; |
| Έλεγχος πίεσης | Φόρτωση πέραν της χωρητικότητας, μέχρι βλάβης | Πού σπάει και πώς; |
| Δοκιμή ακίδων | Φόρτωση, άμεσα και εξαιρετικά | Επιβιώνει και συνέρχεται από ένα σοκ; |
| Δοκιμή αντοχής | Διάρκεια, σε κανονικό φορτίο | Η απόδοση υποβαθμίζεται με την πάροδο του χρόνου; |
| Δοκιμή εμβάπτισης | Διάρκεια, πόροι παρακολούθησης | Υπάρχουν διαρροές στη μνήμη ή στη λαβή; |
| Δοκιμή σταθερότητας | Διαφορετικές συνθήκες | Παραμένει αξιόπιστο καθώς αλλάζουν οι συνθήκες; |
Η διαφορά που έχει τη μεγαλύτερη σημασία εδώ: Ο έλεγχος όγκου κλιμακώνει τα δεδομένα, ο έλεγχος φορτίου κλιμακώνει τους χρήστες. Μια αναφορά που εκτελείται σε δύο δευτερόλεπτα έναντι δέκα χιλιάδων γραμμών και σε δύο λεπτά έναντι δέκα εκατομμυρίων γραμμών έχει πρόβλημα όγκου, όχι πρόβλημα φόρτου, και καμία επιπλέον χωρητικότητα διακομιστή δεν θα το διορθώσει.



