Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Unittests: Unittests tester, at de individuelle/isolerede enheder (klasser) i kildekoden virker som de skal.

  • Test med cronjob (Integration): Start og status endpoints for cronjobs anvendes til at starte jobs og verificere, at den samlede service fungerer.

Andre typer af tests (ikke en del af udviklingen af CRA):

  • Performancetest: Verificerer, at servicen performer med hensyn til svartider og er stabil under et specifikt load.

  • Endurancetests, der verificerer at servicen fungerer under længerevarende belastning og ikke har f.eks. memory leaks, som kan udføres i stagning/produktionslignende miljø.

...

Unittests og tilhørende udregning af testcoverage udføres som en integreret del af byg af komponenten (se i øvrigt CRA - Guide til udviklere).

Integrationstest

Der er i sommeren 2023 oprettet integrations test for CRA, i første omgang til FetchIntermediateCraJob. 

Integrationstestene er implementeret vha Cucumber og JUnit i modulet cra-integrationstest, og er beregnet til afvikling mod en kørende udgave af CRA.

Afvikling af Integrationstests aktiveres via Maven ved følgende kommando:

mvn verify -Pintegration-test

Det kræves at følgende properties angives ved afvikling af integrationstesten

Property

Beskrivelse

fetchintermediatecert.start.endpoint

Endpoint for FetchIntermediateCraJob

fetchintermediatecert.status.endpoint

FetchIntermediateCraJob status


For nemheds skyld er der angivet følgende profiler (kan angives med -P), med variabeldefinitioner for et givent miljø

localDet dockerbaserede udviklingsmiljø for CRA. Dette kan startes op med docker compose. Se udvikler guiden for CRA.
test1CRA på NSP Test1 miljø. NB! dette kan ikke køres på test systemet, da snitfladerne ikke er til rådighed pt.
test2CRA på NSP Test2 miljø. NB! dette kan ikke køres på test systemet, da snitfladerne ikke er til rådighed pt.


Således kan man afvikle integrationstestene mod det lokale docker setup med følgende kommando:

mvn verify -Plocal,integration-test

Testrapporter kan for integrationstesten genereres som html og json og kan ses i /target/cucumber-reports/cucumber.html og /target/cucumber-reports/cucumber.json

Test med Cronjobs

CRA har tidligere ikke haft en integrationstest. Og de nuværende test kan ikke kontrollere resultatetet som sådan, andet end kald gik godt. Pt findes der kun integrationstest for FetchIntermediateCraJob

I stedet kan servicens samlede funktionalitet verificeres ved at tjekke docker loggen for cron-jobs, når servicen er deployet lokalt med docker-compose. Og log filer kan testes for fejl.

Der henvises i øvrigt til CRA - Guide til udviklere for udførselsvejledning.

CRL Stub

Når  CRA servicen skal hente crl filer, så kalder sender den et http request. Det er dog ikke altid at disse services der  udstiller CRL filerne er tilgængelige.
For at undgå afhængigheder  til andre services, så er det nu muligt at placere CRL filer i modulet cra-crl-stub.

For at CRA servicen sender sit request til stubben, så skal følgende gøres:

  • Hvis vi antager at den CRL file vi skal bruge finde på denne http adresse: http://crl.XYZ.com/ABC.crl
    1. I docker-compose tilføjes crl.XYZ.com som alias

      Code Block
      languageyml
      titledocker-compose.yml
      crl-stub:
        networks:
          cra_net:
            aliases:
              - crl.XYZ.com
    2. Under compose/configuration/crl/resources oprettes en folder 'crl.XYZ.com'
    3. Filen ABC.crl downloades fra http://crl.XYZ.com/ABC.crl og placeres i folderen 'compose/configuration/crl/resources/crl.XYZ.com/'
    4. Applikationerne skal genstartes vha. "docker-compose down" og  "docker-compose up"