במהלך הפיתוח של התגובה לפעולה מאתר אחר (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});