jmeter

JMeter

Sunday, March 8th, 2009 | Uncategorized | No Comments

Bár amikor terheléses teszt kell, mindenhol fel szokott az Apache Jmeter neve is merülni, huzamosabban most használtam előszőr.

Ami tetszett:

Felépítés: Tetszett, ahogy ki vannak találva az egyes építőkockkák, amikből tesztet lehet csinálni. Külön van protokoll függő meghajtó, külön vannak logikai elemek, külön mindenféle eredményt analizáló elem. A GUI-n ezekből az elemekből lehet viszonylag könnyen terheléses tesztet összerakni. Mégha nem akartam volna a meglévő komponenseit használni, mint keretrendszer, az interface-eket akkor is valószínű használtam volna.

Dokumentáció: a honlapon elég tisztességesen le van írva minden a használatról, és a használható elemekről.

Szállított elemek: okos ötletek  vannak az alapból szállítótt teszt elemekben: pl. tud olyat, hogy egy webszerver logja alapján ismétli meg a hívásokat a szererre, és így valós felhasználói viselkedést lehet szimulálni vele. Van olyan elem is, amivel hagyományos Java kódot tud meghajtani, amibe már azt írunk, amit csak szeretnénk.

Könnyen kiterjeszthető: Egyszerű interfacek, használható absztrakt osztályok. Csak leszármaztatunk egy osztályt, bedobjuk a lib/ext könyvtárba, és már is megjelenik a mi építőkockánk is. (Durván végig scanneli a classpathnak ezt a részét osztályról osztályra, ezért a saját komponensünk függőségeit érdemes a sima lib könyvtárba tenni, mivel abban nem kell keresni a leszármaztatott JMeteres osztályokat, és túl nagy osztályok az indítást nagyon vissza tudják fogni.)

Ami nem tetszett:

Szállított elemek: A szállított elemek sokszor elég szegényesek. Főleg a grafikonokat megjelenítő elemek elég fapadosak (a managerednek nem lesz elég szép), de pl. a JMS Sampler-ben is voltak gondjaink a Correlation ID beállítása körül, illetve a külső paraméterek kezelése is kissé fapados.

Paraméterek átadása: paraméterezett teszteket csinálni két féle képpen lehet: User Definied Variableket használva, és System propertyket. Az előbbik vannak kényelmesebben integrálva a rendszerben, az utóbbiakkal lehet rendesen paraméterezni command line-ból indítot teszteket. A kettő között van átjárás, de nem túl kezes.

Gyanús hibák: Nem volt idő végigdebuggolni, de volt egy olyan jelenség, hogy sok-sok szálon nyomtam épp egy web service-t, valószínű hibás paraméterekkel. Feltehetően loggolni akarta a hibákat, én csak azt láttam, hogy teljesen megállt minden. jconsole azt mondta, hogy a sok szál általában vár egy lock-ra, ami valami apache logos osztályban keletkezett (Illetve iszonyú lassan mindig eg yszál loggolt, amíg a többi várt a szemaforra)). Magyarul a logolás szinkronizációja miatt kicsit megroppant az egész teszt.

Összességében nem rossz, a használatáról az egyik koléga mesélte még rémtörténetet: ha jól emlékszem egy IIOP-s vastag klienset sikerült velük meghajtani, úgy, hogy előtte AOP-vel le loggolták a kéréseket a kliensben, és utána ezeket az adatokat táplálták be a JMeterbe, ami megterhelte a rendszert velük. Szép dolgokat építeni belőle.

Tags:

Blogroll