Jämförda versioner

Nyckel

  • Dessa rader lades till.
  • Denna rad togs bort.
  • Formateringen ändrades.

...

Introduktion

Lasttester hittas i folden katalogen .Testscript / Load TestloadTest

Lasttester utförs i QA miljön. Följande lasttester har definierats

...

Vid prestandamätningar vill vi hitta hur många anrop / sekund tjänsteplatformen virtualiseringsplattformen klarar att släppa igenom innan svarstiderna ökar. 

  1. Som referens, mät svarstider vid låg belastning.
  2. Öka antal request / s tills man märker av ökad belastning i form av ökade svarstider (ca +20%) och / eller ökad CPU (ca 60%). 
    1. Dokumentera antal req/s, svarstid (medel + 95 kvantil) samt CPU.
  3. Öka antal request / s tills man märker av ökad belastning i form av ökade svarstider (ca +50%) och / eller ökad CPU (ca 60%).
    1. Dokumentera antal req/s, svarstid (medel + 95 kvantil) samt CPU.

Test 1 - Prestanda vid Happy days scenario

...

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:

  1. Default (2.2.6) är med payloadloggning, styrs via konfig enligt SKLTP VP - Konfiguration#Konfiguration-VP2.2.2ochsenare.
    Not: här måste vi ha lite större payload än vad VP's Ping-tjänst ger, borde vara en dedicerad tjänst för test men vi använder just nu Kalendercentralen (https://www.kalendercentralen.se/Schedulr/).
    Uppsatt att ge ca 2.3kb stort respons (requesten är < 1kb). 
  2. Prestanda utan Payloadloggning med loggning till Active MQ
  3. Prestanda med Payloadloggning utan loggning till Active MQ
  4. Prestanda utan Payloadloggning utan loggning till Active MQPayloadloggning på eller av.
  5. Loggning till ActiveMQ på eller av.

Köra Gatling tester

Kör Gatling tester enligt den generella instruktionen. Kompletterande information till punkt 1:

...

Checka ut VP's gatling script och kopiera innehållet i request-bodies och simulations till din gatling installation

...

dessa enligt nedan:

  1. Lasttestet som skall köras heter LoadTestVP.
  2. 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
  3. 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.

  4. Testerna baseras på ett antal testproducenter. (TBD, uppdatera instruktioner var dessa teststubbar finns tillgängliga)

    Kalendercentralen demotidbok

    1. Testproducent deployad i VP för tidbokning Ping
    2. Testproducent deployad i VP för Pingpå MockServern för tjänsten GetSubjectOfCareSchedule
    3. Testproducent deployad i FKAdaptern på MockServern för tjänsten sendMedicalCertificateAnswer SendMedicalCertificateAnswer

  5. Finns inte alla tillgängliga kan man uppdatera gatling scriptet genom att plocka bort den som saknas.

    Kodblock
    //setUp(scnAdam.users(adam_noOfUsers).ramp(rampUpTimeSecs).protocolConfig(httpConf))
    //setUp(scnErik.users(erik_noOfUsers).ramp(rampUpTimeSecs).protocolConfig(httpConf))
    //setUp(scnKc.users(erik_noOfUsers).ramp(rampUpTimeSecs).protocolConfig(httpConf))
    setUp(scnPing.users(ping_noOfUsers).ramp(rampUpTimeSecs).protocolConfig(httpConf))
    //setUp(scnSendMedicalCertificateAnswer.users(sendMedicalCertificateAnswer_noOfUsers).ramp(rampUpTimeSecs).protocolConfig(httpConf))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

...

  1. Konfigurationsfel
  2. 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) :

    Inget format
    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