Versions Compared

Key

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

...

Derudover kode uden forretningslogik


Integrationstest

Der findes en række forskellige integrationstests og for alle gælder det at de validere som validerer at komponenterne er deployet korrekt og understøtter følgende use cases:

  • Registrering af en log hændelse (kræver Kafka er til rådighed)
  • Opslag på log hændelser via CPR

Der findes en række test classer som kan benyttes i forskellige sammenhæng. Vær opmærksom på at der findes 2 moduler som anvendes med test af integration for øje.

  1. shared-test - integrationtest af registrering og medhjælp opslag

Nedenstående er en liste over shared-test:

...

IntegrationTest

...

Standard og default integrationstest. Kontrollere at miljøerne er kørende, kalder Registration og derefter Lookup.

...

MinLog1IntegrationTest

...

Standard integrationstest mod MinLog1. Kontrollere at miljøerne er kørende, kalder Registration og derefter Lookup.

Derudover findes en række "hjælpeværktøjer" som ikke er tiltænkt afvikling i CI miljøer - men som kan anvendes i forbindelse med fejlsøgning:

...

../shared-test/RunMultipleIntegrationTests

...

Afvikler alle tests baseret på plain xml-filer – se :
…/resources/lookup/test-xml/
…/resources/registration/test-xml/

...

../shared-test/dk.nsi.minlog2.testtools.lookup.ExternalLookupTest

...

Afvikler enkeltstående test – request findes i lookup-snippet.xml

...

../shared-test/dk.nsi.minlog2.testtools.registration.ExternalRegistrationTest

...

Afvikler enkeltstående test – request findes i registration-snippet.xml

...

../shared-test/dk.nsi.minlog2.testtools.XMLValidator.XMLValidator

...

Validerer korrekt xml fra filen xml-tovalidate.xml

ønskede use cases.

Integrationstests findes under modulet 'integrations-tests'.

Afvikling

Der er lavet følgende

Senest er tilføjet et maven modul (under integrations-tests). Dette skal gradvist udbygges og ovenstående integrationstest skal løbende overføres til dette maven modul.

Målet at at samle alle MinLog2 integrationstests et sted og gøre det muligt at afvikle disse vha jUnit ved aktivering af sædvanlige Maven target: mvn test. For at køre integrations tests er det profilen integration-test der skal være aktiveret. 

Der er lavet to konfigurationer, som kan aktiveres ved at tilføje miljøangivelse i kaldet af maven.

TestmiljøBeskrivelseAfvikles
devKonfigurationerne passer til det miljø, der startes op under udvikling i docker (/minlog/compose/development)mvn test -Pintegration-test -Denv=dev test
test1Konfigurationerne passer til NSP TEST01 miljøetmvn test -Pintegration-test -Denv=test1 test

Afvikling

En del af integrationstestene kan afvikles fra en kommandolinje mod komponenten på en kørende JBoss server. Testen kan enten afvikles med et id kort som parameter eller selv danne et id kort ved at kalde test STS.
Det er muligt at læse konfigurationen fra en fil eller med parametre til kommandolinjen:

...

  1. Tilret parametre i ../shared/shared-test/src/main/configuration/<env>.properties
  2. Byg med 'mvn clean install –P<env>
  3. Kør integrationstesten fra kommandolinjen i ./shared-test/ med 'mvn exec:java@minlog1' eller 'mvn exec:java@minlog2' 
test2Konfigurationerne passer til NSP TEST02 miljøetmvn test -Pintegration-test -Denv=test2

Properties

Når man afvikler integrationstests, så har man nu mulighed for at styre dele af afviklingen vha. properties.

PropertyBeskrivelseDefaultAfvikles/Eksempler
debug.nspSoap

Under afvikling af integrationstest, så skrives alle output og input igennem NspSoapClient klassen ud i loggen. Det fylder meget og kan støje ift. de oplysninger der ellers logges.

Derfor er det muligt at med denne property at stoppe for logningerne fra NspSoapClient.

truemvn test -Pintegration-test -Denv=dev -Ddebug.nspSoap=false
procurationtests.skipNogle tests har en tendens til at fejle, da de har brug for fuldmagter for at testene er fyldestgørende. Så pga. de problemer med fuldmagtsservice, så har man her muligheden for at afvikle alle de integrationstests, som ikke er afhængige af fuldmagter.falsemvn test -Pintegration-test -Denv=dev -Dprocurationtests.skip=true

...

Runtime konfigurationen overstyrer konfiguration i bygget. Dette gælder for alle integrationstests.

Følgende konfigurationer er til rådighed:

...

minlog2.endpoint.registration.url

...

Angivelse af MinLog2 servicens endpoint, fx

...

minlog2.endpoint.lookup.url

...

Angivelse af MinLog2 servicens endpoint, fx

...

idcard.from.file

...

Angiver, hvorvidt id kortet skal læses fra en fil.
Hvis værdien er 'false' kaldes STS.

...

sts.endpoint.url

Angivelse af STS endpoint, fx

...

idcard.path

...

Absolut sti til id kort.
Denne værdi er nødvendig hvis idcard.from.file er 'true'

...

db.url

...

Database url til en MariaDB database. Anvendes af "RunMultipleIntegrationTests" til at slette alle logentries markeret med Systemname='Integrationtest'

...

Angivelse af MinLog2 servicens endpoint, fx

...

Angivelse af MinLog2 servicens endpoint, fx

...

  • Adgang til security token service
  • At certifikatet Lis_Rasmussen_Laege.jks.jks, har password Test1234og er tilknyttet CVR 25450442

Integrationtest til Lookupid (shared-test-idws)

Modulet../shared/shared-test-idws indeholder en klient IDWSTestClient. En integrationtest der kontrollere at miljøerne er kørende og kalder Lookupid. Denne client kræver at IntegrationTest er blevet afviklet mindst en gang mod det ønskede miljø da request indeholder opslag på CPR "1005781993".

Ingen konfiguration er nødvendig. Afvikling sker fra kommandolinjen som følger:

...

Konfiguration foretages i src/main/resources/client.properties.

...

"tofile" will save the request to file - (IDWS-request-output.xml). Vær opmærksom på sts-endpoint og lookup-endpoint. Ændringer til lookup-endpoint skal også ændres i minlog2-lookupid.wsdl filen

...
<
wsdl:service name="LookupidService">
<wsdl:port name="LookupidServicePort" binding="tns:LookupidSoapBinding">
<soap:address location="http://localhost:8081/minlog2-lookupid/LookupidService" />
</wsdl:port>
</wsdl:service>
...

 

Performance- og endurancetest

Der henvises til MinLog2 - Performancetestvejledning dokumentet.

Dannelse af ID kort (wsse header)

Det er muligt at få udstedt et ID kort fra test STS'en som følger:

...

Forudsætninger:

...

.

...