Page History
...
Dette dokument beskriver en testvejledning for Organdonorregister-servicen. Det forudsættes at projektet er bygget og installeret, og med denne vejledning kan man således afvikle integrations- og performancetests og derved kontrollere robustheden.
Ændringslog
Version | Dato | Ændring | Ansvarlig |
|---|---|---|---|
| 1.0.2 | 2018-08-31 | Ny release | Trifork |
Integrationstests
| 1.0.13 | 2019-25-09 | Ajourført | Trifork |
Integrationstests
...
Selve integrationstestene består af et Create- og dernæst , Get- IDWS kald.
Lokal afvikling
Ved lokal afvikling af integrationstests starter Maven automatisk en Wildfly-server op, konfigurerer den med de nødvendige ressourcer, deployer servicen og endeligt køres integrationstestene på dette miljø.
For at afvikle integrationstests lokalt skal Maven-profilen ITs aktiveres, og dette gøres med følgende Maven kommando:
mvn clean install -PITs
Bemærk at dette først bygger hele projektet og afvikler unit-tests; se installationsvejledningen for vejledning til afvikling af disse. Under afvikling af unit-tests opretter Flyway automatisk de database-tabeller der også anvendes i den lokale integrationstest.
Når Maven når til integration-test-fasen, og ITs-profilen er aktiveret, sker der følgende:
- En Wildfly-server startes automatisk op og der inkluderes servicens Wildfly-modul med konfigurationsfiler.
- wsproxy komponentens konfigurationsfiler kopieres ind i Wildfly's configuration-mappe.
- En MariaDB database-driver deployes.
- Der installeres 2 datasources, der begge peger på samme database som beskrevet under afvikling af unit-tests.
- wsproxy komponenten deployes.
- Selve servicen odr-service-wildfly deployes.
- Integrationstestene køres.
Afvikling mod eksternt miljø
og Delete-IDWS kald og skal afvikles mod den deployede komponent med test-opsætning.
Når servicens er installeret og deployet på et eksternt miljø, kan korrekt deployment verificeres ved at køre integrationstestene på det eksterne miljø. Dette gøres ved at anvende følgende Maven-kommando, som aktiverer Maven-profilen extITs og specificerer adressen på det eksterne specificerede miljø:
mvn verify -pl odr-service-wildfly -PextITs -DitAddress=http://127.0.0.1:8080/odrI ovenstående kommando erstattes kan 127.0.0.1:8080 med erstattes med adressen på det eksterne eksternt miljø.
Bemærk at dette kræver, at projektet er fuldt bygget, for at lokale dependencies er på plads.Bemærk endeligt at integrationstestene opretter data, der ikke slettes igen, dvs. afviklen er altså ikke transaktionel.
Hvis man ønsker at køre integrationstests lokalt, kan man starte et lokalt udviklingmiljø op med kommandoen
docker-compose -f compose/development/docker-compose.yml up -- buildBemærk: Det kan tage op mod et minut før containeren er klar. De nødvendige databaser bliver oprettet automatisk. Bemærk at projektet skal bygges før ovenstående kommando fungerer, dette gøres med følgende kommando, ligeledes fra projektroden:
mvn clean install -DskipTests=trueUnit-tests
Vejledning til afvikling af unit-tests er beskrevet i installationsvejledningen.
...
Rapporten dækker selve servicen, dvs. koden i modulet odr-service. Codecoverage er minimum 80%. Der henvises til JaCoCo testrapporten for yderligere information vedr. coverage. Bemærk at JaCoCo ikke kan verificere linjer, der kaster exceptions, og at sådanne linjer altid vil stå som missed.
Manuel test af alarm endpoints på lokal service
Det følgende beskriver, hvordan man manuelt aftester (aktivere fejlen i) de forskellige alarmer, der findes på alarm endpointene.
Notifikationsjob
Alarm endpoint: curl -v http://localhost:8081/odr-operations/odr-send-digitalpost-notifikation/alarm
| HealthIndicator | Fremgangsmåde |
|---|---|
| DBHealthIndicator | Start compose docker stop development-odrdb-1 Kald alarm endpoint Resultat: Der er ingen forbindelse til databasen med JNDI navnet java:jboss/datasources/ODR-DS. |
| PersonInformationHealthIndicator | Ændre property personinformation.url til f.eks http://test3-cnsp.ekstern-test.nspop.dk:8080/stamdata-personinformation/2024/08/01 Start compose Kør integrationstest OrganDonorNotificationIT Kald alarm endpoint Resultat: Person Information servicen har fejlet flere gange end tilladt i en given periode. |
| DigitalPostHealthIndicator | Ændre property digitalpost.service.url til f.eks http://test3-cnsp.ekstern-test.nspop.dk:8080/digitalpost/2024/05/29/send Start compose Kør integrationstest OrganDonorNotificationIT Kald alarm endpoint Resultat: Digital Post Adapter servicen har fejlet flere gange end tilladt i en given periode. |
| StackedOperationsService (organDonorNotificationService) | Start compose docker stop development-stamdata_db-1 Kald alarm endpoint |
| NewestNotificationHealthIndicator | Sæt en kombination af digitalpost.notification.odr.startdate og digitalpost.notification.odr.alarm.date.period, der gør at startdate ligger længere tilbage end period Start compose Kald alarm endpoint Resultat: Der er ikke færdigbehandlet en dato den: 22-01-2025. Den er ældre end 3 dage gammel. |
| ErrorNotificationHealthIndicator | Som for DigitalPostHealthIndicator Resultat: Der ligger totalt 3 notifikationer med status Error. |
| StatusNotificationHealthIndicator | Sæt en kombination af digitalpost.notification.odr.startdate og digitalpost.notification.odr.alarm.date.period, der gør at startdate ligger længere tilbage end period Start compose Kør integrationstest OrganDonorNotificationIT Opdater database:
Kald alarm endpoint Resultat: Der ligger 1 notifikationer fra den 22-01-2025 med status Pending. |