Mis on koormuse testimine? (Näited)
⚡ Nutikas kokkuvõte
Koormustestimine mõõdab tarkvararakenduse käitumist, kui sellele pääseb korraga ligi palju kasutajaid kuni oodatava tippkoormuseni. See tuvastab maksimaalse töömahu, seda piiravad kitsaskohad ja selle, kas praegune infrastruktuur on piisav.

Mis on koormuse testimine?
Koormuse testimine on mittefunktsionaalne tarkvara testimisprotsess, mille käigus testitakse tarkvararakenduse jõudlust kindla eeldatava koormuse all. See määrab, kuidas tarkvararakendus käitub, kui sellele pääseb juurde korraga mitu kasutajat. Koormustestimise eesmärk on parandada jõudluse kitsaskohti ning tagada tarkvararakenduse stabiilsus ja sujuv toimimine enne juurutamist.
See test tuvastab tavaliselt
- Rakenduse maksimaalne töövõime
- Tehke kindlaks, kas praegune infrastruktuur on rakenduse käitamiseks piisav
- Rakenduse jätkusuutlikkus kasutaja maksimaalse koormuse suhtes
- Samaaegsete kasutajate arv, keda rakendus toetab, ja skaleeritavus, et võimaldada rohkematel kasutajatel sellele juurde pääseda.
See on teatud tüüpi mittefunktsionaalne testimine. Tarkvaratehnikas kasutatakse koormustestimist tavaliselt kliendi/serveri, veebipõhiste rakenduste jaoks – nii sisevõrgus kui ka Internetis.
Miks on koormustestimine vajalik?
Mõned ülipopulaarsed saidid on suure liiklusmahu tõttu kannatanud tõsiseid seisakuid. E-kaubanduse veebisaidid investeerivad palju reklaamikampaaniatesse, kuid mitte koormustestimisse, et tagada süsteemi optimaalne jõudlus, kui turundus toob liiklust.
Koormustesti näited
- Toysrus.com ei suutnud oma reklaamikampaania genereeritud liiklusega toime tulla, kaotades nii turunduskulud kui ka müügi, mida see pidi tootma.
- Lennufirma veebisait ei suutnud festivali pakkumise ajal vastu võtta 10000 XNUMX+ kasutajat.
- Encyclopedia Britannica kuulutas tasuta juurdepääsu oma veebiandmebaasile sooduspakkumisena. Nad ei suutnud nädalaid liikluse pealetungiga sammu pidada.
Paljud saidid kannatavad tiheda liikluse tõttu laadimisaja hilinemise all. vähe fakte –
- Lehe laadimise algusest peale suureneb lahkumiste arv järsult ja selle mõju mobiilsetele ühendustele süveneb.
- Aeglased lehed maksavad e-kaubanduse saitidele iga külastuse kohta mõõdetavat tulu, mistõttu käsitletakse toimivust pigem äri- kui tehnilise mõõdikuna.
Miks koormustestimine?
- Koormustestimine annab kindlustunde süsteemi ja selle töökindluse ja jõudluse vastu.
- Koormustestimine aitab tuvastada süsteemi kitsaskohad raskete kasutajate stressistsenaariumide korral enne, kui need tootmiskeskkonnas aset leiavad.
- Koormustestimine pakub suurepärast kaitset kehva jõudluse eest ja hõlmab täiendavaid strateegiaid jõudluse juhtimiseks ja tootmiskeskkonna jälgimiseks.
Koormustestimise eesmärgid
Laadimistestimine tuvastab enne rakenduse turule või tootmisse viimist järgmised probleemid.
- Iga tehingu puhul vastamisaeg
- Süsteemi komponentide jõudlus erinevatel koormustel
- Andmebaasi komponentide jõudlus erinevatel koormustel
- Võrgu viivitus kliendi ja serveri vahel
- Tarkvara disaini probleemid
- Serveri konfiguratsiooniprobleemid, nagu veebiserver, rakendusserver, andmebaasiserver jne.
- Riistvarapiiranguga seotud probleemid, nagu protsessori maksimeerimine, mälupiirangud, võrgu kitsaskoht jne.
Koormustestiga tehakse kindlaks, kas jõudluse parandamiseks on vaja süsteemi peenhäälestada või riist- ja tarkvara muutmist. Koormustestide tõhusaks läbiviimiseks saate kasutada erinevaid jõudluskontrolli tööriistad mis on saadaval, et aidata teil kindlaks teha parendusvaldkonnad.
Koormustesti eeldused
Koormustestimise peamine mõõdik on reaktsiooniaeg. Enne koormustesti alustamist peate kindlaks tegema:
- Kas reageerimisaega on juba mõõdetud ja võrreldud – kvantitatiivne
- Kas reageerimisaeg on äriprotsessis rakendatav – asjakohane
- Kas reageerimisaeg on õigustatud – realistlik
- Kas reageerimisaeg on saavutatav – saavutatav
- Kas reaktsiooniaeg on mõõdetav tööriista või stopperiga – Mõõdetav
Keskkonna seadistamine enne koormustesti
| Riistvaraplatvorm | Tarkvara konfigureerimine |
|---|---|
|
|
Koormustesti strateegiad
Koormustestide läbiviimiseks on palju võimalusi. Järgnevalt on toodud mõned koormuse testimise strateegiad -
- Käsitsi koormuse testimine: see on üks koormustestide läbiviimise strateegiatest, kuid see ei anna korratavaid tulemusi, ei suuda pakkuda rakendusele mõõdetavat stressitaset ja seda on võimatu koordineerida.
- Majas välja töötatud koormustestimise tööriistad: organisatsioon, kes mõistab koormustestimise tähtsust, võib koormustestide läbiviimiseks luua oma tööriistad.
- Avatud lähtekoodiga koormuse testimise tööriistad: avatud lähtekoodiga on saadaval mitmeid tasuta koormuse testimise tööriistu. Need ei pruugi olla nii kogenud kui nende tasulised kolleegid, kuid kui teil on eelarve, on need parim valik.
- Ettevõtlusklassi koormuse testimise tööriistad: Tavaliselt on neil kaasas jäädvustamise/taasesituse võimalus. Nad toetavad suurt hulka protokolle. Need võivad simuleerida erakordselt suurt hulka kasutajaid.
Kuidas teha koormustesti
Koormustestimise protsessi saab lühidalt kirjeldada järgmiselt -
- Looge pühendatud Testi keskkond koormuse testimiseks
- Koormustesti stsenaariumide määratlemine
- Määrake rakenduse koormustestimise tehingud
- Valmistage ette andmed iga tehingu jaoks
- Süsteemile juurde pääsevate kasutajate arv tuleb prognoosida
- Määrake ühenduse kiirus. Mõned kasutajad võivad olla ühendatud püsiliinide kaudu, samas kui teised võivad kasutada sissehelistamist
- Määrake kasutajate kasutatavad erinevad brauserid ja operatsioonisüsteemid
- Kõigi serverite konfiguratsioon, nagu veebi-, rakendus- ja DB-serverid
- Teststsenaariumi täitmine ja jälgimine. Erinevate mõõdikute kogumine
- Analüüsige tulemusi. Tehke soovitusi
- Süsteemi peenhäälestus
- Kontrollige uuesti
Koormustesti juhised
- Koormustestimine tuleks planeerida siis, kui rakendus muutub funktsionaalselt stabiilseks.
- Andmekogus peaks valmis olema suur hulk unikaalseid andmeid
- Iga stsenaariumi või skripti jaoks tuleks otsustada kasutajate arv
- Vältige üksikasjalike logide loomist, et säästa ketta IO-ruumi
- Püüdke vältida saidil olevate piltide allalaadimist
- Koormustestimise katsejuhtumite täitmise protsessis tuleks registreerida reageerimisaja järjepidevus möödunud perioodi jooksul ja võrrelda seda erinevate katsekäikudega.
Erinevus koormus- ja stressitestide vahel
| Koormuse testimine | Stressitestimine |
|---|---|
| Koormustestimine tuvastab süsteemi kitsaskohad erinevate töökoormuste korral ja kontrollib, kuidas süsteem reageerib koormuse järkjärgulisele suurendamisele | Stressitestimine määrab süsteemi murdepunkti, et paljastada maksimaalne punkt, mille järel see puruneb. |
| Süsteemi ülempiiri tuvastamiseks määrake rakenduse SLA ja kontrollige, kuidas süsteem suure koormusega hakkama saab. | Et kontrollida, kuidas süsteem käitub äärmuslike koormuste korral ja kuidas see taastub pärast rikkeid. |
| Koormustestimise peamine eesmärk on veebirakenduse koormuse suurendamine. | Stressitestimise eesmärk on tagada, et serverid ei jookseks pika aja jooksul kokku järsu suure koormuse korral. |
| Koormustestis kontrollitavad atribuudid on tippjõudlus, serveri kogus ja reaktsiooniaeg. | Selline testimine kontrollib stabiilsuse reaktsiooniaega jne. |
| Koormustestimisel on koormuspiir pausi lävi. | Stressitestimisel on koormuspiir üle pausi läve. |
Funktsionaalse ja koormustesti erinevus
| Funktsionaalne testimine | Koormuse testimine |
|---|---|
| Funktsionaalsete testide tulemused on kergesti prognoositavad, kuna meil on määratletud õiged sammud ja eeldused | Koormustestide tulemused on ettearvamatud |
| Funktsionaalsete testide tulemused on veidi erinevad | Koormustesti tulemused varieeruvad drastiliselt |
| Täitmise sagedus Funktsionaalne testimine on kõrge | Koormustestide teostamise sagedus on madal |
| Funktsionaalsete testide tulemused sõltuvad testi andmetest | Koormustestimine sõltub kasutajate arvust. |
Koormuse testimise tööriistad
LoadRunner
LoadRunner, algselt HP-lt ja nüüd osa HP-st OpenText Pärast Micro Focuse omandamist testib see rakendusi nii normaal- kui ka tippkoormuse all. See genereerib koormuse virtuaalsete kasutajate kaudu, kes jäljendavad reaalset võrguliiklust, ja esitab tulemused graafiliselt.
Lisateavet leiate jaotisest LoadRunneri õpetus.
Apache JMeter
Avatud lähtekoodiga Java tööriist ja kõige laialdasemalt kasutatav tasuta variant. See toetab HTTP-d, JDBC-d, JMS-i, FTP-d ja muud, salvestab testiplaanid XML-vormingus ja integreerub CI-torustikesse. Vaata JMeter juhendaja läbikäiguks.
Gatling
Avatud lähtekoodiga tööriist, mille testid on kirjutatud koodina Scalas või JavaSee saab hakkama suure samaaegsusega tagasihoidlikul riistvaral ja loob detailseid HTML-aruandeid, mis sobib meeskondadele, kes eelistavad versioonikontrollitud testiskripte.
k6
Avatud lähtekoodiga tööriist, mille testid on kirjutatud keeles JavaSkript, mis on loodud arendaja omanduses oleva jõudlustestimise jaoks CI-torustiku sees, mitte eraldi kvaliteedikontrolli tegevusena.
Tööriista valimine
Vali JMeter Laiima protokolli katvuse saamiseks tasuta Gatling või K6, kui meeskond soovib, et teste hoitaks koos rakendusega versioonikontrolli all, ning kommertstööriist, näiteks LoadRunner, kui ettevõtte protokolli tugi ja tarnija abi õigustavad litsentsi.
Koormustesti eelised ja puudused
Koormustesti eelised on järgmised:
- Toimivuse kitsaskohtade tuvastamine enne tootmist
- Parandab süsteemi mastaapsust
- Minimeerige süsteemi seisakutega seotud riske
- Vähendatud ebaõnnestumise kulud
- Suurendage klientide rahulolu
Koormustesti puudused:
- Enamik tööriistu nõuab realistlike stsenaariumide kirjutamiseks programmeerimisalaseid teadmisi.
- Tööriistad võivad olla kallid, kuna hind sõltub toetatud virtuaalkasutajate arvust.
Koormustesti ajal kogutavad peamised mõõdikud
Eeltingimuste osas on peamine mõõdik reaktsiooniaeg. Praktikas on koormustesti aruande jaoks vaja kuuekohalist numbrit, sest ainuüksi reaktsiooniaeg ei ütle, miks süsteem aeglustus.
| meetriline | Mida see teile ütleb | Hoiatusmärk |
|---|---|---|
| Keskmine reageerimisaeg | Tüüpiline kasutajakogemus | Tõuseb koormuse suurenedes |
| 95. protsentiili reageerimisaeg | Kõige aeglasemate kasutajate kogemus | Kaugel üle keskmise |
| Läbilaskevõime | Edukalt töödeldud päringuid sekundis | Lamenemine või kukkumine koorma tõustes |
| Veamäär | Ebaõnnestunud või aegunud taotluste osakaal | Igasugune tõus üle kokkulepitud läve |
| Samaaegsed kasutajad | Tegelikult saavutatud samaaegsed sessioonid | Madalam kui stsenaariumi kohaselt |
| Serveri ressursside kasutamine | Protsessori, mälu, ketta ja võrgu ressurss | Iga ressurss, mis on üle umbes 80 protsendi |
Lugemisläbilaskevõime koos reageerimisajaga. Läbilaskevõime suurenemisega kaasnev reageerimisaeg tähendab lihtsalt, et süsteem on hõivatum. alla läbilaskevõime tähendab, et see on ületanud oma võimsuse piiri ja kaotab nüüd tööd, mille leidmiseks test olemas ongi.
Ära kunagi esita ainult keskmist. Keskmiselt 900 ms 95. protsentiiliga 1.1 sekundit kirjeldab järjepidevat süsteemi. Sama keskmine 95. protsentiiliga 11 sekundit tähendab, et iga kahekümnes kasutaja kogeb vastuvõetamatut kogemust, mida keskmine varjab.
Kuidas see test teiste jõudlustestidega võrreldes on
Jõudlustestid on testide perekond, mis erinevad rakendatava koormuse kuju poolest, mistõttu neid on nii lihtne segi ajada.
| Katse tüüp | Mis on suurenenud | Küsimus, millele see vastab |
|---|---|---|
| Koormustestimine | Samaaegsete kasutajate arv eeldatava tipptasemeni | Kas see vastab eesmärkidele tavapärase tippliikluse korral? |
| Mahu testimine | Andmebaasis hoitavad andmed | Kas see saab hakkama andmestiku kasvades? |
| Stressitestimine | Koormus üle kandevõime kuni rikkeni | Kus see katki läheb ja kuidas? |
| Spike testimine | Laadimine, koheselt ja äärmiselt | Kas see jääb ellu ja taastub šokist? |
| Vastupidavuse testimine | Kestus normaalkoormusel | Kas jõudlus aja jooksul halveneb? |
| Leotustestimine | Kestus, ressursside jälgimine | Kas esineb mälu- või käepidemelekkeid? |
| Stabiilsuse testimine | Erinevad tingimused | Kas see jääb usaldusväärseks ka muutuvate tingimuste korral? |
Kõige olulisem erinevus siin on: Mahttestimine skaleerib andmeid, koormustestimine aga kasutajaid. Aruandel, mis töötab kümne tuhande rea puhul kahe sekundi ja kümne miljoni rea puhul kahe minutiga, on mahuprobleem, mitte koormusprobleem, ja ükski serverimahu täiendav maht seda ei lahenda.



