Indhold


Indledning

Leverancen indeholder unit tests, integrationstest og endurancetest.

Unittests afvikles som en del af byggeprocessen, mens integrationstesten afvikles mod den deployede komponent. Begge disse tests afvikles med maven.

Endurancetesten afvikles med jmeter mod den deployede komponent.

Indeværende dokument indeholder beskrivelse af, hvordan disse tests afvikles. Resultatet af endurancetesten er beskrevet i særskilt dokument.

Læsevejledning

Læseren forventes at have kendskab til National Sundheds-IT's platform NSP, samt generelt kendskab til WildFly applikation server, MariaDB og java.

Dokumenthistorik

Version

Dato

Ansvarlig

Beskrivelse

1.225-09-2018OpenmindsYderligere specifikation som følge af ny borgerservice og Kafka

1.1

07-09-2017

Openminds

Tilføjelse af yderligere integrationtests

1.0

15-06-2017

Aage Nielsen



Definitioner og forkortelser

Definition

Beskrivelse

NSP

Den nationale service platform (inden for sundheds-IT)


Unit tests

Unit tests bliver afviklet som en del af bygget, med mindre man eksplicit angivet, at det ikke ønskes.

Kør 'mvn clean install' eller 'mvn clean test'

Coverage report

Cobertura benyttes til – via maven – at danne en coverage rapport:

  • Kør fra projektets rod i en kommandolinje:
    • mvn install
    • mvn site
    • mvn site:stage
  • Vis det generede site ved at åbne /target/staging/index.html i en browser
  • Vælg 'Cobertura Test Coverage' under 'Project documentation'-'Project Reports' i menuen til venstre


Rapporten kan også findes i code/target/staging.

Bemærkninger

Det er et krav, at der skal være en coverage på 80 %. Dog kan fx genereret kode afvige fra dette.

Nedenfor er beskrevet, hvilke pakker, der vurderes ikke at leve op til coverage kravet.

Følgende pakker indeholder genereret kode eller 3. part:

Derudover kode uden forretningslogik


Integrationstest

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

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
  2. shared-test-idws - integrationstest af borger opslag  

Nedenstående er en liste over shared-test:

IntegrationTest

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

RunMultipleIntegrationTests

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

ExternalLookupTest

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

ExternalRegistrationTest

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

XMLValidator

Validerer korrekt xml fra filen xml-tovalidate.xml

shared-test-idws består af:  

IDWSTestClient

Standard integrationstest. Kontrollere at miljøerne er kørende, kalder først op til STS og derefter Lookupid

IDWSHelper

Validerer xml signatur fra fil



Afvikling

Integrationstesten 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. Konfiguration i byg.
    1. Tilret parametre i /testtools/src/main/configuration/<env>.properties
    2. Byg med 'mvn clean install –P<env>
    3. Kør integrationstesten fra kommandolinjen i /testtools med 'mvn exec:java'
  2. Runtime konfiguration.
    1. Kør integrationstesten fra kommandolinjen i /testools som følger:

      'mvn exec:java –D<parameter> =<value>

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

http://localhost:8080/minlog2-registration/RegisterService

minlog2.endpoint.lookup.url

Angivelse af MinLog2 servicens endpoint, fx

http://localhost:8080/minlog2-lookup/LookupService

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

http://test2.ekstern-test.nspop.dk:8080/sts/services/SecurityTokenService


Denne værdi nødvendig hvis idcard.from.file er 'false'.

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'


Hvis id kortet skal dannes af testen skal følgende være opfyldt:

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ø.

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

mvn exec:java

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

org.apache.ws.security.crypto.merlin.keystore.type=jks
org.apache.ws.security.crypto.merlin.keystore.password=Test1234
org.apache.ws.security.crypto.merlin.keystore.alias=poces
org.apache.ws.security.crypto.merlin.file=client.jks

org.apache.ws.security.crypto.merlin.truststore.type=jks
org.apache.ws.security.crypto.merlin.truststore.file=trust.jks
org.apache.ws.security.crypto.merlin.truststore.password=Test1234

dk.nsi.minlog2.testtools.lookupid.sts-endpoint=http://test1.ekstern-test.nspop.dk:8080/sts/services/Bst2Idws
dk.nsi.minlog2.testtools.lookupid.soap-action=GetLogStatementsForCPRPersonWithID
dk.nsi.minlog2.testtools.lookupid.lookupid-endpoint=http://localhost:8080/minlog2-lookupid/LookupidService
dk.nsi.minlog2.testtools.lookupid.user-certificate=C\=DK\,O\=Ingen organisatorisk tilknytning\,CN\=Poul Brodersen Bach\,Serial\=PID:9208-2002-2-624473022999
dk.nsi.minlog2.testtools.lookupid.user-cpr=1005781993
dk.nsi.minlog2.testtools.lookupid.procuration-cpr=none
dk.nsi.minlog2.testtools.lookupid.tofile=false

"tofile" will save the request to file - (IDWS-request-output.xml)

Performance- og endurancetest

Der henvises til Performancetest dokumentet.

Dannelse af ID kort (wsse header)

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


mvn exec:java -Dexec.mainClass=dk.nsi.ecpr.testtools.SOAPRequestGenerator -Didcard.path=<id card>
fra testtools folderen

Hvor <output_file> er navnet på den dannede fil, fx
../performance/idcard.xml

Url til STS kan konfigureres som ved integrationstest beskrevet ovenfor


ID kortet kan herefter anvendes i til en feks. et kald fra SoapUI eller andre klienter.

Forudsætninger: