בדיקה של התגובה לפעולה מאתר אחר (webhook)

במהלך הפיתוח של התגובה לפעולה מאתר אחר (webhook), מומלץ לבדוק את המטען הייעודי בפועל של Business Messages. במקום ליצור בדיקות באופן ידני, תוכלו להשתמש במסגרת הבדיקה של Business Messages כדי לבדוק את ה-webhook עם סוגים שונים של מטען ייעודי (webhook) שעשויים לקבל בסביבת הייצור.

כדי להתחיל, צריך כתובת URL למופע של ה-webhook שלכם. קל להתקין את מסגרת הבדיקה, ואפשר לבדוק את ה-webhook בפקודה אחת.

איך מתחילים

התקנת המסגרת

הדרך הקלה ביותר להתקין את המסגרת היא באמצעות מנהל החבילות של NPM. המסגרת פורסמה במרשם החבילה 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) נכשלה באחד ממקרי הבדיקה, המשמעות היא שה-webhook לא מגיב ל-200 OK למטען הייעודי (payload) של ה-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 רנדומלי boolean אם הערך הוא True, המערכת מגדירה את מזהה השיחה ל-UUID אקראי בפורמט חוקי. אם הערך הוא FALSE, המערכת מגדירה את כל מזהי השיחות ל-"Talk-ID".
BMTF_STOPS זמן קצוב לתפוגה מחרוזת זמן או מספר המדיניות מגדירה את הזמן הקצוב לתפוגה, באלפיות שנייה, לכל מקרה בדיקה. הזמן הקצוב לתפוגה של ברירת מחדל הוא 2,000 אלפיות השנייה לכל מקרה בדיקה. מומלץ לעיין בחומר העזר בנושא Mocha API כדי לקבל מפרטים מפורטים של הסוגים והפורמטים.

לדוגמה, הקוד הבא מפעיל את מסגרת הבדיקה משורת הפקודה, עם הפעלת אפשרות 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});