Ohjelmistokehitysprosessi edellyttää laajaa jatkuvaa testausta, ensisijaisesti ketterää testausta, jotta voidaan varmistaa tehokas ja ennustettava suorituskyky. Ketterällä testauksella on kuitenkin rajoituksia, jotka liittyvät loppukäyttäjäkokemukseen monikäyttäjäjärjestelmässä.
Kun ohjelmistoprojekti lähestyy valmistumistaan, yritysten on siirryttävä erityyppiseen testaukseen, joka tunnetaan kuormitustestauksena, jotta voidaan määrittää, miten sovellus toimii todellisessa maailmassa erilaisissa työmäärissä ja liikennemäärissä.
Mikä on kuormitustestaus?
Kuormitustestaus on suorituskykytestauksen osa-alue, jota käytetään ohjelmistojen, verkkosivustojen, sovellusten ja niihin liittyvien järjestelmien testauksessa. Se on ei-toiminnallinen testi, jossa simuloidaan useiden järjestelmää samanaikaisesti käyttävien käyttäjien käyttäytymistä. Kuormitustestaus, jota kutsutaan myös ”volyymitestaukseksi”, jäljittelee web-järjestelmän suorituskykyä, vakautta ja toimivuutta live-olosuhteissa, minkä vuoksi se on yksi viimeisistä ja tärkeimmistä ennen käyttöönottoa toteutettavista testaustyypeistä.
Kuormitustestaus tunnistaa useita web-järjestelmän kriittisiä näkökohtia, kuten seuraavat:
- Sovelluksen kokonaistoimintakapasiteetti, mukaan luettuna tuettavien samanaikaisten käyttäjien määrä.
- Sovelluksen kyky reagoida käyttäjien kuormitushuippuihin.
- Sovelluksen infrastruktuurin vakaus
- Sovelluksen vasteajat, läpäisyasteet ja resurssitarpeet eri käyttäjäkuormitustasoilla.
Kuormitustestaus on tärkeä prosessi, jota käytetään ennen minkä tahansa asiakas/palvelin-internet- ja intranet-sovelluksen käynnistämistä. Se koskee sekä etupään ohjelmistoja, kuten verkkosivustoa, että taustajärjestelmiä, kuten palvelimia, jotka isännöivät sivustoa.
Miksi tarvitsemme kuormitustestausta?
Toiminnallisilla testeillä on tärkeä rooli ohjelmistokehityksessä, mutta niillä on rajoitteita suorituskyvyn ennustamisessa käyttäjän eri sitoutumistasoilla. Kuormitustestaus tunnistaa kriittiset suorituskykyongelmat, joita muut testit eivät pysty havaitsemaan, jolloin yritykset voivat korjata ongelmat ennen ohjelmiston käyttöönottoa tai päivitysten toteuttamista.
Yritysten on suoritettava kuormitustestausta kolmesta keskeisestä syystä:
- Ohjelmiston toimivuuden arviointi
- Tuottaa tuloja, tarjota palvelua ja suojella yrityksen mainetta.
- Miellyttävän ja tehokkaan käyttäjäkokemuksen / käyttöliittymän varmistaminen.
Kuormitustestaus on tarpeen pullonkaulojen tunnistamiseksi, sivuston toimintojen vasteajan mittaamiseksi ja suorituskyvyn parantamiseksi tulevaisuudessa. Kaikki nämä tavoitteet voidaan tietysti saavuttaa vastauksena elävän sivuston käyttäytymiseen, mutta vain kuluttajille aiheutuvan voimakkaan häiriön kustannuksella.
Huomaa, että vaikka kuormitustestausohjelmisto liittyy yleisesti internetpohjaisiin sovelluksiin, sitä käytetään myös laitteistojen testaamiseen.
Kuormitustestauksen edut
Yritykset, jotka tarjoavat Internet- tai intranet-sovelluksia, saavat valtavia hyötyjä kuormitustestauksesta. Joitakin parhaita syitä kuormitustestauksen suorittamiseen ovat:
1. Ehkäisee käyttökatkoksia ja sovellusten epäonnistumisia
Kuormitustestauksen käyttö auttaa optimoimaan järjestelmän normaali- ja huippukuormitusaikoja varten ja tunnistamaan odottamattomasta kuormituksesta johtuvat mahdolliset käyttökatkokset.
Lisäksi web-kuormitustestaus auttaa valmistautumaan kasvuun tai epätavallisen suureen käyttöön, kuten verkkokaupan myyntiin tai uuden tuotteen lanseeraukseen.
2. Seuraa suoritusstandardeja
Kuormitustestaus tuottaa suorituskykytietoja, joita yritykset käyttävät sovelluskoodin ja infrastruktuurin muutosten arviointiin.
Organisaatio voi kehittää suorituskykytavoitteita analysoimalla liikennettä sekä keskimääräisinä että ruuhka-aikoina.
3. Kustannusten vähentäminen
Verkon käyttökatkos maksaa yritykselle keskimäärin 5 600 dollaria minuutissa (300 000 dollaria tunnissa). Lisäksi käyttäjät, jotka törmäävät usein toimimattomaan sovellukseen, eivät todennäköisesti enää koskaan palaa siihen.
Kuormitustestauksen kustannukset ovat jatkuvasti pienemmät kuin liiallisesta seisokkiajasta, sivuston saavuttamattomuudesta ja asiakkaiden tyytymättömyydestä aiheutuvista laajemmista menetyksistä aiheutuvat mahdolliset kustannukset.
4. Lisää tehokkuutta
Kuormitustestaus tunnistaa järjestelmän pullonkaulat, joiden poistamisen jälkeen järjestelmä voi toimia mahdollisimman tehokkaasti. Pullonkaulojen poistaminen mahdollistaa paremman suorituskyvyn, mutta myös järjestelmän skaalautuvuus paranee.
Tehokkaat ja nopeasti latautuvat sivut lisäävät käyttäjien tyytyväisyyttä ja parantavat sivuston hakusijoitusta.
5. Palvelutasosopimuksen noudattaminen
Kuormitustestauksen avulla organisaatio voi mitata suorituskyvyn laatua, jota käytetään SLA-sopimusten (Service Level Agreements) laatimiseen, jotka tarjoavat käyttäjille taatut perusarvot. Tiedot ovat hyödyllisiä myös vertailtaessa suorituskykyä sisäisiin vertailuarvoihin ja kilpailijoiden suorituskykyyn.
6. Kapasiteetin suunnittelu
Kuormitustestaus tarjoaa kapasiteetin suunnittelussa elintärkeää tietoa. Jos sovellus vastaa testiin myönteisesti, organisaatio voi suunnitella laajentamista ja ruuhkahuippuja sen mukaisesti. Jos sovellus tallentaa hyväksyttyjen parametrien ulkopuolisia mittareita – jos se ”epäonnistuu” kuormitustestissä – tiedot ovat silti hyödyllisiä stressitestinä.
(Kuormitustestin ja rasitustestin erosta kerrotaan lisää myöhemmin tässä oppaassa.)
Kuormitustestauksen haasteet ja rajoitukset
Kuormitustestaus tarjoaa huomattavia etuja, mikä näkyy sen laajassa käytössä useilla teollisuudenaloilla ja järjestelmissä. Kuten missä tahansa sovelluksessa, myös tässä on kuitenkin haittapuolia ja haasteita.
Haaste 1: Aineettomuus
Kuormitustestaus ei välttämättä ole näkyvin työkalu, sillä yksi sen keskeisistä eduista on mahdollisten ongelmien tunnistaminen ennen kuin ne ilmenevät live-tilanteessa. Monet sivuston käyttökatkoksiin ja sovellusten vikaantumiseen liittyvät kielteiset taloudelliset ja muut seuraukset eivät yksinkertaisesti koskaan toteudu.
Testityypit, joissa keskitytään ”mitä jos” -skenaarioihin, jäävät yleensä huomiotta. Vaikka kuormitustestaus voi auttaa käyttäjien ylikuormituksen jälkeisessä analyysissä, se on paljon hyödyllisempi organisaatiolle ennaltaehkäisevänä työkaluna.
Haaste 2: Monimutkaisuus
Sekä avoimen lähdekoodin että talon sisäisillä kuormitustestaustyökaluilla voi olla korkea kynnys päästä teknisellä tasolla. Organisaation koosta ja monimutkaisuudesta riippuen heillä ei ehkä ole työntekijöitä tai resursseja, joita he voisivat käyttää kuormitustestaukseen.
Poikkeuksena tähän ongelmaan on ammattimainen kuormitustestausalusta, kuten ZAPTEST-kuormitustestaus, joka keskittyy selkeän ja käyttäjäystävällisen käyttöliittymän tarjoamiseen. ZAPTEST LOAD tarjoaa mahdollisuuden luoda tallennettuja ja API-pohjaisia skriptejä, jotka suorittavat loppukäyttäjän liiketoimintaprosesseja ja mittaavat päästä päähän -tapahtumia koko System Under Load (SUL) -järjestelmän aikana.
Kuormitustestauksen tyypit
Saatavilla on useita erilaisia kuormitustestaustyyppejä, joiden avulla organisaatiot voivat räätälöidä testausstrategiansa budjetin, projektin monimutkaisuuden, työntekijöiden teknisen asiantuntemuksen ja muiden tekijöiden perusteella.
1. Manuaalinen kuormitustestaus
Manuaalinen kuormitustestaus on tilanne, jossa järjestelmää arvioidaan ilman automatisoituja kuormitustestaustyökaluja, eli simuloidut käyttäjät luodaan käsin.
Manuaalinen kuormitustestaus tarjoaa vain vähän, jos lainkaan, hyötyjä. Logististen vaikeuksien lisäksi testitulokset ovat yleensä epäluotettavia ja lähes mahdottomia toistaa. Ellei organisaatiolla ole erityistä tarvetta manuaaliseen testaukseen, sen on parempi keskittyä automaattiseen ohjelmistotestaukseen.
2. Sisäiset testausvälineet
Koska kuormitustestaus on jatkuva prosessi, erityisesti kasvun aikana, monet organisaatiot päättävät luoda omia kuormitustestausautomaatiotyökalujaan.
Räätälöidyt työkalut suunnitellaan alusta alkaen toimimaan organisaation erityissovellusten kanssa, mikä mahdollistaa työkalun ja järjestelmän helpon ja täydellisen integroinnin. Muita etuja ovat muun muassa asennusaikojen, huoltotarpeiden, käyttövirheiden ja koulutusajan väheneminen.
Siinä on kuitenkin muutamia haittoja. Sisäiset työkalut eivät välttämättä skaalaudu helposti käyttäjäkunnan kasvaessa. Lisäksi mukautettujen työkalujen kehittäminen vaatii aluksi paljon aikaa ja rahaa, minkä aikana organisaation on käytettävä muita testaustyökaluja tai ei lainkaan.
3. Avoimen lähdekoodin testausvälineet
Avoimen lähdekoodin testaustyökaluja on useita. Avoimen lähdekoodin ohjelmina niitä voi käyttää ilmaiseksi, ne tarjoavat vankkoja muokkausmahdollisuuksia ja niillä on vahva yhteisön tuki.
Suosittuja avoimen lähdekoodin testaustyökaluja ovat Locust, k6 ja JMeter. Jokaisen avulla voit simuloida suuria käyttäjäkuormia, tallentaa testiskriptejä, tarkastella suorituskykyraportteja ja paljon muuta.
Vaikka useimmat avoimen lähdekoodin työkalut ”hoitavat homman”, niissä voi olla haittoja, erityisesti yritysorganisaatioille. Avoimen lähdekoodin työkalut ovat usein monimutkaisia, eikä niissä ole kaupallisissa kuormitustestien automatisointityökaluissa havaittavaa käyttäjäystävällisyyttä. Lisäksi tuki rajoittuu yleensä wikeihin, foorumeihin ja vastaaviin, joiden käyttö hätätilanteissa on rajallista.
4. Yritysluokan kuormitustestausautomaatiotyökalut
Yritystestaustyökalut tarjoavat erilaisia ominaisuuksia, jotka skaalautuvat sähköisen kaupankäynnin sivustojen, palvelualustojen ja kaikenlaisten ammatillisten organisaatioiden tarpeisiin.
Yritysten kuormitustestauspalveluiden käytön etuja ovat:
- Kyky tuottaa valtavia määriä käyttäjäkäyttäjiä
- Kaappaus/toistomahdollisuus
- Kyky tukea useita protokollia
- Kyky palauttaa kadonneita asiakirjoja
- Testidokumentaation syöttäminen 1 napsautuksella
Suosittuja yritysten kuormitustestausyrityksiä ovat ZAPTEST ja niiden teknologiateollisuuden kumppani Gartner. (Automaatioalaa tuntevat saattavat tunnistaa ZAPTESTin myös heidän kiitetyistä robottiprosessien automatisointiin liittyvistä töistään.)
Lisäksi ZAPTESTin ILMAINEN painos tarjoaa maksuttoman LOAD-toiminnon, jonka avulla käyttäjät voivat tehdä suorituskykytestausta uusimpien ominaisuuksien ja porautuvan analyysin avulla.
Yritystason kuormitustestauksen automatisointityökalut tarjoavat luotettavia, tuettuja ratkaisuja, jotka eivät vaadi yhtä paljon teknistä osaamista kuin avoimen lähdekoodin työkalut. Useimmat yritysten kuormitustestauspalvelut toimivat tilausmallilla.
Mitä meidän pitäisi testata kuormitustestauksen avulla?
Automaattiset kuormitustestaustyökalut tuottavat tietoja, joita käytetään vastaamaan tarkasti useisiin tärkeisiin kysymyksiin:
- Kuinka monta käyttäjää sovelluksella (verkkosivustolla, järjestelmällä jne.) on tavanomaisena työaikana? Ruuhka-aikoina?
- Mihin sovelluksen osatekijöihin mikäkin käyttäjämäärä vaikuttaa?
- Mikä määrä käyttäjiä johtaa siihen, että verkkosivusto menee offline-tilaan?
- Milloin järjestelmän resurssit loppuvat?
- Kuinka nopeasti verkkosivusto latautuu?
Suorittamalla ei-toiminnallisia simulaatioita organisaatio saa tietoa nopeudesta, luotettavuudesta ja skaalautuvuudesta. Edellä mainittujen yksittäisten näkökohtien testaaminen luo kokonaisvaltaisemman kuvan, jossa pullonkaulat on helpompi tunnistaa.
1. Perussuorituskyky
Yritykset voivat käyttää kuormitustestausta sovelluksen perustason suorituskyvyn testaamiseen. Kun käyttäjien määrä kasvaa tasaisesti testin aikana, luodut tiedot osoittavat keskimääräisen yhteysnopeuden, tiedostojen latausajan ja viiveen perustason suorituskyvyn.
2. Vertailukohteen suorituskyky
Verkkosivuston kuormitustestillä kerätään myös vertailutietoja suorituskyvystä. Vaikka käsitteitä ”perustaso” ja ”vertailuarvo” käytetään usein samankaltaisina, niillä on olennaisia eroja. Vertailutestauksessa mitataan suorituskykyä kilpaileviin sivustoihin tai sisäisiin vaatimuksiin (kuten loppukäyttäjien SLA-sopimuksiin) verrattuna.
Kuormitustestauksen mittarit / tavoitteet
Yksittäiset organisaatiot kehittävät testausmittareita omien tarpeidensa mukaan. Yritystason automatisoitujen kuormitustestaustyökalujen yksi merkittävä etu on mahdollisuus mukauttaa seurattavia mittareita.
Useimmat organisaatiot seuraavat kuitenkin seuraavia mittareita automaattisen kuormitustestauksen avulla:
1. Vastausajat
Automaattisessa kuormitustestauksessa mitataan ensisijaisesti vasteaikaa. Kuinka kauan kestää järjestelmän vastaaminen, kun käyttäjä on lähettänyt pyynnön? (Yli 10 sekunnin vastausaika saa käyttäjän todennäköisesti poistumaan.)
2. Läpäisykyky
Läpimenoteho on lähetetyn ja vastaanotetun tiedon määrä. Kuormitustestauksessa se ilmaistaan yleensä osumina sekunnissa (hps) tai tapahtumina sekunnissa (tps).
3. Laitteistokohtaiset mittarit
Hitaat vasteajat voivat olla merkki laitteiston rajoituksista, joten kuormitustestaukseen kuuluu prosessorin käytön, käytettävissä olevan RAM-muistin, levyn I/O:n ja vastaavien laitteistopohjaisten toimintojen seuranta.
4. Tietokanta
Useimmat yritystason sovellukset vaativat toimiakseen useita järjestelmiä, mutta kun tietokantojen määrä kasvaa, myös pullonkaulojen syntymismahdollisuudet kasvavat. Kuormitustestausohjelmisto mittaa tietokannan lukuja ja kirjoituksia sekä avointen tietokantayhteyksien määrää.
Hämmennyksen selvittäminen
Monet ohjelmistojen laadunvarmistuskäytännöt ovat päällekkäisiä ja kietoutuvat toisiinsa. Jopa ne, joilla on ammattikokemusta, voivat olla hämmentyneitä seuraavista ohjelmistotestauspalvelujen tyypeistä.
Suorituskyvyn testaus vs. kuormitustestaus
Suorituskykytestauksella tarkoitetaan kaikkia käytäntöjä, joilla mitataan ohjelmistojärjestelmän vakautta, reagointikykyä, resurssitarpeita ja muita suorituskykymittareita erityisesti käyttäjäkokemuksen kannalta.
Kuormitustestaus on suorituskykytestauksen alaluokka. Muita yleisiä tyyppejä ovat:
- Kestävyystestaus – Kestävyystestaus, joka tunnetaan myös nimellä ”soak testing”, mittaa jatkuvaa, odotettua käyttäjäkuormaa. Kestävyystestaus havaitsee muistivuodot ja vasteaikojen pitkittyneen heikkenemisen.
- Piikkitestaus – Piikkitestaus simuloi käyttäjämäärän äkillistä, jyrkkää kasvua tai laskua.
- Eristystestaus – Järjestelmäongelmaan johtanut testi toistetaan syyn selvittämiseksi.
Suorituskykytestit ovat muita kuin toiminnallisia testejä, jotka suoritetaan yleensä lähellä kehityssyklin loppua tai sen jälkeen, kun kehitys on saatu päätökseen.
Stressitestaus vs. kuormitustestaus
Kuormitus- ja stressitestaus ovat monin tavoin samankaltaisia. Toistan vielä, että verkkosivuston kuormitustesti mittaa järjestelmän vastetta odotettuun liikennemäärään, kuten normaaliin tai huippuliikenteeseen. Suoritat kuormitustestauksen arvioidaksesi suorituskyvyn heikkenemistä ja sen suhdetta käyttäjäkokemukseen historiallisesti ennakoitujen kuormitusten aikana. Lyhyesti sanottuna kuormitustestausta ei ole suunniteltu rikkomaan järjestelmää.
Stressitestauksella on eri tarkoitus. Stressitestin aikana käyttäjien määrä kasvaa niin paljon, että suorituskyky heikkenee aina täydelliseen epäonnistumiseen asti. Stressitestissä ei vain mitata järjestelmän ”murtumispistettä”, vaan tarkastellaan myös, millaisen automaattisen palautumisen järjestelmä tekee.
Kehittäjät voivat tehdä stressitestin, mutta se voi tapahtua myös vahingossa ylemmän tason kuormitustestin aikana. Molemmissa testeissä kuormitustestauksen automatisointityökalut kuormittavat järjestelmää käytettävissä olevien resurssien yli, jolloin saadaan runsaasti arvokasta tietoa.
Toiminnallinen testaus vs. kuormitustestaus
Toiminnallinen testaus ja kuormitustestaus ovat suorituskykytestauksen tyyppejä, ja vaikka molemmat ovat välttämättömiä, niillä on eri tarkoitus.
Toiminnallisessa testauksessa määritetään, täyttääkö järjestelmän tietty osa ennalta määritetyt vaatimukset. Sitä käytetään paljon useammin kuin kuormitustestausta, ja siinä on selkeästi määritellyt parametrit ja vaiheet. Kuormitustestaus on arvaamattomampaa, ja tulokset voivat poiketa suuresti odotuksista.
Lisäksi kuormitustestaus riippuu täysin käyttäjäkuormituksesta, kun taas toiminnallinen testaus perustuu testidataan.
Tehokkaan kuormitustestin ominaisuudet
Vaikka yrityksen kuormitustestaus on tehokas työkalu, jos yritykset haluavat maksimoida testin tehokkuuden, niiden tulisi noudattaa näitä parhaita käytäntöjä.
1. Käyttää realistisia skenaarioita
Testausskenaarioiden tulisi muistuttaa mahdollisimman hyvin käyttäjien todellista käyttäytymistä. Harkitse käyttäjien käyttäytymistä huolellisesti. Miksi he käyttävät sovellustasi? Minkälaisilla laitteilla he käyttävät sitä?
Sisällytä verkkosivujen kuormitustestiin jonkin verran ennalta arvaamatonta käyttäytymistä, sillä todelliset käyttäjät toimivat odottamattomilla tavoilla, joita et voi ennakoida.
2. Ei ala nollasta
Monet testaajat aloittavat testin nollakuormalla ja lisäävät vähitellen simuloituja käyttäjiä. Vaikka menetelmällä on jonkin verran arvoa, älä unohda testata järjestelmää myös silloin, kun se on jo normaalin kuormituksen alaisena. Tämä auttaa välttämään vääriä positiivisia tuloksia ja johtaa tarkempiin tuloksiin, sillä järjestelmässäsi on harvoin, jos koskaan, nollakuormitus todellisessa maailmassa.
3. Käyttää todellisia tietoja
Kuten nämä aiemmat käytännöt osoittavat, testitulokset ovat sitä hyödyllisempiä, mitä laadukkaammat tiedot saadaan ennen testausta. Käytä realististen skenaarioiden kehittämisessä apuna seurantatyökaluilla aiemmin saatuja tietoja.
Kaksi hyödyllistä tietoluokkaa:
- Käyttäjätiedot: käytetyt laitteet ja selaimet, käytetyt reitit ja pudotuspisteet.
- Järjestelmätiedot: ensimmäinen bye-ajoitus, DOM-kuormitus
4. Analysointi ja toistaminen
Kuormitustestin jälkeen tiimisi haluaa tunnistaa pullonkaulat ja niitä vastaavan koodin. Testituloksista saatujen tietojen muuttaminen parannettaviksi mittareiksi ei ole aina suoraviivaista, erityisesti avoimen lähdekoodin ohjelmistojen kanssa, vaikka yrityksen kuormitustestauksen automatisointityökalut voivat tehdä prosessista paljon yksinkertaisemman ja tehokkaamman.
Vaikka kuormitustestaus on elintärkeää ennen tuotteen lanseerausta, se ei ole ”yksi ja valmis” -ratkaisu. Sen sijaan kuormitustestauksesta pitäisi tulla osa organisaation ketteriä ja automatisointikäytäntöjä.
Kuka osallistuu kuormitustestaukseen?
Vaikka kuormitustestaus tapahtuu lähellä kehityksen loppua, se edellyttää monien eri tiimien osallistumista, mukaan lukien tiimit, jotka aloittavat työnsä paljon aikaisemmin tuotteen elinkaaren aikana.
1. Kehitysinsinöörit
Insinöörit käyttävät integroituja kehitysympäristöjä testatakseen prosesseja kehityksen aikana, jolloin saadaan tietoja, jotka auttavat määrittämään kuormitustestausparametrit ennen julkaisua.
2. Muut testaajat
Ketterät ja toiminnalliset testaajat tarjoavat arvokasta tietoa sovelluksen tietyistä osista. Lisäksi ketteristä testeistä saadut tiedot auttavat kuormitustestauksessa käytettävien perusmittareiden määrittämisessä.
3. Loppukäyttäjät/sidosryhmät
Heidän tavoitteensa määräävät heidän käyttäytymisensä sovelluksessa. Heidän motiiviensa ymmärtäminen järjestelmässä auttaa testausskenaarioiden laatimisessa.
Kuormitustestausprosessi
Kuormitustestausprosessista voi tulla melko monimutkainen, varsinkin jos käytetään avoimen lähdekoodin tai talon sisäisiä testausohjelmistoja. Vaikka yritystason ohjelmistot yksinkertaistavat testausta huomattavasti, kuormitustestauksen keskeisten vaiheiden ymmärtäminen auttaa varmistamaan parhaat mahdolliset tulokset.
Vaikka kuormitustestauksen erityispiirteet vaihtelevat liiketoimintamallin, laitteiston, käyttäjäkunnan ja muiden yksilöllisten tekijöiden mukaan, useimmat testit noudattavat tätä perusrakennetta:
1. Tavoitteiden määrittäminen
Selkeät tavoitteet johtavat hyödyllisempiin tuloksiin. Määritä kriittisimmät testattavat sovellustoiminnot.
2. Perustason määrittäminen
Jos olet suorittanut aiempia testejä, käytä tietoja suorituskyvyn perustason luomiseen tulevaa testiä varten. Kaikki poikkeamat perustasosta edellyttävät lisätutkimuksia.
3. Kuormitustestiympäristön luominen
Testiympäristön tulisi heijastaa mahdollisimman tarkasti todellisia olosuhteita, joten sinun on testattava samankaltaisilla koneprofiileilla, verkkoarkkitehtuurilla, palomuureilla, tietokannoilla ja muilla vastaavilla laitteilla.
4. Kuormitusskenaarioiden kehittäminen
Yleisin tapa luoda kuormitusskenaario on yhdistää skriptaaminen ja tallennettu käyttäjän toiminta. Kukin skenaario sisältää mittauksia, tapahtumia ja validointipisteitä.
5. Testien suorittaminen
Kun olet määrittänyt peruslinjat, kuormitusskenaariot ja luonut testiympäristön, testit ovat valmiita suoritettaviksi. Voit suorittaa useita skenaarioita samanaikaisesti ja säätää käyttäjätasoja, sijainteja, selaimia ja muita tekijöitä.
6. Testin jälkeinen tutkimus
Suoritettu testaus tuottaa vaikuttavan määrän tietoa, mukaan lukien vasteajat, latausajat, virheet, palvelimen suorituskyky ja paljon muuta. Useimmiten tietojen analysointiin kuuluu skenaarioiden suorittaminen uudelleen ongelman rajaamiseksi ja ydinongelman tunnistamiseksi.
Avain onnistuneeseen tietojen tulkintaan on selkeiden tavoitteiden asettaminen etukäteen ja laaja dokumentointi analyysin aikana.
Esimerkkejä kuormitustesteistä
Kuormitustestausta käytetään lukuisissa skenaarioissa, myös tilanteissa, jotka monet yritykset jättävät huomiotta. Esimerkkejä ovat:
1. Verkkosivut
Suurten tiedostojen lataaminen pidemmän aikaa testaa verkkopohjaisen sovelluksen ominaisuuksia.
2. Palvelin
Palvelimia testataan kuormitustestissä joko ajamalla useita sovelluksen instansseja tai useita eri sovelluksia samanaikaisesti.
3. Kiintolevyt
Tietojen lukeminen ja kirjoittaminen toistuvasti koettelee järjestelmän kiintolevyjen rajoja.
4. Sähköpostipalvelin
Sähköpostipalvelimia testataan simuloimalla käyttäjien toimintaa. Useimmissa sähköpostipalvelimen kuormitustesteissä simuloidaan vähintään 1 000 käyttäjää.
5. Sovellusohjelmointirajapinta
API-kuormitustestaus suoritetaan käyttöjärjestelmille, ohjelmistokirjastoille, ohjelmointikielille, laitteistoille ja muille.
6. Tulostin
Tulostimen kuormitustesteissä tulostinjonoon lähetetään kasvava määrä töitä. Se on harvoin fyysinen testi, joka vaatii laitteiston käyttöä.
Kuormitustestitapaukset
Kuormitustestaus hyödyttää kaikentyyppisiä ja -kokoisia organisaatioita. Joitakin kuormitustestauksen toteuttamiseen liittyviä reaalimaailman tapauksia ovat:
1. Myynninedistämistapahtumat
Suuri verkkokauppasivusto haluaa arvioida verkkosivustonsa kapasiteettia suuren alennusmyynnin, kuten mustan perjantain alennusmyynnin, varalle. Toinen esimerkki olisi leluyritys, joka aikoo laajentaa verkkosivustoaan tarjoamalla uuden, odotetun lelun.
2. Julkiset verkkoportaalit
Testaus auttaa valmistelemaan suuria portaaleja käytön dramaattisiin muutoksiin, esimerkiksi kun verohallinnon portaalin käyttö lisääntyy verokauden aikana. Samanlainen esimerkki olisi verkkoportaalien kuormitustestaus, joka auttaa korkeakoulua valmistautumaan verkkokirjoittautumiseen lukukauden alussa.
3. Palvelimen testaus
Kun palvelin altistetaan suurelle liikennemäärälle, yritys voi määrittää, riittääkö sen infrastruktuuri tuleviin laajennuksiin. Palvelimen testaus on myös olennainen osa hyvin toimivan verkkosivuston ylläpitoa.
4. Tiedostonsiirron testaus
Kuormitustestauksella voidaan mitata tiedostojen siirtonopeutta kiintolevylle ja kiintolevyltä, esimerkiksi kannettavan tietokoneen ja pöytäkoneen tai kannettavan tietokoneen ja kannettavan tietokoneen välillä. Se voi muun muassa auttaa organisaatioita määrittämään, mitä laitteistoja työntekijöille tulisi hankkia.
Kuinka kirjoittaa kuormitustesti
Kuormitustestauksen oppiminen voi tuntua pelottavalta jopa kokeneista ohjelmistoalan ammattilaisista, mutta se on paljon suoraviivaisempaa kuin monet ymmärtävät.
Ohjaavan asiakirjan luominen on kuormitustestitapauksen kehittämisen ensimmäinen vaihe. Kuormitustestaussuunnitelmasi ei tarvitse olla monimutkainen, jopa luettelosta voi olla apua, mutta siinä olisi hahmotettava testin olennaiset osat alusta loppuun.
Varmista, että kuormitustestaussuunnitelma sisältää seuraavat osat:
1. Tavoitteet ja vaatimukset
Miksi teette tämän testin? Mitä erityisiä mittareita testaatte ja millaiset tulokset määrittävät, millainen vastaus tuotantoa varten tarvitaan?
2. Rajat
Kuvaa järjestelmän tai selaimen kuormitustestauksen laajuus. Suoritatko komponenttitestiä vai kokonaisvaltaista testiä? Mitä liikennekuormitusta testaat (huippu-, normaali- vai jokin muu kuormitus)?
Laajuus voi muuttua testin aikana, erityisesti jos kohtaat odottamattoman tapahtuman. Aluksi on kuitenkin syytä määritellä selkeät testausrajat.
3. Työmäärä
Sinun on annettava yksityiskohtaiset tiedot kuormitusprofiilista, joka koostuu seuraavista osista:
- Tärkeimmät liiketoimet
- Kuormituksen jakautuminen tapahtumaa kohti
- Tapahtuman ajoitus
Kuormitusprofiilin/työkuorman mallin kehittäminen on kiistatta kuormitustestauksen tärkein osa, koska se määrittää, kuinka hyvin testisi heijastaa järjestelmän käyttäytymistä todellisten käyttäjien painon alla. Älä unohda toteuttaa selainten kuormitustestausta, sillä et tiedä, mitä selainta kävijät käyttävät.
4. Palvelimen terveys
Kuvaile suunnitelmasi palvelinten valvomiseksi testin aikana. Sinun on valvottava sekä sovelluspalvelimia että palvelimia, joita käytetään kuormitustestien suorittamiseen (vaikka jälkimmäinen ei yleensä ole merkittävä ongelma, kun käytetään yrityksen kuormitustestityökaluja).
5. Testausskenaario
Lopuksi haluat kuvata testiskenaarion, joka on yleissuunnitelmasi testitapausten toteuttamiseksi.
6. Esimerkkejä kuormitustestitapauksista
Yleisiä esimerkkejä yritystasolla käytettävistä tapauksista ovat:
- API-kuormitustestaus sen määrittämiseksi, käsitelläänkö maksut alle kahdessa minuutissa kolmannen osapuolen järjestelmän kautta.
- Selainten kuormitustestaus sen määrittämiseksi, onko käyttäjien latausnopeudessa yli 10 sekunnin eroja selaimesta riippuen.
- Komponenttitesti uuden verkkosivuston ominaisuuden toimivuudesta, kun sitä käytetään ruuhkahuippujen aikana.
Huomaa, että edellä mainituissa skenaarioissa on selkeästi määritellyt tavoitteet, rajat ja mittarit.
Kuormitustestaustyökalut
Yritysorganisaatiot kehittävät joskus omia kuormitustestaustyökaluja, mutta se on prosessi, joka vaatii sekä aikaa että investointeja, joten se on pikemminkin pitkän aikavälin strategia. Kun mukautettuja työkaluja kehitetään, organisaation on käännyttävä joko ilmaisiin tai yritysten automatisoituihin kuormitustestityökaluihin.
Organisaatioita kehotetaan valitsemaan kuormitustestaustyökalut huolellisesti, vaikka ne aikoisivat käyttää niitä vain väliaikaisesti. Ei ole harvinaista huomata, että yrityksen tai avoimen lähdekoodin verkkosivuston kuormitustestityökalut tarjoavat kaikki tarvittavat ratkaisut, joten ei ole tarvetta kehittää omaa versiota.
1. Ilmaiset kuormitustestaustyökalut
Monet organisaatiot harkitsevat ensin avoimen lähdekoodin testaustyökaluja. Vaihtoehdoista ei ole pulaa, mukaan lukien seuraavat:
- JMeter – Java-sovellus, joka perustuu yrityksen LoadRunner-työkaluun.
- Taurus – Työkalu, jonka avulla voit kirjoittaa omia kuormitustestejäsi.
- k6 – Kokeneille kehittäjille suunnattu kuormitustestaustyökalu, joka keskittyy back-end-infrastruktuuriin.
- SoapUI – SoapUI-kuormitustesti käyttää Simple Object Access Protocol -protokollaa. Tästä sovelluksesta on saatavilla myös kaupallinen versio.
- Locust – Kuormitustestaustyökalu, joka tunnetaan suhteellisesta käyttäjäystävällisyydestään ja vähäisestä resurssitarpeestaan.
- ZAPTEST FREE Edition tarjoaa kustannuksettoman suorituskykytestauksen LOAD Studion kautta, jossa käyttäjät voivat käyttää tallennettuja ja API-pohjaisia skriptejä ja jopa korreloida toiminnallisen testauksen kanssa.
Vaikka avoimen lähdekoodin testaustyökaluilla ei ole suoria rahallisia kustannuksia, niiden valitseminen on silti merkittävä sitoumus mille tahansa yritykselle, joten on tärkeää ymmärtää sekä hyödyt että mahdolliset haitat.
Ilmaisten kuormitustestityökalujen edut
Ilmaisilla kuormitustestityökaluilla on useita merkittäviä etuja.
1. Alhaiset kustannukset
Avoimen lähdekoodin ohjelmistojen suurin etu on, että ne ovat ilmaisia. Yritykset, erityisesti uudemmat yritykset, joilla on rajalliset resurssit, voivat suorittaa kuormitustestejä ilman taloudellista sitoutumista.
2. Joustavuus
Avoimen lähdekoodin ohjelmistoja tarkistetaan, päivitetään ja parannetaan usein yhteisön toimesta. Jos sinulla on erityisiä testaustarpeita, lisäosia voi olla saatavilla.
3. Nopeammat päivitykset
Avoimen lähdekoodin ohjelmistot kehittyvät yleensä nopeammin kuin kaupalliset ohjelmistot. Virheiden korjaukset, tietoturvapäivitykset, uudet ominaisuudet ja paljon muuta ilmestyvät yleensä tasaisemmin ja nopeammin.
Ilmaisten kuormitustestaustyökalujen rajoitukset
Vaikka ilmaisilla kuormitustestaustyökaluilla on merkittäviä etuja, yritysten tulisi huomioida mahdolliset haitat.
1. Tuen puute
Jos käyttäjä törmää ongelmiin avoimen lähdekoodin kuormitustestausohjelmiston käytössä, hänen on löydettävä vastaus itse käyttämällä yhteisöllisiä lähteitä, kuten foorumeita ja wikejä. Toisin kuin yritysohjelmistoissa, ilmaisilla työkaluilla ei ole omaa tukitiimiä, jolle voisi soittaa tai lähettää sähköpostia.
2. Monimutkaisuus
Käyttäjäystävällinen käyttö ei ole aina tärkeä prioriteetti avoimen lähdekoodin kuormitustestiohjelmistoissa. Monissa sovelluksissa oletetaan, että käyttäjällä on melko pitkälle kehitetty kehitystietämys. Kuormitustestauksen tekeminen avoimen lähdekoodin ohjelmilla on yleensä vaikeaa.
3. Käyttäjän kuormitusrajoitukset
Avoimen lähdekoodin testausohjelmistoissa on usein ongelmia muistin ja suorittimen kanssa, kun suoritetaan suuren kapasiteetin kuormitustestejä. Yritystason yritykset saattavat huomata, että ilmainen kuormitustestaus ei yksinkertaisesti ole tarpeeksi tehokas heidän tarpeisiinsa.
Yrityksen kuormitustestaustyökalut
Yritystestaustyökalut ovat maksullisia tuotteita, jotka on suunniteltu suurten ja monimutkaisten organisaatioiden tarpeisiin. Ne ovat usein tilauspohjaisia, ja niiden hinnat vastaavat simuloitujen käyttäjien määrää ja muita testin yksityiskohtia.
Valittavana on monia yritysten kuormitustestausyrityksiä, mutta johtava yritys on ZAPTEST, joka on alan johtava hyperautomaatiotilan johtaja, ZAPTEST tunnetaan yhtenä parhaista kuormitustestaustyökaluista käyttäjäystävällisen ohjelmistonsa ja rajoittamattoman tukipalvelun ansiosta.
Yritysten kuormitustestausyritysten tarjoama laatu ja ominaisuudet voivat vaihdella merkittävästi, joten organisaatioita kehotetaan harkitsemaan jokaista palveluntarjoajaa huolellisesti ennen tilaamista.
Yritystestaustyökalujen edut
Vaikka erityiset ominaisuudet ja helppokäyttöisyys vaihtelevat tietyn tuotteen mukaan, parhaat kuormitustestaustyökalut jakavat seuraavat edut.
1. Helppokäyttöisyys
Avoimen lähdekoodin ohjelmistoissa voi olla sekava käyttöliittymä, monimutkaisia prosesseja ja yleistä välinpitämättömyyttä käyttäjää kohtaan. Yritystyökaluissa korostetaan kuitenkin intuitiivista ja suoraviivaista käyttökokemusta.
2. Asiakastuki
Yritystestauksen merkittävä etu on koulutetun tuen saatavuus. Asiantuntijat, jotka on koulutettu paitsi kuormitustestaukseen, myös omistamasi kuormitustestaajan erityispiirteisiin, ovat valmiita auttamaan ongelmien ratkaisemisessa. Yrityspalvelussa on tuki, jonka tavoitat 24/7.
3. Luotettavuus
Yritystestaustyökalut on suunniteltu tukemaan yrityksiä, joilla on laajamittaisia toimintoja, joissa mikä tahansa käyttökatkos voi johtaa merkittäviin tulojen ja asiakastyytyväisyyden menetyksiin. Nämä työkalut on suunniteltu tuottamaan käyttökelpoisia ja tarkkoja tietoja, jotka soveltuvat pitkän aikavälin suunnitteluun ja päätöksentekoon.
Yritystestaustyökalujen rajoitukset
Vaikka yritystestaustyökalut tarjoavat useita etuja muihin työkaluihin verrattuna, niihin liittyy myös joitakin mahdollisia rajoituksia.
1. Kustannukset
Suurin haittapuoli ovat kustannukset. Yritysten kuormitustestaus toimii tilausmallilla, ja kustannukset skaalautuvat testin aikana luotujen virtuaalikäyttäjien määrän mukaan.
Viime kädessä pullonkaulojen poistaminen ja sovellusten seisokkien estäminen tekevät kuormitustestauksesta kustannustehokkaamman vaihtoehdon ajan mittaan, mutta organisaatiolle voi silti aiheutua merkittäviä alkukustannuksia. Sitä vastoin vakiintuneet kuormitustestaussovellukset, kuten ZAPTEST, tarjoavat yhden kiinteäkustannuksisen ohjelmisto- ja palvelutilauksen, jossa on rajoittamaton käyttö ja lisenssit… tämä malli lieventää jatkuvasti kasvavia testauskustannuksia yritysten skaalaessa.
2. Oppimiskäyrä
Vaikka yritystyökalut ovat ylivoimaisesti käyttäjäystävällisin vaihtoehto kuormitustestaukseen, jopa parhailla kuormitustestaustyökaluilla on ainakin jonkin verran oppimiskäyrää. Tiimin jäsenten, mieluiten niiden, joilla on kokemusta koodauksesta, on käytettävä aikaa työkalun hyödyntämiseen. Jälleen kerran johtavat kuormitustestaustyökalut, kuten ZAPTEST, lieventävät tätä haittaa tarjoamalla matalan koodin alustan, joka ei vaadi koodaustaitoja ja jota useimmat ihmiset organisaatiossa voivat käyttää, eivätkä vain kehittäjät.
Milloin sinun pitäisi käyttää yritys- vs. ilmaisia kuormitustestityökaluja?
Ilmaisilla kuormitustestityökaluilla on paikkansa monissa organisaatioissa. Ne ovat kustannustehokkain vaihtoehto, minkä vuoksi ne ovat suosittuja aloittavien yritysten ja muiden sellaisten yritysten keskuudessa, joilla on rajalliset resurssit.
Ilmaiset työkalut ovat myös tehokas tapa parantaa yksilön taitoja. Esimerkiksi testaaja voi suorittaa SoapUI-kuormitustestin, ei pelkästään järjestelmän testaamiseksi vaan myös parantaakseen ymmärrystään avoimen lähdekoodin työkalusta.
Useimmissa kaupallisissa sovelluksissa ja suurissa organisaatioissa parhaat kuormitustestaustyökalut ovat yritystason tuotteita, kuten ZAPTEST ja vastaavat alan johtavat yritykset. Ne tarjoavat luotettavuutta, tarkkuutta ja turvallisuutta, jotka suojaavat sekä yritystäsi että loppukäyttäjiäsi. Lisäksi niitä on paljon helpompi käyttää kuin ilmaisia työkaluja, ja ne tarjoavat vertaansa vailla olevaa toiminnallisuutta.
Kuormitustestauksen tarkistuslista
Yksi tärkeä avain onnistuneeseen kuormitustestaukseen on organisointi. Monet yritykset ovat havainneet, että testauksen suorittaminen tarkistuslistan avulla auttaa tiimejä pysymään tehtäviensä tasalla. Seuraava tarkistuslista toimii hyvin lähtökohtana yritystason organisaatioille.
1. Verkkopalvelin
- Onko kaistanleveys riittävä pullonkaulan muodostumisen estämiseksi?
- Pystyykö järjestelmä käsittelemään riittävästi tapahtumia sekunnissa?
- Onko sinulla riittävästi verkkopalvelimia, jotta voit hallita kiireisiä ja joutavia uhkia?
2. Isäntä
- Onko verkkoliitännöissä CPU-, muisti- tai levytilaongelmia?
- Mitä prosesseja isäntätietokoneessa suoritetaan?
3. Sovelluspalvelin
- Mikä on CPU:n käyttö, joka tarvitaan kullakin kuormitustasolla?
- Vuotaako järjestelmä muistia eri kuormitustasoilla?
- Jakavatko sovelluspalvelimet kuorman oikein?
Vaikka tarkistuslistaa kannattaa muokata organisaatiosi erityistarpeisiin sopivaksi, nämä peruselementit auttavat varmistamaan, että järjestelmän suorituskykyyn ja toimintaan liittyvät kriittiset näkökohdat tulevat huomioiduksi.
Päätelmä
Kuormitustestauksella on olennainen merkitys minkä tahansa ohjelmistokehitysprojektin onnistumiselle. Jotta kuormitustestauksen automatisointityökalujen kykyjä voitaisiin todella hyödyntää, organisaatioiden tulisi kehittää kumppanuus yritystason kuormitustestausyrityksen, kuten ZAPTESTin, kanssa.
Kuormitustestaustyökalujen avulla organisaatiosi voi tunnistaa mahdolliset palveluhäiriöt ja pullonkaulat, mikä johtaa tehokkuuden maksimointiin, seisokkiaikojen lyhentämiseen, tulojen kasvuun ja käyttäjäkokemuksen parantamiseen.