Page History
...
Navitabs | ||
---|---|---|
| ||
Table of Contents
Fælles udviklingsmiljø
For at have et fælles miljø, der ligner et rigtigt NSP testmiljø, så er der blevet opsat et miljø hos medcom.
Gliffy Diagram | ||||||||
---|---|---|---|---|---|---|---|---|
|
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/
Unittests
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:
- Hver testcase er implementeret som en metode i den relevante testklasse
- Testcasen er navngivet, så det tydeligt fremgår, hvad formålet med testen er
- Kommentarer i testcasen inddeler tydeligt i præcondition (Given), udførsel (When), tjek (Then) som beskrevet f.eks. Martin Fowler: Given-When-Then
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).
Integrationstest til verifikation af funktionalitet og deployment
...
Unittests
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:
- Hver testcase er implementeret som en metode i den relevante testklasse
- Testcasen er navngivet, så det tydeligt fremgår, hvad formålet med testen er
- Kommentarer i testcasen inddeler tydeligt i præcondition (Given), udførsel (When), tjek (Then) som beskrevet f.eks. Martin Fowler: Given-When-Then
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/SDS Patientindex - Guide til Udviklere).
Integrationstest til verifikation af funktionalitet og deployment
Integrationstestene for NXRG er implementeret vha Cucumber og JUnit i moduletnxrg-qa, og er beregnet til afvikling mod en kørende udgave af NXRG.
Da man har brug for database adgang for at kontrollere felt migrerings integrationstesten, kan denne kun køres lokalt, hvorfor den er exluded fra de ørige profiler end "local".
Afvikling af Integrationstests aktiveres via Maven ved følgende kommando i moduletnxrg-qa:
mvn verify -Pintegration-test -Dvariabel=value
Det kræves at følgende properties angives ved afvikling af integrationstesten. De 2 felt migration relaterede properties er kun krævet når man kører test profilen "local".
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 |
notification.service.endpoint | Endpoint for NXRG notifikations service |
notification.service.status.endpoint | Endpoint for NXRG notifikations service status side |
field.migration.endpoint | Endpoint for at starte Felt migrerings servicen, der migrerer data fra XML baseret RIM format til søgbar felt (anvendes kun når man kører "local" test profilen) |
nxrg.data.url, nxrg.data.user og nxrg.data.pass | Adgang til databasen, til kontrol af Felt migrerings data (anvendes kun når man kører "local" test profilen) |
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 |
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
Integrationstesten sender een notifiation til NAS. Denne kan findes via DRG. På Test1 kan det gøres med getMessages vha. pull point: http://test1.ekstern-test.nspop.dk:8080/nas2/pullpoint/service/080d09f8-48af-405c-b55f-f821a773c9c1
Sammenhæng mellem integrationstests og user stories
I NXRG/SDS Patientindex - Brugerhistorierfindes en liste over, hvilke user stories, der er relevante for NXRG.
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
Integrationstesten i NasNotificationJob.feature indgår ikke i user stories, da den er drift relateret.
XDS Toolkit 2: Testing
XDS Toolkit er en samling test tools, der fokuserer på XDS. Denne startes på vha docker-compose filen (tjek om den er udkommenteret, hvis den ikke starter)
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:
- Document Registry / XDS / Required
- Document Registry / XDS / Metadata Update Option
- Document Registry / XDS / On demand Option
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 udvikling testserver test anvend: https://iheos-toolkit2.nspnxrg.medcom.dk/xdstools2/
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 | Antal deltest som fejler | Relevans/ note |
---|---|---|
0 (sprint 8) | ||
0 (sprint 9) | ||
0 (sprint 8) | ||
0 (sprint 10) | ||
0 (sprint 10) | Ikke relevant efter ihe framework ikke opgraderet | |
NR-139: iti57 kald, fejler pga manglende repositoryUniqueId | 1 | Afhænger af, hvordan test1/prod er konfigureret i open text |
10 | ||
NR-123: openhealth opdatering | 31 | (færre fejl når request validering fra) |
NR-114: GetSubmissionSetAndContents | 16 | |
0 (sprint 11) | ||
NR-115: GetFolderAndContents | 8 | |
NR-116: GetFolders | 3 | |
NR-117: GetSubmissionSets | 2 | |
NR-118: GetAssociations | 1 | |
NR-121: GetAll | 3 |
Rød=Fejl som skal retttes, gul=accepteret "fejl", grøn=er rettet, lysere rød=stilling ikke taget
Document Registry - Required Tests | Relevant i forhold til NXRG | Antal deltest | Teststatus ok og accepteret (med/uden) | Sprint 13 (2021/12/17) | Sprint 12 | Sprint 11 (test som fejler) | Sprint 10 (test som fejler) | Sprint 9 (test som fejler) | Sprint 8 (test som fejler) | Sprint 7 (test som fejler) | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Validering som drift (slået fra: iti42 req, iti18 req) | Open Text sat som prod | NXRG sat som prod | NXRG uden validering | Med validering | Uden validering | Med validering | Uden validering | |||||||||||
11897 - FindDocuments Stored Query | x | 29 |
| |||||||||||||||
11898 - SQ.b FindSubmissionSets Stored Query | ||||||||||||||||||
11899 - SQ.b FindFolders Stored Query | ||||||||||||||||||
11901 - SQ.b GetDocuments Stored Query | x | 6 | ||||||||||||||||
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 |
|
|
|
|
|
|
|
|
|
| ||||||
11991 - Register two DocumentEntries | x | 2 |
|
|
|
|
|
|
|
|
|
| ||||||
11992 - Document Replace | x | 3 |
|
|
|
|
|
|
|
|
|
| ||||||
11993 - Document Replace and Addendum | x | 4 |
|
|
|
|
|
|
|
|
|
| ||||||
11994 - Document Replace and Transformation | x | 4 |
|
|
|
|
|
|
|
|
|
| ||||||
11995 - Document Replace with Transformation (XFRM_RPLC) | x | 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 |
|
|
|
|
|
|
|
|
| |||||||
11998 - R.b Reject Submission, Patient ID on Replacement Document does not match Original | x | 3 |
|
|
|
|
|
|
|
|
|
| ||||||
11998a - Attribute missing rejection | x | 9 |
|
|
|
|
|
(forventer failure får success) |
|
(forventer failure får success) |
|
|
| |||||
11999 - R.b Accept Create Folder | x | 2 |
|
|
|
|
|
|
|
|
|
| ||||||
12000 - R.b Accept Create Folder with Initial Document | x | 3 |
|
|
|
|
|
|
|
|
|
| ||||||
12000.1a - R.b Accept Create Folder with Initial Document and Test GetDocuments Stored Query | x | 2 |
|
|
|
|
|
|
| |||||||||
12001 - R.b Add new document to existing folder | x | 3 |
|
|
|
|
|
|
|
|
|
| ||||||
12002 - R.b Reject Add Document to Folder - Patient ID does not match | x | 3 |
|
|
|
|
|
|
|
|
|
| ||||||
12004 - R.b Document Resubmission | x | 2 |
|
|
|
|
|
|
|
| ||||||||
12084 - R.b Submission Stored - All or Nothing | x | 2 |
|
|
|
|
|
|
|
|
|
|
| |||||
12323 - R.b Folder lastUpdateTime | x | 8 |
|
|
|
|
|
|
|
|
|
| ||||||
12326 - R.b Add Existing document to existing folder | x | 3 |
|
|
|
|
|
|
|
|
|
| ||||||
12327 - R.b Accept Document Replace, Document in Folder | x | 4 |
|
|
|
|
|
|
|
|
|
| ||||||
12368 - SQ.b XDSResultNotSinglePatient Error | x | 6 |
|
|
|
|
|
|
|
|
|
| ||||||
12370 - R.b Accept association documentation classification | x | 4 |
|
|
|
|
|
|
|
|
|
|
| |||||
12379 - Extra Metadata | ? | 1 |
|
|
|
|
|
|
|
|
|
| ||||||
15803 - GetAll Stored Query | ||||||||||||||||||
15806 - Reject resubmission | x | 4 |
|
|
|
|
|
|
|
|
|
|
Document Registry - Metadata Update Option Tests | Relevant i forhold til NXRG | Antal deltest | Test status ok og accepteret (med/uden) | Sprint 13 | Sprint 12 | Sprint 11 (test som fejler) | Sprint 10 (test som fejler) | Sprint 9 (test som fejler) | Sprint 8 (test som fejler) | Sprint 7 (Test som fejler) | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Validering som drift (slået fra: iti42 req, iti18 req) | Open Text sat som prod | NXRG sat som prod | NXRG uden validering | Med validering | Uden validering | Med validering | Uden validering | |||||||||||
test skal køres igen manuelt, hvor version bliver sat på for at kunne regne med resultat | ||||||||||||||||||
15800 - DocumentEntry Update | x | 3 |
|
|
|
|
|
|
|
|
| |||||||
15800b - No Original DocumentEntry | x | 1 | som nxrg |
|
|
|
|
|
| |||||||||
15800c - Wrong transaction used | x | 1 |
|
|
| |||||||||||||
15800d - DocumentEntry - Submit Incomplete Update | x | 2 |
| som nxrg |
|
|
|
|
|
|
|
|
| |||||
15800e - DocumentEntry - Submit Update to older version | x | 2 | som nxrg |
|
|
|
|
|
| |||||||||
15801 - DocumentEntry attribute Update | x | 3*22 | som nxrg |
|
|
|
|
|
|
|
| |||||||
15802 - Update DocumentEntry Status on most recent version | x | 5 |
|
|
|
|
|
|
| |||||||||
15802b - Update DocumentEntry Status of older version | x | 4 | som nxrg |
|
|
|
|
|
|
|
| |||||||
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 | som nxrg |
|
|
|
| |||||||||||
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 |
|
|
|
|
|
| ||||||||||
21001 - SubmissionSet and UpdateAvailabilityStatus | x | 2 | ||||||||||||||||
21002 - Simple DocumentEntry Patient Identifer Change | Testen er ikke relevant, da det ikke tillades at ændre cpr nummer i forbindelse med opdatering af metadata | |||||||||||||||||
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 ok og accepteret (med/uden) | Sprint 13 | Sprint 12 | Sprint 11 (test som fejler) | Sprint 10 (test som fejler) | Sprint 9 (test som fejler) | Sprint 8 (test som fejler) | Sprint 7 (Test som fejler) | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Validering som drift (slået fra: iti42 req, iti18 req) | Open Text sat som prod | NXRG sat som prod | NXRG uden validering | Med validering | Uden validering | Med validering | Uden validering | |||||||||||
Test: 15805 - Test 15805 - Registry oriented On-Demand DocumentEntry tests | x | 10 |
|
|
|
|
|
|
|
|
|
...
mvn verify -Pintegration-test -Dvariabel=value
Det kræves at følgende properties angives ved afvikling af integrationstesten
...
Property
...
Beskrivelse
...
For nemheds skyld er der angivet følgende profiler (kan angives med -P), med variabeldefinitioner for et givent 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
Sammenhæng mellem integrationstests og user stories
...
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 2: Testing
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:
- Document Registry / XDS / Required
- Document Registry / XDS / Metadata Update Option
- Document Registry / XDS / On demand Option
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.
...
*)De fleste pga at update metadata pt ikke tillader udeladt version
Document Registry - Required Tests
11897 - FindDocuments Stored Query
approved (findings på NR-107)leafclass (findings på NR-107)refid (NR-106)
11898 - SQ.b FindSubmissionSets Stored Query
11899 - SQ.b FindFolders Stored Query
11906 - SQ.b GetSubmissionSetAndContents Stored Query
11907 - SQ.b GetFolderAndContents Stored Query
11990 - Register single DocumentEntry
- submit (NR-120: symbolic link)
- eval (NR-114: GetSubmissionSetAndContents)
submit (NR-120: symbolic link)- eval (NR-114: GetSubmissionSetAndContents)
- submit (NR-120: symbolic link)
- eval (NR-114: GetSubmissionSetAndContents)
submit (NR-120: symbolic link)- eval (NR-114: GetSubmissionSetAndContents)
11992 - Document Replace
- rplc (NR-120: symbolic link)
- eval (NR-114: GetSubmissionSetAndContents)
rplc (NR-120: symbolic link)- eval (NR-114: GetSubmissionSetAndContents)
11993 - Document Replace and Addendum
- rplc (NR-120: symbolic link)
- apnd (NR-120: symbolic link ?)
- eval (NR-114: GetSubmissionSetAndContents)
rplc (NR-120: symbolic link)apnd (NR-120: symbolic link)
11994 - Document Replace and Transformation
- rplc (NR-120: symbolic link)
- xfrm (NR-120: symbolic link ?)
- eval (NR-114: GetSubmissionSetAndContents)
rplc (NR-120: symbolic link)xfrm (NR-120: symbolic link)- eval (NR-114: GetSubmissionSetAndContents)
11995 - Document Replace with Transformation (XFRM_RPLC)
- eval (NR-114: GetSubmissionSetAndContents)
- eval (NR-114: GetSubmissionSetAndContents)
11996 - Reject Submission with Invalid Patient ID
Testen er ikke relevant, da vi ikke anvender Patient Identity feed featuren
(Kendte registrerede patienter i registry)
11997 - Patient ID on SubmissionSet does not match DocumentEntry
submit (NR-119: fejlhåndtering)- eval (NR-83: GetDocuments)
- eval (NR-83: GetDocuments)
11998 - R.b Reject Submission, Patient ID on Replacement Document does not match Original
- eval (NR-114: GetSubmissionSetAndContents)
- eval (NR-114: GetSubmissionSetAndContents)
11998a - Attribute missing rejection
classcode (NR-119: fejlhåndtering)- confidentialityCode (NR-123: openhealth opdatering)
- creationTime (NR-123: openhealth opdatering)
formatCode (NR-119: fejlhåndtering)healthcareFacilityTypeCode (NR-119: fejlhåndtering)- languageCode (NR-123: openhealth opdatering)
practiceSettingCode (NR-119: fejlhåndtering)SourcePatientId (NR-119: fejlhåndtering)typeCode (NR-119: fejlhåndtering)
- confidentialityCode (NR-123: openhealth opdatering)
- creationTime (NR-123: openhealth opdatering)
- languageCode (NR-123: openhealth opdatering)
11999 - R.b Accept Create Folder
- eval (NR-114: GetSubmissionSetAndContents)
- eval (NR-114: GetSubmissionSetAndContents)
12000 - R.b Accept Create Folder with Initial Document
- eval_folder (NR-114: GetSubmissionSetAndContents)
- eval_assoc (NR-115: GetFolderAndContents)
- eval_folder (NR-114: GetSubmissionSetAndContents)
- eval_assoc (NR-115: GetFolderAndContents)
12000.1a - R.b Accept Create Folder with Initial Document and Test GetDocuments Stored Query
- getDocumentSq (NR-83: GetDocuments)
- getDocumentSq (NR-83: GetDocuments)
12001 - R.b Add new document to existing folder
- add_to_folder (NR-120: symbolic link)
- eval (NR-115: GetFolderAndContents)
add_to_folder (NR-120: symbolic link)- eval (NR-115: GetFolderAndContents)
12002 - R.b Reject Add Document to Folder - Patient ID does not match
- eval (NR-115: GetFolderAndContents)
- eval (NR-115: GetFolderAndContents)
12004 - R.b Document Resubmission
- submit (NR-120: symbolic link ?)
- eval (NR-83: GetDocuments)
submit (NR-120: symbolic link)- eval (NR-83: GetDocuments)
12084 - R.b Submission Stored - All or Nothing
submit (NR-119: fejlhåndtering)- eval (NR-114: GetSubmissionSetAndContents)
- eval (NR-114: GetSubmissionSetAndContents)
12323 - R.b Folder lastUpdateTime
- verify_no_submission_time (NR-116: GetFolders)
- verify_has_submission_time (NR-116: GetFolders)
- verify_time_update (NR-115: GetFolderAndContents)
- rplc (NR-120: symbolic link)
- verify_time_updated_by_rplc (NR-116: GetFolders)
rplc (NR-120: symbolic link)- verify_no_submission_time (NR-116: GetFolders)
- verify_has_submission_time (NR-116: GetFolders)
- verify_time_update (NR-115: GetFolderAndContents)
- verify_time_updated_by_rplc (NR-116: GetFolders)
12326 - R.b Add Existing document to existing folder
- add_to_folder (NR-120: symbolic link)
- eval (NR-115: GetFolderAndContents)
add_to_folder (NR-120: symbolic link)- eval (NR-115: GetFolderAndContents)
12327 - R.b Accept Document Replace, Document in Folder
- verify_submission (NR-114: GetSubmissionSetAndContents)
- rplc (NR-120: symbolic link)
- verify_folder_content (NR-115: GetFolderAndContents)
rplc (NR-120: symbolic link)- verify_submission (NR-114: GetSubmissionSetAndContents)
- verify_folder_content (NR-115: GetFolderAndContents)
12368 - SQ.b XDSResultNotSinglePatient Error
- doc_leafclass (NR-83: GetDocuments)
- doc_objectref (NR-83: GetDocuments)
- ss_leafclass (NR-117: GetSubmissionSets)
- ss_objectref (NR-117: GetSubmissionSets)
- fol_leafclass (NR-115: GetFolderAndContents)
- fol_objectref (NR-115: GetFolderAndContents)
- doc_leafclass (NR-83: GetDocuments)
- doc_objectref (NR-83: GetDocuments)
- ss_leafclass (NR-117: GetSubmissionSets)
- ss_objectref (NR-117: GetSubmissionSets)
- fol_leafclass (NR-115: GetFolderAndContents)
- fol_objectref (NR-115: GetFolderAndContents)
12370 - R.b Accept association documentation classification
not_configured (NR-119: fejlhåndtering)- query (NR-118: GetAssociations)
- query (NR-118: GetAssociations)
12379 - Extra Metadata
- support (NR-114: GetSubmissionSetAndContents)
- support (NR-114: GetSubmissionSetAndContents)
15803 - GetAll Stored Query
15806 - Reject resubmission
- query (NR-114: GetSubmissionSetAndContents)
- resubmit (NR-122: databasefejl og tilbagemelding)
- verify (NR-114: GetSubmissionSetAndContents)
- query (NR-114: GetSubmissionSetAndContents)
- resubmit (NR-122: databasefejl og tilbagemelding)
- verify (NR-114: GetSubmissionSetAndContents)
15800 - DocumentEntry Update
- update (NR-123: openhealth opdatering)
- update (NR-124: size/hash validering)
- query_by_uniqueid (NR-83: GetDocuments)
update (NR-124: size/hash validering)- update (NR-123: openhealth opdatering)
- query_by_uniqueid (NR-83: GetDocuments)
15800b - No Original DocumentEntry
- no_orig_docentry (NR-123: openhealth opdatering)
- (forvent anden fejl efterfølgende)
- no_orig_docentry (NR-123: openhealth opdatering)
- (forvent anden fejl efterfølgende)
15800c - Wrong transaction used
15800d - DocumentEntry - Submit Incomplete Update
- update (test fejler ikke, men af forkert grund)
- update (NR-123: openhealth opdatering)
- update (NR-124: size/hash validering)
- (forvent anden fejl efterfølgende)
update (NR-124: size/hash validering)- update (test fejler ikke, men af forkert grund)
- update (NR-123: openhealth opdatering)
- (forvent anden fejl efterfølgende)
15800e - DocumentEntry - Submit Update to older version
- update_docentry_2 (NR-123: openhealth opdatering)
- update_docentry_2 (NR-124: size/hash validering)
update (NR-124: size/hash validering)- update_docentry_2 (NR-123: openhealth opdatering)
15801 - DocumentEntry attribute Update
- 22 subtest (NR-123: openhealth opdatering)
- 2 subtest (NR-124: size/hash validering)
2 subtest (NR-124: size/hash validering)- 22 subtest (NR-123: openhealth opdatering)
15802 - Update DocumentEntry Status on most recent version
- confirm_docentry_1_deprecated (NR-83: GetDocuments)
- confirm_docentry_1_undeprecated (NR-83: GetDocuments)
- confirm_docentry_1_deprecated (NR-83: GetDocuments)
- confirm_docentry_1_undeprecated (NR-83: GetDocuments)
15802b - Update DocumentEntry Status of older version
- update_docentry_2 (NR-123: openhealth opdatering)
- update_docentry_2 (NR-124: size/hash validering)
- verify_orig_docentry_2_deprecated (NR-83: GetDocuments)
update (NR-124: size/hash validering)- update_docentry_2 (NR-123: openhealth opdatering)
- verify_orig_docentry_2_deprecated (NR-83: GetDocuments)
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
- update (test fejler ikke, men af forkert grund)
- update (NR-123: openhealth opdatering)
- update (test fejler ikke, men af forkert grund)
- update (NR-123: openhealth opdatering)
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)
submit (NR-119: fejlhåndtering)
21001 - SubmissionSet and UpdateAvailabilityStatus
21002 - Simple DocumentEntry Patient Identifer Change
21003 - Simple Folder Patient Identifier Change
21004 - Submit Association Against Deprecated Objects
|
|
Performance test
Der laves performance test af regsistry og repository som et hele - dvs det er brugeroplevelsen som sådan, der vurderes.
...
Der køres på en liste af cpr numre. Trin 1 og 2 opretter data og trin 3-7 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).
Performance krav
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.
Krav:
- Snitfladerne skal være mindst lige så hurtig som for den nuværende XDS registry (og repository)
- Snitfladerne skal måles og svartiderne vurderes
- Vurdering af, hvor stort et load, snitfladerne kan håndtere per time og per uge
Add 3: Der måles en periode på 15 minutter og denne ganges op på time og uge basis.
Forudsætninger
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.
Baggrundsdata
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 samt 6 skal fremsøge eksisterende dokumenter, og trin 7 skal deprecate 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. Da trin 7 deprecate i princippet fjerner sit eget data grundlag for at finde dokumenter at slette markere, skal der efter en deprecate oprettes et tilsvarende dokument.
Design af test
Overblik
Der findes følgende test planer til NXRG.
...
De test, hvor der udføres et "hjælpe" kald, f.eks. når der laves en søgning inden erstatning af et dokument, da udelukkes "hjælpe" kaldet fra selve performance målingen ved at angive "ignore" i samplerens navn.
ITI-41 register
Dette er en registrering af et “stable” dokument.
...
- CPR tilfældigt fra liste af numre
- Dokumenttypen APD
- De i sampler "OpretAftaleSampler.java" angivne værdier
ITI-61 register
Dette er en registrering af et “on-demand” dokument.
...
- CPR tilfældigt fra liste af numre
- Dokumenttypen APD
- For referencer angives 5 for "generate document reference". Dette betyder, at dokumentet får 5 tildelte referencer i varianet af ef cpr nummer hashed
- Der anvendes derudover de i ovenstående skærmbillede angivne test data eller tilsvarende
ITI41 replace og ITI-61 replace
Dette er som for ITI-41 register og ITI-61 register ovenfor. Forskellen er, at et eksisterende dokument skal erstattes.
...
- CPR tilfældigt fra liste af numre
- Dokumenterne fremsøges med et ITI-18 kald for et konkret cpr nummer og et af de fundne dokumenter replaces (Extract document identification from previous call)
- (Søgning udeledes af throughput beregningen ved at lave ordet "ignore" indgå i samplerens navn i opsætningen)
- Der replaces med info som for "register"
ITI-18 registry stored query og ITI-43 retrieve document set
Dette er en fremsøgning af dokumenter og efterfølgende hent.
...
- CPR tilfældigt fra liste af numre
- Der hentes kun stable documenter, da det efterfølgende iti-43 kald ellers vil fejle på on-demand dokumenterne
- Dato interval: skal ligge indenfor de datoer, hvor dokumenterne er registreret
- Dokument typer, som hentes: APD 39289-4
- Der søges efter “approved” dokumenter (deprecate udelades)
ITI-18 registry stored query - by reference
Dette er en fremsøgning af dokumenter ud fra dokuments reference
...
- CPR tilfældigt fra liste af numre
- Der hentes kun on-demand documenter, da der kun er oprettet referencer på disse
- Dato interval: skal ligge indenfor de datoer, hvor dokumenterne er registreret
- Dokument typer, som hentes: APD 39289-4
- Der søges efter “approved” dokumenter (deprecate udelades)
- For referencer angives 5 for "generate document reference". Dette betyder, at der tilfældig udvælges en reference - ud af 5 varianter over en cpr nummer hashed reference.
iti-57
Dette er en opdatering af til et eksisterende dokuments metadata - mere konkret dokument status bliver deprecated.
...
- CPR tilfældigt fra liste af numre
- Dokumenterne fremsøges med et ITI-18 kald for et konkret cpr nummer og on-demand typen, og et af de fundne dokumenters metadata opdateres
- Der deprecates som opdatering
- Der oprettes med et ITI-61 kald et nyt tilsvarende dokument.
- (Søgning og register) udelades af throughput beregningen ved at lave ordet "ignore" indgå i samplerens navn i opsætningen)
Udførsel af test
Forberedelse
Testen hentes fra https://svn.nspop.dk/svn/components/performance/trunk i den revision, der er angivet nedenfor per release af NXRG.
...
- Uden dgws:
- kørsel mod open xds: /axis2/services/xdsregistryb
- kørsel mod nuværende open text registry: /registry/services/xds-iti18
- kørsel mod ny nxrg registry: /nxrg/iti18
- Med dgws:
- /ddsregistry/service
Kørsel
Når databasen er på plads, DDS, NXRG og repository kørende og testen konfigureret, kan følgende køres.
(distributionen 15min.template.jmx kører 15 minutter)
ITI-41 register
run_test.sh -h hosts.properties -p 9012 aftaler nxrg_opret 15min
ITI-61 register
run_test.sh -h hosts.properties -p 9012 ihe nxrg_opret_iti61 15min
ITI-41 replace
run_test.sh -h hosts.properties -p 9012 aftaler nxrg_erstat 15min
iti-61 replace
run_test.sh -h hosts.properties -p 9012 ihe nxrg_replace_iti61 15min
iti-18 og iti-43
run_test.sh -h hosts.properties -p 9012 aftaler nxrg_hent.template.jmx 15min
iti-18 og by reference
run_test.sh -h hosts.properties -p 9012 ihe nxrg_hent_iti18_by_reference 15min
iti-57 deprecate
run_test.sh -h hosts.properties -p 9012 ihe nxrg_deprecate_iti57 15min
Version
NXRG Release | Performance test revision |
---|---|
*.*.* | (TBD) eller nyere |
...