اختبار الرد التلقائي على الويب

عند تطوير الرد التلقائي على الويب، قد تحتاج إلى اختباره باستخدام حمولات الرسائل الفعلية. بدلاً من إنشاء اختبارات يدويًا، يمكنك استخدام إطار عمل اختبار الرسائل التجارية لاختبار الرد التلقائي على الويب باستخدام أنواع حمولة JSON المختلفة التي قد يتلقّاها الرد التلقائي على الويب في مرحلة الإنتاج.

للبدء، كل ما تحتاج إليه هو عنوان URL لتشغيل مثيل للردّ التلقائي على الويب. يسهل تثبيت إطار عمل الاختبار، ويمكنك اختبار الردّ التلقائي على الويب بطلب واحد.

البدء

تثبيت إطار العمل

إنّ أسهل طريقة لتثبيت إطار العمل هي من خلال مدير حزمة NPM. يتم نشر إطار العمل في سجلّ حزمة NPM، حتى تتمكّن من تثبيته باستخدام npm:

npm install -g bm-test-framework

إجراء الاختبارات

بعد تثبيت الحزمة، يمكنك توفير عنوان URL للردّ التلقائي على الويب كمتغيّر في البيئة وإجراء جميع الاختبارات باستخدام الأمر التالي:

BMTF_ENDPOINT_URL=<Your webhook URL> bm-test-framework

تظهر نتائج إطار العمل التجريبي على النحو التالي:

  Sending payloads to <Your webhook URL>
      ✔ authentication-request.json should return 200
      ✔ event-receive.json should return 200
      ✔ image-message.json should return 200 (862ms)
      ✔ read-receipt.json should return 200
      ✔ suggestion-message.json should return 200
      ✔ text-message.json should return 200 (134ms)
      ✔ text-with-dialogflow-response.json should return 200 (128ms)
      ✔ user-receipt.json should return 200

في هذا المثال، تم تشغيل جميع حالات الاختبار بنجاح.

في حال تعذّر الرد التلقائي على الويب في إحدى حالات الاختبار، يعني ذلك أن الرد التلقائي على الويب لا يتوافق مع 200 OK مع حمولة JSON في حالة الاختبار هذه. في هذه الحالة، يطبع إطار العمل معلومات الخطأ لمساعدتك في تصحيح الأخطاء. يمكنك الاطّلاع على إطار عمل README الخاص بالاختبار لمعرفة المزيد من المعلومات عن حالات اختبار معيّنة.

استخدام إطار العمل في مشروع NodeJS

لاستخدام إطار العمل من داخل رمزك في مشروع NodeJS أو من داخل حزمة اختبار Mocha، عليك أولاً تثبيت الحزمة كاعتماد على التطوير:

npm install --save-dev bm-test-framework

بعد التثبيت، يمكنك إنشاء عنصر BmTestFramework لإدارة الاختبارات:

const BmTestFramework = require('bm-test-framework');
const bmTestFramework = new BmTestFramework({endpointURL: <Your webhook URL>});

تحتوي مصفوفة الأعضاء payloads على جميع حالات الاختبار. يمكنك استخدام الطريقة sendPayload لإجراء اختبار محدّد. على سبيل المثال، تُجري الرمز التالي أول اختبار في إطار العمل:

bmTestFramework.sendPayload(bmTestFramework.payloads[0])

ضبط الاختبارات

بالإضافة إلى متغيّر البيئة BMTF_ENDPOINT_URL المطلوب، يمكنك أيضًا ضبط متغيّرات بيئة اختيارية لتخصيص سلوك الاختبار:

متغيِّر البيئة اسم حقل الإعداد النوع الوصف
رقم BMTF_RANDOM_UUID UUID عشوائي منطقي إذا تم ضبط السياسة على "صحيح"، يتم ضبط معرّف المحادثة على معرّف مستخدم عشوائي (UUID) عشوائي بتنسيق صالح. إذا كان هذا الإعداد غير صحيح، يتم ضبط جميع معرّفات المحادثات على &&;; المواد الدراسية ID&quot؛
BMTF_HOUR انتهت المهلة الرقم أو السلسلة الزمنية المنسَّقة تعمل على ضبط المهلة بالملي ثانية لكل حالة اختبار. المهلة التلقائية هي 2000 ملي ثانية لكل حالة اختبار. راجع مرجع واجهة برمجة التطبيقات Mocha للحصول على مواصفات تفصيلية للأنواع والتنسيق.

على سبيل المثال، يُجري الرمز التالي إطار عمل الاختبار من سطر الأوامر مع تفعيل خيار UUID العشوائي ومهلة 1000 ملي ثانية:

BMTF_ENDPOINT_URL=<Your webhook URL> BMTF_TIMEOUT=1000 BMTF_RANDOM_UUID=true bm-test-framework

لتخصيص سلوك الاختبار في مشروع NodeJS، يمكنك أيضًا تمرير المتغيّرات نفسها إلى الكائن config عند إنشاء BmTestFramework:

const bmTestFramework = new BmTestFramework({endpointURL: <Your webhook URL>, randomUuid: true, timeout: 1000});