PlusMagi's Blog By Pitt Phunsanit API,Automated Testing,Backend,devops,REST,technology Postman Tests Scripts: การเขียน Automated Test Assertions เพื่อตรวจสอบ Response Status, Time และ Schema

Postman Tests Scripts: การเขียน Automated Test Assertions เพื่อตรวจสอบ Response Status, Time และ Schema

ในโลกของการพัฒนาซอฟต์แวร์ที่ขับเคลื่อนด้วย Microservices และ API เป็นหัวใจหลัก การรับประกันความเสถียรและความถูกต้องของข้อมูลที่ส่งผ่านระหว่างระบบจึงเป็นภารกิจที่ท้าทายอย่างยิ่ง การทดสอบแบบ Manual ไม่เพียงพอที่จะครอบคลุมทุกสถานการณ์ที่อาจเกิดขึ้นได้ เราจึงจำเป็นต้องยกระดับการตรวจสอบคุณภาพ (Quality Assurance) ไปสู่ระดับอัตโนมัติ เพื่อให้มั่นใจว่า API แต่ละตัวทำงานได้อย่างสมบูรณ์ตามข้อกำหนด ทั้งในแง่ของผลลัพธ์ สถานะ และประสิทธิภาพ


เจาะลึกรายละเอียดและประเด็นสำคัญ

หัวใจของการทดสอบ API ที่มีประสิทธิภาพคือการเขียน Automated Test Assertions ซึ่งเป็นชุดคำสั่งที่ใช้ตรวจสอบว่า Response ที่ได้รับจาก Server นั้น ตรงตามความคาดหวังหรือไม่ การตรวจสอบไม่ได้จำกัดอยู่แค่รหัสสถานะ (Status Code) เท่านั้น แต่ยังรวมถึงการวัดเวลาตอบสนอง (Response Time) และโครงสร้างข้อมูล (Schema Validation) ด้วย

สำหรับ Status Code เราใช้คำสั่งพื้นฐานเพื่อยืนยันว่า API ตอบกลับมาด้วยรหัสที่ถูกต้อง เช่น 200 OK หรือ 404 Not Found ส่วนการตรวจสอบ Schema นั้นมีความซับซ้อนกว่า โดยเราต้องเขียน Logic เพื่อวนลูป (Iterate) ตรวจสอบว่า Key และ Data Type ของทุกฟิลด์ใน JSON Response ตรงตามโมเดลข้อมูลที่เรากำหนดไว้หรือไม่

// 1. การตรวจสอบ Status Code (Assertion พื้นฐาน)
pm.test("Status code is 200 OK", function () {
    pm.response.to.have.status(200);
});

// 2. การตรวจสอบ Response Time (Performance Assertion)
pm.test("Response time is less than 500ms", function () {
    const responseTime = pm.config.responseTime; // หรือใช้ pm.info.response.time
    pm.expect(responseTime).to.be.below(500);
});

// 3. การตรวจสอบ Schema (Data Structure Assertion)
pm.test("Response body contains required fields", function () {
    const jsonData = pm.response.json();
    pm.expect(jsonData).to.have.property('id'); // ตรวจสอบว่ามี field 'id'
    pm.expect(typeof jsonData.data).to.equal('string'); // ตรวจสอบ Data Type
});


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

  • การผสานรวมกับ CI/CD Pipeline: การนำ Postman Collection Scripts ไปใช้เป็นส่วนหนึ่งของ Continuous Integration (CI) Tools เช่น Jenkins หรือ GitHub Actions ช่วยให้มั่นใจได้ว่าทุกครั้งที่มีโค้ดใหม่ถูก Push เข้า Repository จะมีการทดสอบ API อัตโนมัติทันที ทำให้สามารถตรวจจับ Regression Bugs ได้ตั้งแต่เนิ่นๆ ก่อนที่โค้ดจะไปถึง Production Environment
  • การทำ Contract Testing: ในสถาปัตยกรรมแบบ Microservices แต่ละบริการต้องสื่อสารกันอย่างถูกต้อง การใช้ Assertions ที่เข้มงวดช่วยให้ทีมสามารถกำหนด “สัญญา” (Contract) ของ API ได้ชัดเจน ว่า Input และ Output ต้องเป็นอย่างไร เพื่อป้องกันปัญหาเมื่อมีการอัปเดตบริการใดบริการหนึ่ง

การเรียนรู้และประยุกต์ใช้เทคนิค Automated Test Assertions เหล่านี้ ไม่เพียงแต่ช่วยให้ทีมพัฒนาสามารถส่งมอบผลิตภัณฑ์ที่มีคุณภาพสูงได้อย่างรวดเร็วเท่านั้น แต่ยังเป็นการสร้างวัฒนธรรมองค์กรที่เน้นความแม่นยำและความน่าเชื่อถือของระบบ (Reliability-First Culture) ซึ่งเป็นทักษะสำคัญที่ทุก QA Automation Specialist ในยุคปัจจุบันต้องมี


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

Exit mobile version