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 ============================