8. Pruebas de conformidad OGC
El Open Geospatial Consortium (OGC) proporciona pruebas que se pueden ejecutar gratis para asegurar que un servidor cumple con ciertas especificaciones. Este capítulo proporciona un rápido tutorial para configurar las pruebas de las Funciones WMS y OGC API en un sistema Ubuntu. Se puede encontrar documentación detallada en la Página web.
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 ============================