JMeter

Allikas: Kuutõrvaja
Redaktsioon seisuga 24. jaanuar 2011, kell 16:42 kasutajalt Jj (arutelu | kaastöö)

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

Jmeter-1.gif

Testi kirjeldamine

Parema klõpsu Test Plan peal valime "add" ja lisame "Thread Group"

Oluline seadistada Thread Group alt paremeetrid

  1. Number of Htreads (users)
  2. 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

Jrequest.png

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

Kõik mis patternile mittevasatavad lisatakse Summary Repordis 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.

Tulemuste analüüs