Page History
...
Udvikling af performance test
Performance testen foregår vha. et test framework udviklet af Arosii (version 2.0.0).
Performance testen består af 2 dele:
- Udvikling af selve testen. Dette foregår i JMeter og kræver både java udvikling og efterfølgende opsætning i JMeter.
- Udførsel af testen. Dette foregår vha. en række shell scripts på en master og flere slave maskiner.
Udvikling og opsæt er beskrevet i nærværende dokument, mens den faktiske udførsel af testen er beskrevet i NAS Testvejledning.
Performance testen skal passe til NAS servicens snitflade for Notification Broker og Pullpoint. Ændres disse er det også nødvendigt at ændre performance testen.
I det følgende antages at koden er hentet ned fra SVN: https://svn.nspop.dk/svn/components/performance/trunk/ samt at man har docker installeret i sit udviklingsmiljø. JMeter skal også være tilgængelig.
Kildekodens struktur
Kildekoden indeholder også performance test til andre services, men i nedestående er NAS servicens dele trukket frem.
|
modules: indeholder kildekoden til de forskellige test
- NotificationBrokerBackgroundJob anvendes til baggrundsbelastning under pullpoint testen. Det startes og stoppes med start.sh og stop.sh der findes under "tests" under performance testens afvikling.
- GUI klasserne anvendes til indtastning af test parametre (CreateIDListRequestSamplerGui anvendes ikke i den nuværende performance test, men gemmes til evt. fremtidig brug)
- Sampler klasserne anvendes til at lave det faktiske web service kald (CreateIDListRequestSampler anvendes ikke i den nuværende performance test, men gemmes til evt. fremtidig brug)
- GenerateTestdataSql anvendes til at skabe et sql script, som kan anvendes til at lave baggrundsdata til pullpoint testen
- pullpoint.txt er en eksempel fil, skulle man i en fremtidig test gøre brug af fil import muligheden
tests: indeholder de generede test filer
- distributioner
- planer
- baggrundsbelastning start.sh og stop.sh. (Testframeworket tjekker under testkørslen for om disse script findes, og gør de det, udføres de.)
Versionskontrol
Test versionen styres vha. af revision i trunk. I dokumentet "testvejledning" afsnit performance test angives, hvilken version af performance testen der anvendes med en given version af NAS servicen.
Udvikling af test
NAS servicens performance test består af ovennævnte java sourcer. Disse vedligeholdes i takt med at NAS servicens snitflader for notification broker og pullpoint ændres og skal performance testes.
Lokal test kan gøres ved at bygge projektet og starte JMeter op.
Baggrundsbelastningenjobbet (NotificationBrokerBackgroundJob) testes ved at køre fra eksempelvis eclipse. Eksempel på parametre: http://localhost:8090/notificationbroker TESTNAS-TOPIC-PERFORMANCE-01 idtype01 40 1000 3000
Baggrundsdata klassen testes og anvendes ved at køre fra eksempelvis eclipse. Eksempel på parametre: pullPoint 1000 3000 idtype01 TESTNAS-TOPIC-PERFORMANCE-01 30808460SOSITEST
Generering af testfiler
Når man har udviklet og bygget test projektet, startes JMeter. Herefter kan en eksisterende performance test åbnes og køres herfra. Eller en ny kan laves.
Det følgende skærmbillede viser den skærm, som er udviklet i NotificationBrokerRequestSamplerGui med data hentet fra en gemt test:
...
Skærmbilledet for PullPointRequestSamplerGui ser følgende ud:
...
Når man starter testen (den grønne pil) aktiveres et kald mod den service, der er konfigureret under 'Host configuration' og hermed aktiveres koden fra NotificationBrokerRequestSampler eller PullPointRequestSampler respektivt.
Resultatet kan ses under 'View Result Tree', hvor både kald og svar kan ses.
Den endelige kørsel af performance testen skal bruge en test plan (skabes når ovenstående test gemmes) samt en distribution, der indeholder 'Distribution' delen af ovenstående. De gemmes henholdsvis i tests/nas/src/test/jmeter/templates/testplans og tests/nas/src/test/jmeter/templates/distributions
Start.sh scriptet opdateres med korrekt parametre liste til baggrundsbelastningsjobbet.
Tredje parts moduler og software stack
...

