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.

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.  

mvn verify -pl fsk-test -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, port og docid direkte på komandolinjen kan man også gøre dette.

mvn verify -pl fsk-test -PextITs -DFSK_TEST_HOST=<host> -DFSK_TEST_PORT=<port> -DFSK_TEST_DOCID=<docid>

I ovenstående kommando skal <host> erstattes med adressen på det eksterne miljømiljøet<port> med portnummeret, servicen svarer på (typisk 8080), 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

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:

...