8. OGC適合性試験

Open Geospatial Consortium (OGC)は、サーバーが特定の仕様に準拠していることを確認するために、無料で実行できるテストを提供しています。 この章では、Ubuntu システム上で WMS と OGC API Features テストをセットアップするための簡単なチュートリアルを提供します。詳細なドキュメントは OGC website にあります。

8.1. pyogctest

pyogctest はOGCテストを簡単に実行するためのPythonツールです。インストールは仮想環境で行うことができます:

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

8.2. WMS 1.3.0 テストスイート

WMS 1.3.0 テストスイートを成功裏に実行するには、特定のテストデータセットが必要です。 これは pyogctest を使ってダウンロードできます:

./pyogctest.py -s wms130 --download

ダウンロードが完了すると、新しい data ディレクトリに teamengine_wms_130.qgs プロジェクトが作成されます。このプロジェクトは、QGIS_SERVER_PROJECT_FILE 環境変数を使ってQGIS Server のデフォルトプロジェクトとして登録する必要があります。これにより、QGIS Server の MAP ベンダーパラメーターを明示的に設定する必要がなくなります。

メタデータのテストに準拠するためには、特定の設定も必要です。実際、いくつかのメタデータは data/metadata ディレクトリで利用可能であり、URL によって OGC テストフレームワークで利用可能でなければなりません。最も簡単な方法は、http://XXX.XXX.XXX.XXX/metadata/Autos.xml のようなURLでアクセスできるようにウェブサーバーを設定することです。これらのメタデータの URL はプロジェクトで定義され、WMS の GetCapabilities ドキュメントに挿入されます。そのため、QGIS Serverが有効なXMLドキュメントを生成できるように、テスト環境に応じてプロジェクトを更新する必要があります:

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

これで、すべてが適切に設定され、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. OGC API Features テストスイート

OGC API Features 1.0 テストスイートの実行には、テストデータセットが必要です。基礎となるQGISプロジェクトがこのテストスイートに対して特別な設定を必要としないことを考慮すると、トレーニングリポジトリで提供されている .qgs ファイルを使用することができます:

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

ダウンロード後、 qgis-server-tutorial サブディレクトリに world.qgs プロジェクトが用意されます。このプロジェクトを QGIS Server のデフォルトプロジェクトとして登録するには、QGIS_SERVER_PROJECT_FILE 環境変数を使用します。これにより、QGIS Server の MAP ベンダーパラメーターを明示的に設定する必要がなくなります。

これで、すべてが適切に設定され、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 ============================