Chronos 1.0 - værktøj til test af performance
Chronos er et open source projekt, som kan forhindre at dit udviklingsprojekt står med en rigtig ubehagelig overraskelse ved lanceringen. Nemlig dårlig performance.
I Lakeside er vi lead developers på Chronos komponenten. En komponent der dels kan visualisere performancemålinger, og dels kan kontollere om "performance-trenden" går den forkerte vej og dermed advare udviklings- eller vedligeholdelsesprojekter i god tid. Komponenten er netop blevet releaset i en version 1.0 og er dermed udgivet i en stabil og afrundet version.
Projektet er forankret på open source "projekt-hotellet" Codehaus og der kan spores stor interesse for projektet.
Men hvorfor teste performance?
Mange projekter har problemer med systemets samlede ydelse eller performance. De ved det bare ikke og når de finder ud af det, er det for sent. På det tidspunkt er systemet lanceret, forventningsfulde brugere er blevet skuffede og beklagelser og feber-redninger står i vejen for hinanden.
Rigtig mange projekter tester slet ikke deres ydelse. Og hvis de tester bliver det ofte gjort i en meget lille skala og slet ikke systematisk. Her synes strategien at være at krydse fingre og håbe på det bedste, når nye funktioner lanceres i produktion.
Nogle projekter forsøger at forhindre dette ved at lægge en stor-skala testfase ind i projektet kort før lanceringen. Og de finder typisk også en række performance-problemer. Men problemet er stadig det samme: det er dyrt at fikse problemer, der måske stammer fra fejl i arkitekturen eller centrale komponenter. Fejl som selv lange nætter og desperate patches ikke kan løse på bæredygtig vis.
Det behøver ikke være sådan. Test af ydelse og systemperformance kan godt gøres enkelt, systematisk og med en agil tilgang. Chronos er netop sådan en tilgang, der bidrager til at forenkle og billiggøre performance-test og dermed undgå dyre og frustrerende fejl.
Hvad kan Chronos bidrage med?
Der er flere eksisterende værktøjer, der kan bistå med test af performance. Både open source (fx JMeter eller Grinder) og der findes naturligvis også en lang række kommercielle værktøjer. Chronos er et bud på et open source-værktøj, der tager en lidt anden tilgang til det at teste performance. Chronos anvender agile test-principper for tidlig feedback og løbende kvalitetssikring. En tilgangn der handler om at teste hele tiden og gøre det løbende istedet for en "nu-er-vi-næsten-færdige-lad-os-se-om-det-springer-i-luften"-tilgang.
Formålet med Chronos er ikke at være et alt-omfattende værktøj, der sigter efter at opfylde alle behov for performancetests. Chronos baserer sig på test-værktøjet JMeter og har som opgave at gøre det så enkelt som muligt at integrere performancetest tidligt i projektets livscyklus. Strategien er simpel: test vedvarende og test løbende. Denne strategi betyder måske nok, at det ikke er muligt at teste alt og finde alle problemer. Men strategien sikrer at I finder de fleste problemer i så god tid, at I er istand til at løse dem tidligt og inden fx arkitekturen låses fast eller centrale komponenter implementeres, hvis det viser sig at være her flaskehalsen er.

Det er nemlig sådan, at når du har defineret en performance test suite, der baserer sig på JMeter og passer til dit system og det du vil teste, så kan du lade Chronos køre sine performancetests som en del af den natlige build. På den måde har du en chance for at fange "performance-tyvene" på fersk gerning umiddelbart efter de er blevet indført: der ligger en performance-rapport klar til dig i din indbakke om morgenen med resultaterne af nattens test. Chronos hjælper dig med at analysere resultaterne fra dine test, så du faktisk forstår, hvad du har fundet frem til.
For øjeblikket understøtter Chronos kun værktøjet JMeter, men det er ambitionen at også andre værktøjer som fx Grinder skal have den pæne indpakning, som Chronos er.
Hvordan kommer du i gang med Chronos?
- Du læser vores whitepaper om kvalitetssikring af software med tests
- Du udarbejder dine performancetests, således at de kan køres af JMeter. Det kan fx være som http-kald eller java-kode, der kalder en anden server eller et stykke forretningslogik.
- (Valgfri) Forbered test-data, som kan hjælpe med at skabe et passende load på fx databasen.
- Brug Chronos til at aktivere performance-testen og til at visualisere resultatet af testen som en del af din Maven-build.
Besøg http://mojo.codehaus.org/chronos/ hvor du kan downloade værktøj, dokumentation og eksempel-scripts, så du hurtigt kommer i gang med at indføre kontinuérlige tests i dine udviklingsprojekter.

Fakta om Chronos
Kontakter hos Lakeside:
Jan Riis | jri@lakeside.dk | +45 2160 7252
JMeter er et værktøj til at udføre performance-tests. Chronos downloader JMeter som en del af installationen.
Codehaus er et "kode-hotel", hvor Open Source-projekter checker in og bor.
Chronos er udgivet under Open Source-licensen MIT, der er én af de allermest liberale licenstyper, hvor der stort set ingen restriktioner er for den videre anvendelse af kildekoden.
Vi har skrevet et whitepaper om hvorfor og hvordan med performance-test.
