هنگام توسعه وب هوک خود، ممکن است بخواهید آن را با بارهای واقعی Business Messages آزمایش کنید. بهجای ایجاد آزمایشها بهصورت دستی، میتوانید از چارچوب آزمایشی پیامهای کسبوکار برای آزمایش وبهوک خود با انواع مختلف بار JSON که ممکن است وبهوک شما در حال تولید دریافت کند، استفاده کنید.
برای شروع، تنها چیزی که نیاز دارید یک URL به یک نمونه در حال اجرا از وب هوک خود است. نصب فریم ورک تست آسان است و شما می توانید وب هوک خود را با یک فرمان تست کنید.
شروع کردن
فریم ورک را نصب کنید
ساده ترین راه برای نصب فریم ورک با مدیریت بسته NPM است. چارچوب در رجیستری بسته NPM منتشر شده است، بنابراین می توانید آن را با npm
نصب کنید:
npm install -g bm-test-framework
تست ها را اجرا کنید
با نصب بسته، می توانید URL webhook خود را به عنوان یک متغیر محیطی تهیه کنید و با دستور زیر تمام تست ها را اجرا کنید:
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 تصادفی با قالب معتبر تنظیم کنید. اگر نادرست است، همه شناسههای مکالمه را روی «CONVERSATION-ID» تنظیم میکند. |
BMTF_TIMEOUT | تایم اوت | شماره یا رشته زمان قالب بندی شده | مدت زمان را برای هر مورد آزمایشی بر حسب میلی ثانیه تنظیم می کند. زمان پیشفرض برای هر مورد آزمایشی 2000 میلیثانیه است. برای اطلاع از مشخصات دقیق نوع و قالببندی به مرجع Mocha API مراجعه کنید. |
به عنوان مثال، کد زیر چارچوب آزمایشی را از خط فرمان با فعال بودن گزینه تصادفی UUID و با بازه زمانی 1000 میلیثانیه اجرا میکند:
BMTF_ENDPOINT_URL=<Your webhook URL> BMTF_TIMEOUT=1000 BMTF_RANDOM_UUID=true bm-test-framework
برای سفارشی کردن رفتار تست در پروژه NodeJS خود، میتوانید هنگام ایجاد BmTestFramework
خود، همان متغیرها را به شیء config
ارسال کنید:
const bmTestFramework = new BmTestFramework({endpointURL: <Your webhook URL>, randomUuid: true, timeout: 1000});