For at have et fælles miljø, der ligner et rigtigt NSP testmiljø, så er der blevet opsat et miljø hos medcom.
NR-106
Cdaviewer: https://cdaviewer.nspnxrg.medcom.dk/cdaviewer/
DDS Repository: https://dds.nspnxrg.medcom.dk/ddsrepository/services?wsdl
DDS Registry: https://dds.nspnxrg.medcom.dk/ddsregistry/services?wsdl
DRS: https://drs.nspnxrg.medcom.dk/drs/wsdl/drs.wsdl
DROS:
https://dros.nspnxrg.medcom.dk/dros/iti41?wsdl
https://dros.nspnxrg.medcom.dk/dros/iti42?wsdl
https://dros.nspnxrg.medcom.dk/dros/iti57?wsdl
https://dros.nspnxrg.medcom.dk/dros/iti61?wsdlNR-106
NXRG:
https://nxrg.nspnxrg.medcom.dk/nxrg/iti18?wsdl
https://nxrg.nspnxrg.medcom.dk/nxrg/iti42?wsdl
https://nxrg.nspnxrg.medcom.dk/nxrg/iti57?wsdl
https://nxrg.nspnxrg.medcom.dk/nxrg/iti61?wsdl
PhpMyadmin (NXRG db viewer): https://phpmyadmin.nspnxrg.medcom.dk/
Der er sat en splunk op (hvis den bliver genstartet, så mister den al data, men det er nok ok til vores formål. Man kan se data ved at vælge "NXRG Report": https://splunk.nspnxrg.medcom.dk/en-US/app/search/reports
XDS Test Toolkit2: https://iheos-toolkit2.nspnxrg.medcom.dk/xdstools2/
Der findes UnitTests af centrale enheder (klasser) i NXRG.
Placeringen af disse følger standarden foreskrevet af Maven og er placeret i src/test/java i hvert af NXRG servicens moduler.
Unittests er navngivet med navnet på den klasse, som de tester, efterfulgt af Test.
Således ligger unittesten for klassen:
./nxrg-app/src/main/java/dk/nsp/nxrg/ws/Iti42WS.java
implementeret i:
./nxrg-app/src/test/java/dk/nsp/nxrg/ws/Iti42WSTest.java
Unittests er stilmæssigt opbygget på følgende måde:
Unittests er implementeret vha JUnit og kan eksekveres af Mavens standard testplugin SureFire.
Til udregning af testcoverage anvendes Jacoco Maven Plugin (se JaCoCo Maven plug-in).
Testcoverage udregnes i de enkelte Maven moduler i NXRG og aggregeres til en samlet rapport i modulet nxrg-testreport.
Således er en samlet rapport over testcoverage tilgængelig i
./nxrg-testreport/target/site/jacoco-aggregate
Unittests og tilhørende udregning af testcoverage udføres som en integreret del af byg af komponenten (se i øvrigt NXRG - Guide til Udviklere).
Integrationstestene for NXRG er implementeret vha Cucumber og JUnit i modulet nxrg-qa, og er beregnet til afvikling mod en kørende udgave af NXRG.
Afvikling af Integrationstests aktiveres via Maven ved følgende kommando i modulet nxrg-qa:
mvn verify -Pintegration-test -Dvariabel=value
Det kræves at følgende properties angives ved afvikling af integrationstesten
Property | Beskrivelse |
| iti18.service.endpoint | Endpoint for NXRG ITI-18 service |
| iti42.service.endpoint | Endpoint for NXRG ITI-42 service |
| iti57.service.endpoint | Endpoint for NXRG ITI-57 service |
| iti61.service.endpoint | Endpoint for NXRG ITI-61 service |
For nemheds skyld er der angivet følgende profiler (kan angives med -P), med variabeldefinitioner for et givent miljø
| local | Det dockerbaserede udviklingsmiljø for NXRG |
| dev | Det fælles udviklingsmiljø for NXRG |
| test1 | NXRG på NSP Test1 miljø |
| test2 | NXRG på NSP Test2 miljø |
Testrapporter kan for integrationstesten genereres som html og json og kan ses i /target/cucumber-reports/cucumber.html og /target/cucumber-reports/cucumber.json
I NXRG - Brugerhistorier findes en liste over, hvilke user stories, der er relevante for NXRG. Er installereret: https://iheos-toolkit2.nspnxrg.medcom.dk/xdstools2/
Disse brugerhistorier går igen i integrationstestene, da hver brugerhistorie svarer til en integrationstestssuite (feature) i NXRG.
Således findes testscenarier for brugerhistorien 'Registrer Dokumentsæt med ReferenceIdList' i featurefilen:
./nxrg-qa/src/test/resources/dk/nsp/nxrg/test/verification/RegistrerDokumentsaetMedReferenceIdList.feature
XDS Toolkit er en samling test tools, der fokuserer på XDS.
Det understøtter tests for en række IHE XDS aktører f.eks Document Registry, Document Repository og flere.
I forhold til NXRG er det relevant at kigge på, hvilke tests, der findes, der fokuserer på Document Registry.
Vælg "alternate" som environment. Test11897 test 1 og 2 fejler ellers.

I menuen i XDS Toolkit kan man vælge "Conformance Tests". Herved fåes et overblik over de forskellige IHE XDS aktøerer. I sektionen vedr. Document Registry er testene grupperet. I forhold til NXRG MVP er det relevant at koncentrere sig om de tests, der ligger i de sektionerne:
For lokal test: værktøjet startes op docker compose setup under ./compose/development og kan herefter tilgåres via: http://localhost:3308/xdstools2/
For testserver test: se link ovenfor for "XDS Test Toolkit2"
Det er ikke alle tests inden for de tre kategorier, som vi forventer at kunne gennemføre i NXRG MVP (vi udbyder f.eks. kun en delmængde af de søgetyper, der findes som en del af ITI-18). Kategorierne og testcases gennemgås nedenfor og relevans krydses af.
| Type | Relevans | Antal test/deltest som fejler |
|---|---|---|
| NR-120: symbolic link | 12 | |
| NR-122, databasefejl og tilbagemelding | Bør laves. Fejl, som opstår i forbindelse med db adgang ikke vil blive returneret. | 1 |
| NR-124: size/hash validering | Bør laves. Fungerer forkert pt. | 2 |
| NR-123: openhealth opdatering | 5 | |
| NR-114: GetSubmissionSetAndContents | 16 | |
| NR-83: GetDocuments | Andre kunne bruge kaldet, f.eks. gør Medcoms cda viewer | 9 |
| NR-115: GetFolderAndContents | 8 | |
| NR-116: GetFolders | 3 | |
| NR-117: GetSubmissionSets | 2 | |
| NR-118: GetAssociations | 1 | |
| NR-121: GetAll | 3 |
Document Registry - Required Tests | Relevant i forhold til NXRG | Antal del test | Teststatus | Sprint 7 (test som fejler) |
|---|---|---|---|---|
11897 - FindDocuments Stored Query | x | 29 | 29/29 |
|
11898 - SQ.b FindSubmissionSets Stored Query | ||||
11899 - SQ.b FindFolders Stored Query | ||||
| 11901 - SQ.b GetDocuments Stored Query | ||||
| 11902 - SQ.b GetFolders Stored Query | ||||
| 11903 - SQ.b GetAssociations Stored Query | ||||
| 11904 - SQ.b GetDocumentsAndAssociations Stored Query | ||||
| 11905 - SQ.b GetSubmissionSets Stored Query | ||||
11906 - SQ.b GetSubmissionSetAndContents Stored Query | ||||
11907 - SQ.b GetFolderAndContents Stored Query | ||||
| 11908 - SQ.b GetFoldersForDocument Stored Query | ||||
| 11909 - SQ.b GetRelatedDocuments Stored Query | ||||
11990 - Register single DocumentEntry | x | 2 | 0/2 |
|
| 11991 - Register two DocumentEntries | x | 2 | 0/2 |
|
11992 - Document Replace | x | 3 | 1/3 |
|
11993 - Document Replace and Addendum | x | 4 | 1/4 |
|
11994 - Document Replace and Transformation | x | 4 | 1/4 |
|
11995 - Document Replace with Transformation (XFRM_RPLC) | x | 3 | 2/3 |
|
11996 - Reject Submission with Invalid Patient ID | Testen er ikke relevant, da vi ikke anvender Patient Identity feed featuren | |||
11997 - Patient ID on SubmissionSet does not match DocumentEntry | x | 2 | 1/2 |
|
11998 - R.b Reject Submission, Patient ID on Replacement Document does not match Original | x | 3 |
| |
11998a - Attribute missing rejection | x | 9 | 6/9 |
|
11999 - R.b Accept Create Folder | x | 2 | 1/2 |
|
12000 - R.b Accept Create Folder with Initial Document | x | 3 | 1/3 |
|
12000.1a - R.b Accept Create Folder with Initial Document and Test GetDocuments Stored Query | x | 2 | 1/2 |
|
12001 - R.b Add new document to existing folder | x | 3 | 2/3 |
|
12002 - R.b Reject Add Document to Folder - Patient ID does not match | x | 3 |
| |
12004 - R.b Document Resubmission | x | 2 | 0/2 |
|
12084 - R.b Submission Stored - All or Nothing | x | 2 | 1/2 |
|
12323 - R.b Folder lastUpdateTime | x | 8 | 3/8 |
|
12326 - R.b Add Existing document to existing folder | x | 3 | 1/3 |
|
12327 - R.b Accept Document Replace, Document in Folder | x | 4 | 1/4 |
|
12368 - SQ.b XDSResultNotSinglePatient Error | x | 6 | 0/6 |
|
12370 - R.b Accept association documentation classification | x | 4 | 3/4 |
|
12379 - Extra Metadata | ? | 1 | 0/1 |
|
15803 - GetAll Stored Query | ||||
15806 - Reject resubmission | x | 4 | 1/4 |
|
| Document Registry - Metadata Update Option Tests | Relevant i forhold til NXRG | Antal deltest | Test status | Sprint 7 (Test som fejler) |
|---|---|---|---|---|
15800 - DocumentEntry Update | x | 3 | 1/3 |
|
15800b - No Original DocumentEntry | x | 1 | 0/1 |
|
15800c - Wrong transaction used | x | 1 | 1/1 | |
15800d - DocumentEntry - Submit Incomplete Update | x | 2 | 1/2 |
|
15800e - DocumentEntry - Submit Update to older version | x | 2 | 1/2 |
|
15801 - DocumentEntry attribute Update | x | 22 | 22/22 |
|
15802 - Update DocumentEntry Status on most recent version | x | 5 | 3/5 |
|
15802b - Update DocumentEntry Status of older version | x | 4 | 2/2 |
|
20000 - Folder - Simple Update | ||||
20000b - Folder - Reject Original Submission | ||||
20000c - Folder - Submit Wrong Version | ||||
20000d - Folder - Simple Update Using Association Propagation | ||||
20000e - Folder - Simple Update Without Association Propagation | ||||
20000f - Folder - Submit Incomplete Update | ||||
20001 - Submit APND Association | ||||
20002b - Check Syntax for Update Metadata Operations | ||||
20007 - DocumentEntry - Reject Multiple Updates For Same LogicalId | x | 2 | 2/2 | |
20008 - Submit "Versioned" Association | ||||
20100a - PatientIDReconciliationError: Submit DE-DE Relationship Association | ||||
20100b - PatientIDReconciliationError: Submit FD-DE Has-Member Association | ||||
21000 - No Update Metadata Operation Object (ITI-42) | x | 1 | 0/1 |
|
21001 - SubmissionSet and UpdateAvailabilityStatus | x | 2 | 2/2 | |
21002 - Simple DocumentEntry Patient Identifer Change | x | 6 | 5/6 |
|
21003 - Simple Folder Patient Identifier Change | ||||
21004 - Submit Association Against Deprecated Objects |
| Document Registry - On Demand Option Tests | Relevant i forhold til NXRG | Antal deltest | Test status | Sprint 7 (Test som fejler) |
|---|---|---|---|---|
| Test: 15805 - Test 15805 - Registry oriented On-Demand DocumentEntry tests | x | 10 | 5/10 |
|
Der laves performance test af regsistry og repository som et hele - dvs det er brugeroplevelsen som sådan, der vurderes.
Testen grupperes logisk en test suite. Hver trin bør udføres i angivne orden. Og databasen til registry og repository kan med fordel kopieres efter trin 2, sådan at de følgende testtrin kan genkøres, skulle behovet opstå.
Test suite 1
Der køres på en liste af cpr numre. Trin 1 og 2 opretter data og trin 3-6 arbejder herefter på disse data. Replace document og update metadata arbejder på konkrete dokumenter. Disse findes ved først at lave en ITI-18 søgning (som udelades af selve throughput beregningen).
Der findes ikke en officiel liste af krav til performance. Det vil derfor være hensigtsmæssigt at undersøge, hvordan performance er for det nuværende registry (og repository). Men vil herefter kunne vurdere, at man ialtfald ikke er dårligere stillet med det nye.
Add 3: Der måles en periode på 15 minutter og denne ganges op på time og uge basis.
Testen skal køres på en liste af cpr numre. Listen indeholder 100.000 forskellige numre. Udover disse cpr numre skal testen kunne afvikles selvstændigt og ikke være afhængig af andet test data.
Testen skal køre mod et registry og repository med en “passende” mængde baggrundsdata. Dette er et par millioner dokumenter af typerne stable og on-demand. Disse skabes i testens trin 1 og 2.
Testens trin 3-6 forudsætter er der findes baggrundsdata at køre på. Trin 3 og 4 skal erstatte et eksisterende "approved" dokument, og trin 5 skal fremsøge eksisterende dokumenter, og trin 6 skal deprecate "approved" eksisterende dokumenter.
Dette baggrundsdata skables i testens trin 1 og 2. Vurderes det, at disse 2 trin ikke har skabt nok baggrundsdata (et par millioner dokumenter) kan trin 1 og 2 gentages indtil, der er nok dokumenter.
Dette er en registrering af et “stable” dokument.
Overvejelser omkring opsætningen
Der er følgende muligheder for opsætning af testen:

Til testen anvendes følgende opsætning:
Dette er en registrering af et “on-demand” dokument.
Overvejelser omkring opsætningen
Der er følgende muligheder for opsætning af testen:

Til testen anvendes følgende opsætning:
Dette er som for ITI-41 register og ITI-61 register ovenfor. Forskellen er, at et eksisterende dokument skal erstattes.
Overvejelser omkring opsætning:
Til testen anvendes følgende opsætning:
Dette er en fremsøgning af dokumenter og efterfølgende hent.
Overvejelser omkring opsætningen
Der er følgende muligheder for opsætning af testen:
Fremsøgning:

Hent:

Til testen anvendes følgende opsætning:
Dette er en opdatering af til et eksisterende dokuments metadata - mere konkret dokument status.
Overvejelser omkring opsætningen
Der er følgende muligheder for opsætning af testen:

Til testen anvendes følgende opsætning:
Testen hentes fra https://svn.nspop.dk/svn/components/performance/trunk i den revision, der er angivet nedenfor per release af NXRG.
Databasen klargøres; en tom database for både registry og repository
Der skal være en kørende version af NXRG, som er konfigureret med et tilhørende repository. Og host.properties skal være sat korrekt op jf. arosiis performance test framework.
I sourcekodens samplers findes metoden getPath(). Denne sti ned til det enkelte endpoint varierer efter, hvilken version af servicene som rammes. Det kan derfor være nødvendig at rette test sourcerne inden testen køres.
Eksempel for iti-18:
Når databasen er på plads, NXRG og repository kørende og testen konfigureret, kan følgende køres:
(distributionen 15min.template.jmx kører 15 minutter)
tests/aftaler/src/test/jmeter/templates/testplans/nxrg_opret.template.jmx
tests/ihe/src/test/jmeter/templates/testplans/nxrg_opret_iti61.template.jmx
tests/ihe/src/test/jmeter/templates/testplans/nxrg_replace_iti61.template.jmx
tests/aftaler/src/test/jmeter/templates/testplans/nxrg_hent.template.jmx
tests/ihe/src/test/jmeter/templates/testplans/nxrg_deprecate_iti57.template.jmx
NAS Release | Performance test revision |
|---|---|
| *.*.* | (TBD) eller nyere |
'* ' betyder hvilken som helst