Page History
...
Unittests kan køres ved at eksekvere
|
Indlæseren arbejder i noget af ruten på et batch af events. I forbindelse med unit testen angives dette i klassen YderRouteBuilderTestSetup i variablen Iterable<Object[]> data(). Denne er default sat til en værdi, for at holde test tiden nede. Men inden release bør man køre en test med de udkommenterede værdier, sådan at koden bliver udfordret i forhold til denne værdi.
Det er konstateret, at den kan have indflydelse i, om noget kode virker eller ej.)
Tests i Camel
I det Camel kører asynkront, er det nødvendigt for unittests at vide, hvornår Camel er færdig med at indlæse en fil, hvis testen skal vide, hvornår den kan kontrollere, om det gik som forventet. Dette gøres i yder indlæseren, ved i YderRouteBuilderTestSetup at holde øje med confirm filerne (.done og failure) og frigive en Semaphore (routeHandshake) der først frigives når de forventede filer er fundne.
Yderindlæseren anvender fælles bibliotekets test pakke, til at understøtte en lang række unit test.
Der kan læses mere om unit test i indlæseren i "Guide til udviklere fælles for alle stamdataindlæserne"Hvis ikke der benyttes dette trick til Camel kan man være nødsaget til at indsætte waits, hvilket gør testeksekveringen langsommere, samt kan være afhængig af eksekveringsmaskinens computerkraft.
Unittests med en kørende MariaDb
...
En sådan rudimentær performancetest er ment til at afdække eventuelle flaskehalse som kan blive optimeret før release, samt også give en idé til hvor lang tid yder indlæseren vil indlæseren vil skulle bruge for at indlæse de typiske filer der modtages.
Manuelle Test
Manuel test af Beckup
Yderindlæseren har 3 mulige indstillinger for at backup ifm. indlæsningen. Enten kan indlæsning ske uden backup (NoBackup), almindeligt backup, hvor filen gemmes i originalt format (RawBackup) eller komprimeret backup, hvor filen gemmes som zip fil (ZipBackup).
Under udvikling er det muligt at teste funktionaliteten af backup. I nedenstående eksempel testes Zip backup. Der er testet vha. scripts afviklet mod en lokal YderIndlæser startet op i Docker.
- Tjek indhold af yder.properties
Code Block language bash title Terminal yderindlaeser % grep backup.type compose/configuration/yder.properties backup.type=ZipBackup
- Indlæse en valid fil
Code Block language bash title Terminal yderindlaeser % cp dk.nsp.sdm.yder-service/src/test/resources/data/ny_yder/FourYder.xml compose/development/test_input/ - Tjek indhold af backup-folder
Code Block language bash title Terminal yderindlaeser % ls -liatr compose/development/test_backup total 40 17035342 drwxr-xr-x@ 12 user group 384 Dec 17 14:10 .. 21276796 drwxr-xr-x 3 user group 96 Dec 17 14:12 . 21277072 -rw-r--r-- 1 user group 18216 Dec 17 14:12 FourYder-20407418-3538-42f7-902c-fb897de32842.zip - Tjek status af service
Code Block language bash title Terminal yderindlaeser % curl http://localhost:8080/yderindlaeser/status {"DataSetLog":"OK","SFTP YDER_EXTERNAL":"OK","SFTP YDER":"OK","Database":"OK","Processing":"Dataprocessering OK"} - Tjek status fra databasen
Code Block language bash title Terminal yderindlaeser % docker exec -it development-mariadb-galera-0-1 mysql -uyder -pyder -Dyder -e"select * from YDS_dataset_status;" +-----+--------------------------------------+-------------+---------------------+ | PID | UUID | StatusValue | Status | +-----+--------------------------------------+-------------+---------------------+ | 1 | 20407418-3538-42f7-902c-fb897de32842 | 10 | RECEIVED | | 4 | 20407418-3538-42f7-902c-fb897de32842 | 30 | PREPARSED | | 7 | 20407418-3538-42f7-902c-fb897de32842 | 50 | PARSED_AND_SPLITTED | | 10 | 20407418-3538-42f7-902c-fb897de32842 | 70 | COMPLETED | +-----+--------------------------------------+-------------+---------------------+