8. OGC testen van aanpassingen
Het Open Geospatial Consortium (OGC) verschaft testen die gratis kunnen worden uitgevoerd om u ervan te verzekeren dat een server voldoet aan een bepaalde specificatie. Dit hoofdstuk verschaft een snelle handleiding om de testen voor WMS en OGC API Features in te stellen op een systeem van Ubuntu. Gedetailleerde documentatie is te vinden op de website van OGC.
8.1. pyogctest
pyogctest is een programma voor Python dat bedoeld is voor het eenvoudig uitvoeren van testen voor OGC. Installeren mag worden gedaan in een virtuele omgeving:
git clone https://github.com/pblottiere/pyogctest
virtualenv venv
source venv/bin/activate
pip install -e pyogctest/
8.2. WMS 1.3.0 testset
Een specifieke gegevensset voor testen is nodig om de WMS 1.3.0 testset met succes uit te kunnen voeren. Die kan worden gedownload met pyogctest:
./pyogctest.py -s wms130 --download
Na het downloaden is een project teamengine_wms_130.qgs
beschikbaar in de nieuwe map data
. Dit project moet worden geregistreerd als het standaard project voor QGIS Server met de omgevingsvariabele QGIS_SERVER_PROJECT_FILE. Op deze manier hoeven we niet expliciet de vendor-parameter MAP
van QGIS Server in te stellen.
Een specifieke configuratie is ook nodig om te voldoen aan de testen voor metadata. Inderdaad, sommige metadata zijn beschikbaar in de map data/metadata
en moeten beschikbaar worden gemaakt voor het OGC testframewerk met een URL. De eenvoudigste optie is om uw webserver te configureren om toegang te verkrijgen door iets als http://XXX.XXX.XXX.XXX/metadata/Autos.xml
. Deze URL’s voor metadata moeten worden gedefinieerd in het project en worden ingevoegd in het document voor WMS GetCapabilities
. Het project moet dus worden bijgewerkt overeenkomstig uw testomgeving om QGIS Server een geldig XML-document te laten maken:
./pyogctest.py -s wms130 -m http://XXX.XXX.XXX.XXX/metadata
Nu alles juist is geconfigureerd, kunnen we de WMS 1.3.0 testset uitvoeren:
./pyogctest.py -s wms130 -u http://XXX.XXX.XXX.XXX/qgisserver
========================== OGC test session starts ============================
testsuite: WMS 1.3.0
collected 184 items
data-independent::basic_elements::version-negotiation::negotiate-no-version .
data-independent::basic_elements::version-negotiation::negotiate-basic_elements-version .
data-independent::basic_elements::version-negotiation::negotiate-higher-version .
...
...
...
=========================== 184 passed in 40 seconds ===========================
8.3. OGC API Features testset
Een test gegevensset is nodig om de OGC API Features 1.0 testset uit te kunnen voeren. Overwegende dat het onderliggende project van QGIS geen specifieke configuratie voor deze testset nodig heeft, kunnen we het bestand .qgs
gebruiken dat wordt verschaft in de opslagplaats voor de training:
git clone https://github.com/qgis/QGIS-Training-Data
ls QGIS-Training-Data/exercise_data/qgis-server-tutorial-data/world.qgs
Na het downloaden is een project world.qgs
beschikbaar in de map qgis-server-tutorial
. Dit project moet worden geregistreerd als het standaard project voor QGIS Server met de omgevingsvariabele QGIS_SERVER_PROJECT_FILE. Op deze manier hoeven we niet expliciet de vendor-parameter MAP
van QGIS Server in te stellen.
Nu alles juist is geconfigureerd, kunnen we de OGC API Features 1.0 testset uitvoeren:
./pyogctest.py -s ogcapif -u http://XXX.XXX.XXX.XXX/qgisserver
=========================== OGC test session starts ============================
collected 56 items
collections::FeatureCollections::retrieveApiModel .
collections::FeatureCollections::noOfCollections .
collections::FeatureCollections::requirementClasses .
...
...
...
=========================== 56 passed in 24 seconds ============================