Page History
Navitabs | ||||
---|---|---|---|---|
| ||||
Table of Contents |
---|
Introduktion
...
- 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.
...
Det kræves at følgende properties angives ved afvikling af integrationstesten
Property | Beskrivelse |
notificationbroker.endpoint | Endpoint for NAS 2 NotificationBroker |
pullpointfactory.endpoint | Endpoint for NAS 2 PullPointFactory |
pullpoint.endpoint | Endpoint for NAS 2 PullPoint |
subscriptionmanager.endpoint | Endpoint for NAS 2 SubscriptionManager |
idlist.endpoint | Endpoint for NAS 2 Idlist |
administration.endpoint | Endpoint for NAS 2 Administration |
For nemheds skyld er der angivet følgende profiler (kan angives med -P), med variabeldefinitioner for et givent miljø
Profilnavn | Miljø |
---|---|
development | Det dockerbaserede udviklingsmiljø for NAS 2 |
F.eks.
Code Block |
---|
mvn -Pdevelopment test |
Testrapporter kan genereres i HTML med kommandoer: mvn surefire-report:report; mvn site -DgenerateReports=false
...
Testen deles op i to dele. En del hvor der verificeres at notifikationer ikke går tabt og det er de rigtige notifkationer der leveres til de enkelte pull points. Den anden del er en verifikation ved hjælp af en integrationstest. Den test har til formål at verificere at det er muligt at udføre alle de user stories der er beskrevet i afsnit 3.1.
Verifikations test
...
Verifikationstesten har til formål at :
- bevise at der ikke går notifikationer tabt
...
- .
- det er de rigtige notifikationer der leveres til de enkelte pull points når systemet belastes med mange notifikationer.
- sikre robusthed ved belastning
- leverancesikkerhed as adviser i forhold til publish/subscribe ved belastning
I NAS2 projektet er der udviklet et selvstændigt program der kan kalde de forskellige services. Udfra en input fil kan det styres hvilke subscriptions, id lister osv. der skal oprettes samt hvor mange notifikationer der skal sendes. Programmet logger også hvilke adviser der er sendt samt hvilke der er hentet ud via pull point servicen.
...
For at understøtte ovenstående skal der oprettes følgende pull points og subscriptions.
PullPoint | Subscriptions | ID lister | Formål |
---|---|---|---|
PP1 | TOPIC1 | <ingen> | At alle adviser sendt til et topic kan hentes ud på et pull point. |
PP2 | TOPIC2 | <ingen> | At alle adviser sendt til et topic kan hentes ud på et pull point. Der oprettes pull points svarende til antal topics. |
PP3 | TOPIC1 | ID liste med under 50 Id'er | At der kun leveres adviser for de ID'er der er på ID listen. ID listen er en lille ID liste. |
PP4 | TOPIC1 | ID liste med mere end 1000 ID'er | At der kun leveres adviser for de ID'er der er på ID listen. ID listen er en større ID liste. |
PP5 | TOPIC1 TOPIC2 TOPIC3 TOPIC3 | <ingen> ID liste med under 50 Id'er. ID liste med mere end 1000 ID'er. ID liste med mere end 1000 ID'er | At der til et givent pull point kan leveres adviser fra flere forskellige topics samt at der kan laves flere subscriptions på det samme topic og at alle ID'er leveres til pull point. |
Program til understøttelse af ovenstående
...
- Oprettelse og/eller opdatering af ID liste.
mvn -Pverification -Dverification.mode=idlist -Dverification.idlist.endpoint=http://localhost:8090/idlist -Dverification.input=/path/to/file/idlist.txt
Indholdet i verification.input filen skal være som nedenstående.
/*
* Id list filen den skal være formateret som nedenstående.
*
* navn:idliste_navn:id_type
* id:id_no_1
* id:id_no_2
* navn:en_anden_liste
* id:id_no_4
* id:id_no_5
*/ - Oprettelse af pull point og subscription.
mvn -Pverification -Dverification.mode=subscribe -Dverification.subscriptionmanager.endpoint=http://localhost:8090/subscriptionmanager -Dverification.pullpointfactory.endpoint=http://localhost:8090/pullpointfactory -Dverification.input=/path/to/input/subscription.txt -Dverification.output=/path/to/output/subscription_output.txt
Indholdet i verification.input skal være som nedenstående. Output filen indeholder liste med pull point id'er.
/**
* Input filen skal være formateret som nedenstående
* subid:topic:id_liste_navn
*
* Id liste navn er optional og hvis det er udeladt oprettes der en subscription uden tilknyttet id liste.
*/ - Aflevering af adviser.
mvn -Pverification -Dverification.mode=notify -Dverification.input=/home/jonas/input.txt -Dverification.notificationbroker.endpoint=http://localhost:8090/notificationbroker - Afhentning af adviseringer.
mvn -Pverification -Dverification.mode=getmessages -Dverification.pullpoint.endpoint=http://localhost:8090/pullpoint -Dverification.input=/path/to/input/pullpoint.txt -Dverification.output=/path/to/output/pullpoint_output.txt - Indholdet i verification.input være et pull point id pr. linie. Output filen indeholder en linie pr afhentet advisering med ID og pull point id.
...