# Anvendervejledning Nærværende vejledning beskriver de nødvendige skridt for at installere, konfigurere, udføre og indsamle testdata fra en performance-test af Corona Borger Status (CBS) snitfladen. ## Indledning Performancetesten tager udgangspunkt i en fil med CPR numre (linje-baseret) og en fil med hostnavne. CPR numrene bliver fordelt ligelidt på de hosts, der er involveret i testen, altså findes i hostnavne-filen. ## Forbehold Testen har som udgangspunkt den distribution af hit eller miss på cache som er angivet ved ramp up. Denne distribution ændrer sig undervejs, dvs. over tid øges antallet af hit på cachen. ## Konfigurationsdetaljer Certifikater skal være tilgængelig på alle maskiner i setup'et. - `vaultDir`: Angiver den sti, hvor alle certifikater ligger i. - `idpVault.name`: filnavnet på det keystore, der bruges til JWT. - `idpVault.password`: kodeordet til førnævnte keystore. - `signingVault.name`: filnavnet på det keystore, der bruges til signering af omveksling request til STS for JWT. - `signingVault.password`: kodeordet til førnævnte keystore. - `sts.jwt.location`: den fulde URL til omvekslingssnitfladen fra JWT til identityToken for STS'en. - `sts.jwt.audience`: en audience til førnævnte omveksling. - `sts.jwt.kid`: en kid til førnævnte omveksling. - `sts.dgws.location`: den fulde URL til STS DGWS signerings snitfladen. - `cbs.location`: fulde URL til CBS servicen. - `nas.topicExpressionDialect`: Topic expression til at finde relevant topic i NAS. - `nas.pullpointFactoryEndpoint`: den fulde URL til pull point factory for NAS. - `nas.pullpointEndpoint`: den fulde URL til pull point for NAS. - `nas.subscriptionManagerEndpoint`: den fulde URL subscription manager i NAS. - `nas.maxPullSize`: det maksimale antal beskeder, der aftages fra NAS i et pull. - `nas.topic`: den valgte NAS topic. - `nasAccess.organizationName`: Organisation, der benyttes ved signerings request til STS. - `nasAccess.organizatonCode`: Organisation kode, der benyttes ved signerings request til STS. - `nasAccess.systemName`: System navn, der benyttes ved signerings request til STS. - `nasAccess.vault.name`: filnavnet på det keystore, der benyttes til signerings request til STS. - `nasAccess.vault.password`: kodeord til førnævnte keystore. - `drv.numThreads`: antallet af tråde der anvendes til samtidige requests mod CBS. - `drv.requestWindowSize`: størrelsen af det vindue, et request i en tråd forventes at være. - `drv.dist`: kommaseparateret par af procent hist og procent miss for den fordeling, der anvendes under kørsel af testen. - `drv.rampUpOnly`: `true` eller `false`, om der anvendes ramp up eller ikke. *Optionelle konfigurationer* - `test.http.connman.max.total`: maksimale antal samtidige HTTP forbindelser testen kan bruge (standard: 200). - `test.http.connman.stsjwt.max`: maksimale antal samtidige HTTP forbindelser for kald på JWT til IDWS omvekslingssnitfladen på STS'en (standard: 95). - `test.http.connman.cbs.max`: maksimale antal samtidige HTTP forbindelser for kald til CBS (standard: 95). -`test.http.connman.stsdgws.max`: maksimale antal samtidige HTTP forbindelser til kald på STS DGWS signeringssnitflade (standard: 10). - `test.nas.poll.initial.delay`: antal millisekunder før NAS spørges om jobID'er (standard: 0). - `test.nas.poll.period`: antal millisekunder mellem forspørgsler til NAS på jobId'er (standard: 500). - `test.feed.initial.delay`: antal millisekunder før tilstanden af køen af personumre tjekkes og evt. genopfyldes (standard: 0). - `test.feed.period`: antal millisekunder mellem tjek af køen af personnumre (standard: 500). - `test.transit.queue.max.drain`: maksimale antal elementer der tages af transit køen på én gang (standard: 1000). - `test.stats.initial.delay`: antal sekunder før første statisik logges (standard: 60). - `test.stats.period`: antal sekunder mellem hver statistik logning (standard: 600). - `test.sts.timing`: `true` eller `false` afhængig af svartidsmåling af STS ønskes i loggen. - `test.skip.cbs`: `true` eller `false` afhængig af om kald til CBS skal gennemføres. ## Udførelse af test Det forudsættes at Java er installeret på alle hosts nævnt i host-filen. Følgende udføres på master maskinen. Det forventes at der ligger en `hosts.txt` fil, som indeholder hostnavne for all maskiner i setup'et. ``` ./master/run.sh ``` - `CONFIG_FILE` - `CPR_FILE` - `JAR_FILE` Hver maskine vil få en del af `CPR_FILE`, hvilket ovenstående script vil sørge for at fordele. Det forudsættes at brugeren der udfører ovenstående kommando kan ssh/scp til øvrige maskiner uden interaktion. ## Indsamling af testresultater Under afvikling af testen vil der skrives til en log fil, hvordan requests mod STS opfører sig, altså der logges svartid for alle kald mod STS. Hver host vil have en fil, `perftest.log` der skal samles op for at der kan foretages en samlet vurdering af resultatet. Denne bruges kun, når Splunk opsamling ikke er tilgængelig.