Importante

Translation is a community effort you can join. This page is currently translated at 78.57%.

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