ในยุคของสถาปัตยกรรม Microservices ที่ API คือเส้นเลือดใหญ่ในการเชื่อมต่อระบบ การทดสอบระบบด้วยวิธีการ Manual จึงไม่สามารถตอบโจทย์เรื่องความเร็วและความน่าเชื่อถือได้อีกต่อไป การทำ Automation API Testing จึงกลายเป็นมาตรฐานที่ทุกทีมพัฒนาต้องมี เครื่องมืออย่าง Postman ได้ยกระดับตัวเองจากเครื่องมือส่งคำขอ (Requester) ให้กลายเป็นแพลตฟอร์มการเขียนสคริปต์ที่ทรงพลังสำหรับการทดสอบอัตโนมัติ
หลักการทำงานของ Scripting ใน Postman
หัวใจของการทำ Automation API Testing คือการสร้างวงจรการทดสอบแบบ Dynamic ซึ่งหมายความว่าการเรียกใช้ API หนึ่งครั้งต้องอาศัยข้อมูลที่ได้จาก Response ของ API ก่อนหน้า การเขียนสคริปต์ด้วย JavaScript ในสองส่วนหลักคือ Pre-request Script และ Tests Script จึงเข้ามาเติมเต็มกระบวนการนี้อย่างสมบูรณ์
⚙️ Pre-request Script: การเตรียมสภาพแวดล้อม (Setup)
Pre-request Script ทำหน้าที่รันโค้ดก่อนที่ Request จะถูกส่งออกไปจริง มีวัตถุประสงค์หลักในการเตรียมข้อมูลที่จำเป็น เช่น การสร้าง Bearer Token, การคำนวณค่า Hash, หรือการกำหนดค่าตัวแปร Environment ที่ใช้ร่วมกันในหลายๆ Request เพื่อให้มั่นใจว่า Request นั้นๆ จะมีข้อมูลที่สมบูรณ์พร้อมสำหรับการทำงาน
✅ Tests Script: การตรวจสอบความถูกต้อง (Validation)
Tests Script จะรันโค้ดหลังจากที่ได้รับ Response กลับมาแล้ว มีบทบาทสำคัญในการทำ Assertions เพื่อตรวจสอบว่าผลลัพธ์ที่ได้นั้นถูกต้องตามข้อกำหนด (Specification) หรือไม่ เราสามารถตรวจสอบได้ตั้งแต่ Status Code (เช่น 200 OK), การยืนยันว่า Field ข้อมูลสำคัญมีอยู่จริง, ไปจนถึงการตรวจสอบความสัมพันธ์ของข้อมูล (Data Integrity) ซึ่งในทางปฏิบัติ การตรวจสอบความสมบูรณ์ของข้อมูลมักจะเชื่อมโยงกับการตรวจสอบความถูกต้องของฐานข้อมูล
ตัวอย่างการตรวจสอบข้อมูลด้วย PostgreSQL Concept
สมมติว่า API Endpoint ของเราคือการสร้างรายการสินค้า (Product) และเราต้องการตรวจสอบว่าข้อมูลที่ส่งมานั้นมีรูปแบบที่ถูกต้องและสามารถนำไปประมวลผลในฐานข้อมูล PostgreSQL ได้อย่างสมบูรณ์ เราสามารถใช้ Tests Script เพื่อจำลองการตรวจสอบความสมบูรณ์ของข้อมูล (Data Validation) โดยใช้แนวคิดของ SQL ในการตรวจสอบความถูกต้องของชุดข้อมูล
ในสถานการณ์จริง โค้ดใน Tests Script จะเป็น JavaScript แต่เราจะแสดงตัวอย่างการตรวจสอบความสมบูรณ์ของข้อมูลที่คาดว่าจะถูกส่งไปยัง PostgreSQL เพื่อให้เห็นภาพการตรวจสอบเชิงลึก:
SQL
-- ตัวอย่างการตรวจสอบความสมบูรณ์ของข้อมูล (Data Integrity Check) หลังได้รับ Response JSON
-- สมมติว่า Response มีรายการ ID และ Status ที่ต้องตรวจสอบ
SELECT
product_id,
status_code,
CASE
WHEN status_code = 'SUCCESS' AND product_id IS NOT NULL THEN 'Valid'
WHEN status_code = 'ERROR' AND product_id IS NULL THEN 'Missing ID'
ELSE 'Invalid Status'
END AS validation_result
FROM
(VALUES ('p101', 'SUCCESS'), ('p102', 'ERROR'), ('p103', 'SUCCESS')) AS validation_data(product_id, status_code);
-- การใช้ PostgreSQL เพื่อตรวจสอบว่าไม่มีรายการใดที่มีสถานะเป็น 'ERROR' โดยไม่มีรหัสสินค้า
SELECT
COUNT(*) FROM
api_response_logs
WHERE
status_code = 'ERROR' AND product_id IS NULL;
สรุปและแนวทางปฏิบัติที่ดีที่สุด (Best Practices)
การทำ Automation API Testing ไม่ได้จบแค่การส่ง Request แต่คือการสร้างระบบนิเวศของการทดสอบที่ครอบคลุม ตั้งแต่การเตรียมข้อมูล (Pre-request) ไปจนถึงการยืนยันความถูกต้องของข้อมูลในทุกระดับ (Tests Script) การใช้ Scripting ใน Postman ผสานกับการตรวจสอบความสมบูรณ์ของข้อมูลที่ระดับฐานข้อมูล (เช่น PostgreSQL) จะช่วยให้เรามั่นใจได้ว่า API ไม่เพียงแต่ทำงานได้ แต่ยังทำงานได้อย่างถูกต้องตามหลักการทางธุรกิจ (Business Logic) ในทุกสถานการณ์ การฝึกฝนการเขียน Scripting เหล่านี้จะช่วยยกระดับทักษะของคุณให้เป็นระดับ Senior Architect อย่างแท้จริง