VP - Lasttester
Introduktion
Lasttester hittas i katalogen ….loadTest
Lasttester utförs i QA miljön. Följande lasttester har definierats
Testscenario vid prestandamätningar
Vid prestandamätningar vill vi hitta hur många anrop / sekund virtualiseringsplattformen klarar att släppa igenom innan svarstiderna ökar.
- Som referens, mät svarstider vid låg belastning.
- Öka antal request / s tills man märker av ökad belastning i form av ökade svarstider (ca +20%) och / eller ökad CPU (ca 60%).
- Dokumentera antal req/s, svarstid (medel + 95 kvantil) samt CPU.
- Öka antal request / s tills man märker av ökad belastning i form av ökade svarstider (ca +50%) och / eller ökad CPU (ca xx%).
- Dokumentera antal req/s, svarstid (medel + 95 kvantil) samt CPU.
Test 1 - Prestanda vid Happy days scenario
Syfte med testet
Syftet med detta test är att mäta prestanda vid korrekta anrop. Vi vill även kunna säkerställa att prestanda inte försämras mellan två releaser.
Testinstruktion
Innan testet utförs måste det definieras vilken konfigurationen av VP som är intressant för mätningarna. Följande inställningar påverkar prestandan:
- Payloadloggning på eller av.
- Loggning till ActiveMQ på eller av.
Köra Gatling tester
Kör Gatling tester enligt den generella instruktionen - ny. Kompletterande information till dessa enligt nedan:
- Lasttestet som skall köras heter LoadTestVP.
- Parametrar till VP tester. Anges genom flaggan -D<parameter>=<värde> vid start av testerna.
- noOfUsers - anger hur många simulerade användare vi skall använda, default är 10
- baseUrl - anger URL för vp-tjänsterna, default är https://localhost:20000
Testerna förutsätter att miljön under test är konfigurerad för de tester som körs, dvs routing och behörighet till testproducenter är korrekta.
Testerna baseras på ett antal testproducenter.
- Testproducent deployad i VP för Ping
- Testproducent deployad på MockServern för tjänsten GetSubjectOfCareSchedule
- Testproducent deployad på MockServern för tjänsten SendMedicalCertificateAnswer
Finns inte alla tillgängliga kan man uppdatera gatling scriptet genom att plocka bort den som saknas.
Scenarios.scn_SendMedicalCertificateAnswerHttps.inject(rampUsers(Conf.noOfUsers.toInt) over (Scenarios.rampUpTimeSecs seconds)).protocols(Conf.httpConf), Scenarios.scn_GetSubjectOfCareScheduleHttps_2.inject(rampUsers(Conf.noOfUsers.toInt) over (Scenarios.rampUpTimeSecs seconds)).protocols(Conf.httpConf), Scenarios.scn_PingOkSimulationHttps.inject(rampUsers(Conf.noOfUsers.toInt) over (Scenarios.rampUpTimeSecs seconds)).protocols(Conf.httpConf), Scenarios.scn_GetSubjectOfCareScheduleHttps.inject(rampUsers(Conf.noOfUsers.toInt) over (Scenarios.rampUpTimeSecs seconds)).protocols(Conf.httpConf),
Test 2 - Prestandamätning vid felfall
Syfte med testet
Syftet med detta test är att mäta prestanda vid de vanligaste felfallen. Vi vill även kunna säkerställa att prestanda inte försämras mellan två releaser.
Följande felfall ska observeras:
- Konfigurationsfel
Routingfel
TAK setup (routing entry till en annan maskin i samma subnät som VP-instansen, men med en port som inte används, vi ska använda riktiga HTTP-anrop (utan genvägar i lokal-nätverksstack, men till en host vi "äger" så att network-latency inte skiljer mellan mätningar (som det skulle kunna göra med en extern host) :Logisk adress: PRODUCER-NOT-AVAILABLE Adress: http://192.168.16.211:9090/non-existing-service Beskrivning: En fejkad adress till ett känt nät