8. Prove di conformità OGC

L’Open Geospatial Consortium (OGC) fornisce test che possono essere eseguiti liberamente per assicurarsi che un server sia conforme a una certa specifica. Questo capitolo fornisce un rapido tutorial per impostare i test WMS e OGC API Features su un sistema Ubuntu. Una documentazione dettagliata può essere trovata sul sito web dell’OGC https://www.opengeospatial.org/compliance.

8.1. pyogctest

pyogctest è uno strumento Python dedicato a eseguire facilmente i test OGC. L’installazione può essere fatta in un ambiente virtuale:

git clone https://github.com/pblottiere/pyogctest
virtualenv venv
source venv/bin/activate
pip install -e pyogctest/

8.2. Suite test WMS 1.3.0

Per eseguire con successo la suite di test WMS 1.3.0, è necessario uno specifico set di dati di test. Può essere scaricato usando pyogctest:

./pyogctest.py -s wms130 --download

Dopo il download, un progetto teamengine_wms_130.qgs è disponibile nella nuova cartella data. Questo progetto deve essere registrato come progetto di default per QGIS Server grazie alla variabile d’ambiente QGIS_SERVER_PROJECT_FILE. In questo modo, non abbiamo bisogno di impostare esplicitamente il parametro vendor MAP di QGIS Server.

Una configurazione specifica è anche necessaria per conformarsi ai test dei metadati. Infatti, alcuni metadati sono disponibili nella cartella data/metadata e devono essere disponibili per il framework di test OGC grazie a un URL. L’opzione più semplice è configurare il tuo server web per avere un accesso attraverso qualcosa come http://XXX.XXX.XXX.XXX/metadata/Autos.xml. Questi URL di metadati sono definiti nel progetto e inseriti nel documento WMS GetCapabilities. Quindi il progetto deve essere aggiornato secondo il tuo ambiente di test per permettere a QGIS Server di generare un documento XML valido:

./pyogctest.py -s wms130 -m http://XXX.XXX.XXX.XXX/metadata

Ora che tutto è configurato correttamente, possiamo eseguire la suite di test WMS 1.3.0:

./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 test suite

Per eseguire la suite di test OGC API Features 1.0, è necessario un set di dati di test. Considerando che il progetto QGIS sottostante non ha bisogno di una configurazione specifica per questa suite di test, possiamo usare il file .qgs fornito nel repository di formazione:

git clone https://github.com/qgis/QGIS-Training-Data
ls QGIS-Training-Data/exercise_data/qgis-server-tutorial-data/world.qgs

Dopo il download, un progetto world.qgs è disponibile nella sotto directory qgis-server-tutorial. Questo progetto deve essere registrato come progetto di default per QGIS Server grazie alla variabile d’ambiente QGIS_SERVER_PROJECT_FILE. In questo modo, non abbiamo bisogno di impostare esplicitamente il vendor-parameter MAP di QGIS Server.

Ora che tutto è configurato correttamente, possiamo eseguire la suite di test OGC API Features 1.0:

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