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