หมวดหมู่: technology

Postman Pre-request Scripts: การเขียน JavaScript เพื่อเจนค่า Dynamic Token หรือ Timestamp ก่อนยิง APIPostman Pre-request Scripts: การเขียน JavaScript เพื่อเจนค่า Dynamic Token หรือ Timestamp ก่อนยิง API

ในโลกของการพัฒนาซอฟต์แวร์สมัยใหม่ การทดสอบ API ไม่ได้เป็นเพียงแค่การส่งคำขอด้วยข้อมูลคงที่อีกต่อไป ด้วยข้อกำหนดด้านความปลอดภัยและประสิทธิภาพที่สูงขึ้นเรื่อย ๆ ทำให้ API ส่วนใหญ่ต้องอาศัยค่าพารามิเตอร์ที่มีความเปลี่ยนแปลงตลอดเวลา เช่น โทเคนเฉพาะกิจ (Ephemeral Tokens), ลายเซ็นดิจิทัล (Signatures) ที่ผูกกับเวลา, หรือรหัสยืนยันแบบครั้งเดียว (One-Time Passwords: OTPs) การจัดการข้อมูลเหล่านี้อย่างถูกต้องก่อนที่คำขอจะถูกส่งออกไปจึงเป็นหัวใจสำคัญของการทดสอบระบบให้สมบูรณ์


Postman Pre-request Scripts: กลไกเบื้องหลังการสร้างค่า Dynamic Data

Pre-request Script ใน Postman คือพื้นที่ที่อนุญาตให้เราเขียนโค้ด JavaScript เพื่อรันคำสั่งก่อนที่ HTTP Request จะถูกส่งออกไปจริง ๆ นี่คือจุดที่เราสามารถเข้าถึงและจัดการตัวแปรสภาพแวดล้อม (Environment Variables) หรือตัวแปร Global ได้อย่างเต็มรูปแบบ แนวคิดหลักคือการใช้สคริปต์นี้เพื่อ “เตรียม” ข้อมูลให้พร้อมสำหรับการเรียก API ครั้งถัดไป ไม่ว่าจะเป็นการคำนวณค่า Hash, การสร้าง Timestamp ปัจจุบัน, หรือการดึงข้อมูลจากแหล่งภายนอก (เช่น การจำลองกระบวนการ OAuth Flow)

เมื่อเราเข้าใจกลไกนี้แล้ว เราจะสามารถเขียนโค้ดเพื่อกำหนดค่าตัวแปรในรูปแบบที่ API ต้องการได้อย่างแม่นยำ ตัวอย่างเช่น หาก API ต้องการ Bearer Token ที่หมดอายุภายใน 15 นาที เราก็สามารถใช้ JavaScript คำนวณเวลาปัจจุบันและสร้างโทเคนจำลองขึ้นมา แล้วบันทึกมันลงใน Environment Variable เพื่อให้ Request Header สามารถดึงค่านี้ไปใช้งานได้ทันที

// ตัวอย่างการสร้าง Timestamp และบันทึกเป็น Environment Variable
const now = new Date();
const timestamp = now.toISOString();

// บันทึกค่า Timestamp ลงในตัวแปรชื่อ 'currentTimestamp'
pm.environment.set("currentTimestamp", timestamp); 

console.log(`Generated Timestamp: ${timestamp}`);


การนำไปประยุกต์ใช้ในชีวิตและการทำงานยุคใหม่

  • การจำลองกระบวนการ OAuth Flow: ใช้สคริปต์เพื่อจัดการขั้นตอนหลายอย่าง เช่น การรับ Authorization Code, การแลกเปลี่ยน Code เป็น Access Token และ Refresh Token โดยอัตโนมัติ ทำให้สามารถทดสอบวงจรชีวิตของโทเคนได้อย่างสมจริงโดยไม่ต้องทำซ้ำด้วยมือ
  • การจัดการ State และ Sequential Testing: เมื่อเราต้องการทดสอบ API ที่ต้องอาศัยผลลัพธ์จากขั้นตอนก่อนหน้า (เช่น การสร้าง User ID จาก Request แรก แล้วนำ ID นั้นไปใช้ในการเรียก API เพื่ออัปเดตข้อมูลใน Request ถัดมา) Pre-request Script ช่วยให้เราสามารถดึงค่าที่ถูกบันทึกไว้ในตัวแปรเพื่อส่งต่อได้อย่างราบรื่น

การใช้ JavaScript ใน Pre-request Scripts ไม่ได้เป็นเพียงแค่ฟีเจอร์เสริม แต่คือเครื่องมือที่ยกระดับการทดสอบ API จากระดับพื้นฐานไปสู่ระดับ Automation Testing ที่แท้จริง มันช่วยให้เราสามารถจำลองพฤติกรรมของระบบในโลกแห่งความเป็นจริงได้อย่างแม่นยำ ทำให้มั่นใจได้ว่าแอปพลิเคชันของเราจะทำงานได้อย่างถูกต้องแม้ต้องเผชิญกับข้อมูลที่มีความซับซ้อนและเปลี่ยนแปลงอยู่ตลอดเวลา


อ่านเพิ่มเติม