ขณะพัฒนาเว็บฮุค คุณอาจต้องการทดสอบเพย์โหลด ของ Business Messages จริงๆ คุณใช้เฟรมเวิร์กการทดสอบ Business Messages เพื่อทดสอบเว็บฮุคด้วยเพย์โหลด 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 แบบสุ่มซึ่งมีรูปแบบที่ถูกต้อง หากเป็นเท็จ ให้ตั้งค่ารหัสการสนทนาทั้งหมดเป็น "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});