ทดสอบเว็บฮุค

ขณะพัฒนาเว็บฮุค คุณอาจต้องการทดสอบเพย์โหลด ของ 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});