כשאתם מפתחים את התגובה לפעולה מאתר אחר (webhook), כדאי לבדוק אותה בעזרת עסקים אמיתיים מטענים ייעודיים (payloads) של Messages. במקום ליצור בדיקות באופן ידני, אפשר להשתמש מסגרת בדיקה של Messages לבדיקת ה-webhook עם סוגים שונים של מטען ייעודי (payload) של JSON שהתגובה לפעולה מאתר אחר (webhook) עשויה לקבל בסביבת הייצור.
כדי להתחיל, כל מה שצריך הוא כתובת URL מופע פעיל של ה-webhook. קל להתקין את מסגרת הבדיקה, אפשר לבדוק את ה-webhook באמצעות פקודה אחת.
תחילת העבודה
התקנת ה-framework
הדרך הקלה ביותר להתקין את ה-framework היא באמצעות מנהל החבילות של NPM.
ה-framework מתפרסם במרשם של חבילות NPM, כך שאפשר להתקין אותו.
עם npm
:
npm install -g bm-test-framework
הרצת הבדיקות
כשהחבילה מותקנת, אפשר לציין את ה-webhook 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
בהרצת הבדיקה לדוגמה הזו, כל מקרי הבדיקה עברו בהצלחה.
אם התגובה לפעולה מאתר אחר (webhook) נכשלת באחד ממקרי הבדיקה, המשמעות היא שהתגובה לא
מגיבים באמצעות 200 OK
למטען הייעודי (payload) של ה-JSON של אותו תרחיש. במקרה כזה, הבדיקה
framework מדפיסה מידע על השגיאות כדי לעזור לכם לנפות באגים. לצפייה
מסגרת בדיקה README
לקבל מידע נוסף על מקרי בדיקה ספציפיים.
שימוש ב-framework בפרויקט NodeJS
להשתמש ב-framework מתוך הקוד שלכם בפרויקט 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
כדי להריץ בדיקה ספציפית. לדוגמה, הקוד הבא
מפעיל את הבדיקה הראשונה ב-framework:
bmTestFramework.sendPayload(bmTestFramework.payloads[0])
הגדרת הבדיקות
בנוסף למשתנה הסביבה BMTF_ENDPOINT_URL
הנדרש, אתם יכולים גם
להגדיר גם משתני סביבה אופציונליים כדי להתאים אישית את התנהגות הבדיקה:
משתנה הסביבה | שם שדה ההגדרה | סוג | תיאור |
---|---|---|---|
BMTF_RANDOM_UUID | randomUuid | בוליאני | אם הערך הוא True, מזהה השיחה מוגדר כ-UUID אקראי עם פורמט חוקי. אם False, כל מזהי השיחה מוגדרים כ-"CONVERSATION-ID". |
BMTF_TIMEOUT | פסק זמן | מספר או מחרוזת זמן מעוצבת | מגדיר את הזמן הקצוב לתפוגה באלפיות שנייה עבור כל מקרה בדיקה. הזמן הקצוב לתפוגה שמוגדר כברירת מחדל הוא 2,000 אלפיות השנייה לכל תרחיש בדיקה. בחומר העזר בנושא API של Mocha ניתן למצוא מפרטים מפורטים של סוג ועיצוב. |
לדוגמה, הקוד הבא מריץ את מסגרת הבדיקה משורת הפקודה עם אפשרות UUID אקראית מופעלת והזמן הקצוב שלו לתפוגה הוא 1,000 אלפיות שנייה:
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});