MinLog2

Testvejledning


Indhold
MinLog2
Testvejledning
Indledning
Læsevejledning
Dokumenthistorik
Definitioner og forkortelser
Unit tests
Coverage report
Bemærkninger
Integrationstest
Integrationtest til Lookupid
Performance- og endurancetest
Dannelse af ID kort (wsse header)



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

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. Nedenstående er en liste over de primære:

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


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

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

Performance- og endurancetest

TBD

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: