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

ขณะพัฒนาเว็บฮุค คุณอาจต้องทดสอบกับ Business จริง เพย์โหลดของข้อความ แทนที่จะสร้างการทดสอบด้วยตนเอง คุณสามารถใช้ส่วนขยายธุรกิจ เฟรมเวิร์กการทดสอบข้อความเพื่อทดสอบเว็บฮุคด้วยเพย์โหลด 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 randomUuid boolean หากเป็นจริง ให้กำหนดรหัสการสนทนาเป็น UUID แบบสุ่มที่มีรูปแบบที่ถูกต้อง หากเป็น "เท็จ" ตั้งค่ารหัสการสนทนาทั้งหมดเป็น "CONVERSATION-ID"
BMTF_TIMEOUT เวลานอก จำนวนหรือสตริงเวลาที่จัดรูปแบบ ตั้งค่าการหมดเวลาเป็นมิลลิวินาทีสำหรับกรอบการทดสอบแต่ละรายการ ระยะหมดเวลาเริ่มต้นคือ 2,000 มิลลิวินาทีสําหรับแต่ละกรอบการทดสอบ ดูข้อมูลอ้างอิงของ Mocha API สำหรับรายละเอียดเกี่ยวกับข้อกำหนดการจัดรูปแบบและประเภท

ตัวอย่างเช่น โค้ดต่อไปนี้เรียกใช้เฟรมเวิร์กการทดสอบจากบรรทัดคำสั่ง ที่เปิดใช้ตัวเลือก UUID แบบสุ่มและมีระยะหมดเวลา 1000 มิลลิวินาที

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});