JMeter
Sisukord
Sissejuhatus
JMeter http://jakarta.apache.org/jmeter/ tarkvara abil saab testida kuidas veebiserver ja sinna paigaldatud rakendus käitub kui talle esitada erinevaid http päringuid. Lisaks päringute esitamisele võimaldab JMeter analüüsida testi käigus kogutud andmeid, mh esitada tulemust graafiliselt.
JMeter on java programm.
Tarkvara kasutamiseks ettevalmistamine
JMeter tarkvara sobib kasutada praktiliselt suvalise operatsioonisüsteemiga, kuhu on paigaldatud graafiline kasutajaliides ning kus on olemas JVM (Java Virtual Machine, st Java). Kasutamiseks tuleb kopeerida JMeter veebikohast nt kompileeritud .tar.gz fail, pakkida sobivasse kataloogi lahti, seada JAVA_HOME keskkonnamuutuja
# cd /usr/local # tar zxf jakarta-jmeter-2.3.2.tgz
JMeter käivitamiseks tuleb öelda
$ export JAVA_HOME=/tee/java/kataloogi $ /usr/local/jakarta-jmeter-2.3.2/bin/jmeter.sh
Testi kirjeldamine
Parema klõpsu Test Plan peal valime "add" ja lisame "Thread Group"
Oluline seadistada Thread Group alt paremeetrid
- Number of Threads (users)
- Ramp-Up period (in seconds)
Seejärel lisame selle alla Kontrolleri. Valime "Thread Group" peal parema klahvi alt või menüüst
edit > add > Logic Controllers > Simple Controller
Lisame HTTP testi "HTTP Request"
edit > add > Sampler > Httpd request
Valime selle hiirega ja lisame HTTP Request alla serveri nime ja urli.
Ehk kui palju kasutajaid ja millise intervalliga
Tulemuste tekstilisel kujul nägemiseks tuleb lisada Thread Group alla "view results in table"
edit > add > listener > view results in table
Ja soovides vaadata ka graafikuid tuleb öelda
edit > add > listener > graph results
Simuleerides ühe kasutaja F5 vajutamist võib kasutada HTTP Cookie Mangeri, kui simuleerides paljusid erinevaid kasutajaid pole seda vaja või on ta pigem lisatüliks.
Sisufilter ehk Response Assertion
Probleem võib tekkida, et veebiserver ja veeb annavad isegi vastuse kuid suure koormusega mingid komponendid tegelikult ei tööta
Soovides kontrollida vastuslehtedest mingi teate olemasolu. Näiteks vaadata, et ega seal oleks olemas mingi vajalik tekst. Tuleb tekitada "Response Assertion"
edit > add > assertion
Valida Text Response substring, contains ja "Pattern to Test" kasti tuleb lisada nt "Teretulemas veebilehele" vms mis veebilehel normaalsel töötamisel kasutajal kuvatakse.
Kõik mis patternile mittevasatavad lisatakse Summary Report tabelis Error % juurde.
Võimalik on otsida ka erroreid nt lülitades "substring" ja "not" sisse kuid veeb võib tugeva koormuse alla anda palju erinevaid veateateid ja neid kõiki defineerida ajamahukas.
Suvaline muutuja
Võimalik on kasutada ka muutujat "Random Variable", ehk anda veebilehele ette erineva kasutaja id nt. See on hea selleks, et iga päring mis veebilehele tehakse oleks erinev ning nii ei saaks andmebaasimootor või proxy lihtsalt ühte päringut cacheda.
Random Variable juures tuleb määrata esiteks Muutuja nimi ja teiseks Minimum ja Maximum value ehk väärtus millede vahel neid numbreid genereeritakse.
Kasutamiseks tuleb HTTP Request blokis määrata Path real ${muutuja} kujul. Näiteks
/veebileht/index.php?token=${muutuja}
Teste on võimalik peale koostamist salvestada XML formaati ja kasutada hiljemgi.
Testi käivitamine
Run > Start
tulemused ilmuvad Graph Result ja Summary Report alla, võimalus on salvestada tulemused ka faili ning isegi kõik päringute vastused.
Üks olulisemaid numbreid on Error % ja Troughput mis näitab suur oli veaga vastuseid ja palju päringuid sekundis läbi läks.