8. Pruebas de conformidad OGC

El Consorcio Geoespacial Abierto (OGC) proporciona pruebas que se pueden ejecutar de forma gratuita para asegurarse de que un servidor cumpla con una determinada especificación. Este capítulo proporciona un tutorial rápido para configurar las pruebas de características de API de WMS y OGC en un sistema Ubuntu. Se puede encontrar una documentación detallada en el sitio web de OGC.

8.1. pyogctest

pyogctest es una herramienta de Python dedicada a ejecutar pruebas OGC fácilmente. La instalación se puede realizar en un entorno virtual:

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

8.2. WMS 1.3.0 test suite

Para ejecutar el conjunto de pruebas de WMS 1.3.0 con éxito, se necesita un conjunto de datos de prueba específico. Se puede descargar usando pyogctest:

./pyogctest.py -s wms130 --download

Tras la descarga, un proyecto teamengine_wms_130.qgs está disponible en el nuevo directorio de datos. Este proyecto debe registrarse como proyecto predeterminado para QGIS Server gracias a la variable de entorno QGIS_SERVER_PROJECT_FILE. De esta manera, no necesitamos establecer explícitamente el parámetro de proveedor MAP de QGIS Server.

También es necesaria una configuración específica para cumplir con las pruebas de metadatos. De hecho, algunos metadatos están disponibles en el directorio datos/metadatos y deben estar disponibles para el marco de pruebas OGC gracias a una URL. La opción más sencilla es configurar su servidor web para que tenga acceso a través de algo como http://XXX.XXX.XXX.XXX/metadata/Autos.xml. Estas URL de metadatos se definen en el proyecto y se insertan en el documento WMS GetCapabilities. Por lo tanto, el proyecto debe actualizarse de acuerdo con su entorno de prueba para permitir que QGIS Server genere un documento XML válido:

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

Ahora que todo está configurado correctamente, podemos ejecutar el conjunto de pruebas 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. Conjunto de pruebas de características de la API de OGC

Para ejecutar el conjunto de pruebas OGC API Features 1.0, se necesita un conjunto de datos de prueba. Teniendo en cuenta que el proyecto QGIS subyacente no necesita una configuración específica para este conjunto de pruebas, podemos usar el archivo .qgs proporcionado en el repositorio de capacitación:

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

Después de la descarga, un proyecto world.qgs está disponible en el subdirectorio qgis-server-tutorial. Este proyecto debe registrarse como proyecto predeterminado para QGIS Server gracias a la variable de entorno QGIS_SERVER_PROJECT_FILE. De esta manera, no necesitamos establecer explícitamente el parámetro de proveedor MAP del servidor QGIS.

Ahora que todo está configurado correctamente, podemos ejecutar el conjunto de pruebas 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 ============================