ป้ายกำกับ: Api Automation

การทำ Automation API Testing บน Postman: การเขียน Pre-request Script และ Tests Script ด้วย JavaScript พร้อมตัวอย่างการทำ Automation API Testing บน Postman: การเขียน Pre-request Script และ Tests Script ด้วย JavaScript พร้อมตัวอย่าง

ในยุคของสถาปัตยกรรม 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 อย่างแท้จริง