8. Teste de conformidade OGC
The Open Geospatial Consortium (OGC) provides tests which can be run free of charge to make sure a server is compliant with a certain specification. This chapter provides a quick tutorial to setup the WMS and OGC API Features tests on an Ubuntu system. A detailed documentation can be found at the OGC website.
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 ============================