8. Teste de conformidade OGC

O Consórcio Geoespacial Aberto (CGA) fornece testes que podem ser executados gratuitamente para garantir que um servidor esteja em conformidade com uma determinada especificação. Este capítulo fornece um tutorial rápido para configurar os testes WMS e OGC API Características em um sistema Ubuntu. Uma documentação detalhada pode ser encontrada no site da OGC.

8.1. pyogctest

pyogctest é uma ferramenta Python dedicada a executar testes OGC facilmente. A instalação pode ser feita em ambiente virtual:

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

8.2. Conjunto de testes WMS 1.3.0

Para executar o conjunto de testes WMS 1.3.0 com sucesso, é necessário um conjunto de dados de teste específico. Ele pode ser baixado usando pyogctest:

./pyogctest.py -s wms130 --download

Após o download, um projeto MotordeEquipe_wms_130.qgs está disponível no novo diretório dados. Este projeto deve ser registrado como o projeto padrão para o QGIS Server graças à variável de ambiente QGIS_SERVIDOR_PROJETO_ARQUIVO. Desta forma, não precisamos definir explicitamente o parâmetro de fornecedor MAPA do Servidor QGIS.

Uma configuração específica também é necessária para cumprir os testes de metadados. De fato, alguns metadados estão disponíveis no diretório dados/metadados e devem estar disponíveis para o framework de teste OGC graças a uma URL. A opção mais fácil é configurar seu servidor web para ter acesso através de algo como http://XXX.XXX.XXX.XXX/metadados/Autos.xml. Esses URLs de metadados são definidos no projeto e inseridos no documento WMS ObterRecursos. Portanto, o projeto precisa ser atualizado de acordo com seu ambiente de teste para permitir que o Servidor QGIS gere um documento XML válido:

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

Agora que tudo está configurado corretamente, podemos executar a suíte de testes 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 testes de recursos da API OGC

Para executar o conjunto de testes do Recursos da API OGC 1.0, é necessário um conjunto de dados de teste. Considerando que o projeto QGIS subjacente não precisa de configuração específica para este conjunto de testes, podemos usar o arquivo .qgs fornecido no repositório de treinamento:

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

Após o download, um projeto mundo.qgs está disponível no subdiretório qgis-servidor-tutorial. Este projeto deve ser registrado como o projeto padrão para o QGIS Server graças à variável de ambiente QGIS_SERVIDOR_PROJETO_ARQUIVO. Desta forma, não precisamos definir explicitamente o parâmetro de fornecedor MAPA do Servidor QGIS.

Agora que tudo está configurado corretamente, podemos executar o conjunto de testes Recursos da API OGC 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 ============================