Versions Compared

Key

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

...

Dette dokument beskriver en kort byggevejledning og derudover en testvejledning for Det testvejledning for Det Fælles Stamkort 1.5-servicen. Der anvises også en metode til mere detaljeret verifikation og fejlfinding.Projektet bygges med Maven og kræver Java 8 samt en MariaDB-installation for at kunne afvikle testsDet 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

2.0.0

2018-08-27

Initialt dokument

Trifork

Kort byggevejledning

For blot at bygge projektet og dets deployable (war-fil) anvendes følgende Maven kommando:

mvn clean install -DskipTests

Bemærk at kommandoen skipper unit-tests og integrationstests, men Maven-eksekveringen starter alligevel en lokal Wildfly-server op, deployer servicen og lukker Wildfly-serveren ned igen. Denne sideeffekt skal blot ignoreres.

Projektets deployables ender i target-mappen under de respektive moduler.

Afvikling af unit-tests

For at afvikle unit-tests skal en MariaDB-database være tilgængelig.

I udviklingssammenhæng og ved unit-tests kan man nøjes med én databasebruger og én database. Disse kan oprettes vha. scripterne recreate_service_user.sql og recreate_database.sql som er lokaliseret under fsk-service/etc/db/. Derefter kan Flyway automatisk initialisere databasen under Maven byg.

Datasourcen i testafviklingen auto-konfigureres vha. Spring Boot som anvender database-credentials fra fsk-service/src/test/resources/application.properties. De default værdier matcher værdierne i de førnævnte SQL-scripts.

Projektet skal være fuldt bygget for at lokale dependencies er på plads, og dernæst kan unit tests afvikles med følgende Maven kommando:

mvn clean test

Der genereres desuden en testrapport.

Afvikling af integrationstests

Integrationstest kan både afvikles på en lokal Wildfly-server og på et eksternt miljø.

Selve integrationstesten består af et kald til OnDemand webservicen.

Lokal afvikling

For at afvikle integrationstests lokalt anvendes følgende Maven kommando:

mvn clean install

Bemærk at dette først afvikler unit-tests.

Når Maven når til integration-test-fasen starter den selv en Wildfly-server op, hvor den automatisk installerer og deployer følgende ting:

  • Inkluderer servicens Wildfly-modul med konfigurationsfiler
  • Deployer MariaDB database-driver
  • Installerer 2 datasources, der begge peger på samme database som beskrevet under afvikling af unit-tests
  • Deployer selve servicen fsk-service.

Afvikling mod eksternt miljø

...

2.0.92019-25-09AjourførtTrifork

Integrationstests

Integrationstest skal afvikles mod den deployede komponent med test-opsætning.

Selve integrationstesten består af et kald til OnDemand webservicen (kald af service og status) samt kald af servicens slettejob (kørsel  af job og status).

Når servicens er installeret og deployet, kan korrekt deployment verificeres ved at køre integrationstestene. Dette gøres ved at anvende følgende Maven-kommando, som aktiverer Maven-profilen extITs  specificerer miljø:

For opsætningen af miljøet er der lavet 3 maven profiler.  

Code Block
mvn verify -PextITs -P<miljø>

Der er oprettet en test person i DTG med cpr. 0509900267. Denne persons FSK stamkort docid kan så benyttes i testen se nedenstående tabel for de konkrete værdier af docid. 

miljødocid
devurn:sds:fsk:stamkort:00000000-0000-0000-0000-000000000003
test11.2.208.176.43210.8.10.12^3f718e08-7940-4fcd-a460-1769ac82416c
test21.2.208.176.43210.8.20.12^317b5758-90c7-45eb-be03-1aa7dedb4121


Ønsker man at angive host, porte og docid direkte på komandolinjen kan man også gøre dette.

Code Block
mvn verify -pl fsk-test -PextITs -DFSK_TEST_HOST=<host> -DFSK_TEST_PORT=

...

<port1> -DFSK_CLEANUP_TEST_PORT=<port2> -DFSK_TEST_DOCID=<docid>

I ovenstående kommando skal <host> erstattes med adressen på det eksterne miljømiljøet<port> med <port1> med portnummeret, servicen svarer på (typisk 8080), og <port2> med portnummeret slettejobbet svarer på (typisk port 8081) og <docid> med et dokument-id, som findes i RegistryIndex-tabellen i det pågælende eksterne testmiljøs FSK database.

Bemærk at dette kræver, at projektet er fuldt bygget, for at lokale dependencies er på plads.Bemærk også at Maven-eksekveringen alligevel starter en lokal Wildfly-server op, deployer servicen og lukker Wildfly-serveren ned igen. Denne sideeffekt skal blot ignoreres..

Hvis man er uheldig og kommer til at afvikle testen med f.eks. Java 11 får man en fejl om at attributten soapenv:mustUnderstand ikke må være der. Det kan få en til og tro at det er FSK og eller testen der er noget i vejen med. Problemet er dog højest sandsynligt at man ikke anvender Java 8 når man afvikler testen.

Der er tilføjet en bunke integrationstests til at teste hjørnetilfælde mellem SKR og FSK. De tager lidt tid at køre og kan derfor deaktiveres med -DSKIP_CORNER_CASE_TESTS=true

For at kunne afteste slettejobbet, er det nødvendigt at have en person, som har været afdød i et år. I en overgangsperiode (fra testen blev lavet til et år efter) er dette ikke muligt. Derfor skrives property deletion.save.deceased i development docker-compose setup'et til 15 dage. Efter den 5/7 2025 kan denne overskrivning fjernes, og development setup'et kan køre på værdien i property filen, som er et år.

Codecoverage

Efter afvikling af unittests genereres en testrapport med Maven-plugin’et JaCoCo. Rapporten kan ses ved at åbne følgende fil i en browser:

fsk-servicetestreport/target/site/jacoco-aggregate/index.html

Dette gælder for selve fsk-service servicen og dets funktionalitet, som refereres til modul: fsk.  Samt slettejobbet.

I aktuelle version af fsk-service er codecoverage 80%. Der henvises til JaCoCo testrapporten for yderligere information vedr. coverage.

...