8. اختبار المطابقة لمعايير OGC

يوفر اتحاد Open Geospatial Consortium (OGC) اختبارات يمكن تشغيلها مجانًا للتأكد من أن الخادم متوافق مع مواصفة معينة. يقدّم هذا الفصل درسًا سريعًا لإعداد اختبارات WMS و OGC API Features على نظام Ubuntu. ويمكن العثور على توثيق مفصل في موقع OGC.

8.1. pyogctest

pyogctest أداة Python مخصصة لتشغيل اختبارات OGC بسهولة. ويمكن تثبيتها في بيئة افتراضية:

virtualenv venv
source venv/bin/activate
pip install pyogctest

8.2. مجموعة اختبارات WMS 1.3.0

لتشغيل مجموعة اختبارات WMS 1.3.0 بنجاح، يلزم توفر مجموعة بيانات اختبار محددة. ويمكن تنزيلها باستخدام pyogctest:

pyogctest -s wms130 --download

بعد التنزيل، يصبح المشروع teamengine_wms_130.qgs متاحًا في المجلد الجديد data. ويجب تسجيل هذا المشروع كمشروع افتراضي لـ QGIS Server بواسطة متغير البيئة QGIS_SERVER_PROJECT_FILE. وبهذه الطريقة لا نحتاج إلى تعيين معامل المورّد MAP الخاص بـ QGIS Server صراحةً.

يلزم أيضًا إعداد خاص للامتثال لاختبارات البيانات الوصفية (metadata). فبعض البيانات الوصفية متاحة في المجلد data/metadata ويجب أن تكون متاحة لإطار اختبار OGC عبر عنوان URL. وأسهل خيار هو ضبط خادم الويب لديك ليتيح الوصول عبر عنوان مثل http://XXX.XXX.XXX.XXX/metadata/Autos.xml. تُعرَّف عناوين URL هذه للبيانات الوصفية في المشروع وتُدرج في مستند WMS GetCapabilities. لذا يجب تحديث المشروع وفقًا لبيئة الاختبار لديك ليتمكن QGIS Server من توليد مستند XML صالح:

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

الآن بعد أن أصبح كل شيء مضبوطًا بشكل صحيح، يمكننا تشغيل مجموعة اختبارات WMS 1.3.0:

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

بعد التنزيل، يصبح المشروع world.qgs متاحًا في المجلد الفرعي qgis-server-tutorial. ويجب تسجيل هذا المشروع كمشروع افتراضي لـ QGIS Server بواسطة متغير البيئة QGIS_SERVER_PROJECT_FILE. وبهذه الطريقة لا نحتاج إلى تعيين معامل المورّد MAP الخاص بـ QGIS Server صراحةً.

الآن بعد أن أصبح كل شيء مضبوطًا بشكل صحيح، يمكننا تشغيل مجموعة اختبارات OGC API Features 1.0:

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