วัน: 4 กุมภาพันธ์ 2010

การทดสอบระบบเว็บและ API (Web UI Testing, HTTP Methods, Status Codes, REST API Testing ด้วย Postman)การทดสอบระบบเว็บและ API (Web UI Testing, HTTP Methods, Status Codes, REST API Testing ด้วย Postman)

ในยุคของสถาปัตยกรรมแบบบริการ (Service-Oriented Architecture – SOA) ระบบซอฟต์แวร์สมัยใหม่ไม่ได้มีเพียงแค่ส่วนติดต่อผู้ใช้ (Web UI) เท่านั้น แต่ยังพึ่งพาชั้นของ Application Programming Interface (API) ที่ทำงานอยู่เบื้องหลังอย่างซับซ้อน การรับประกันความถูกต้องและเสถียรภาพของข้อมูล ตั้งแต่การเรียกใช้งาน API ไปจนถึงการจัดเก็บในฐานข้อมูลอย่าง PostgreSQL จึงเป็นภารกิจสำคัญที่ทีมพัฒนาต้องให้ความสำคัญ

การแยกแยะขอบเขตการทดสอบ: UI vs. API

การทดสอบระบบที่สมบูรณ์ต้องแยกแยะขอบเขตการทดสอบอย่างชัดเจน Web UI Testing คือการจำลองมุมมองของผู้ใช้จริง (Front-end) เพื่อตรวจสอบว่าองค์ประกอบต่างๆ แสดงผลและทำงานได้ตามที่คาดหวังหรือไม่ ขณะที่ API Testing จะเจาะลึกไปถึง ‘สัญญา’ การสื่อสารระหว่างระบบ (Back-end) โดยไม่สนใจรูปลักษณ์ภายนอก แต่เน้นที่ความถูกต้องของข้อมูลและการประมวลผลที่ส่งไปยังฐานข้อมูล PostgreSQL

แก่นของการทดสอบ API: HTTP Methods และ Status Codes

หัวใจของการทดสอบ API คือการเข้าใจหลักการสื่อสารมาตรฐานผ่าน HTTP Methods และ Status Codes เราใช้ Postman เป็นเครื่องมือหลักในการจำลองการเรียกเหล่านี้:

  • GET: ใช้เพื่อดึงข้อมูล (Read) จาก PostgreSQL โดยระบุเงื่อนไขที่ต้องการ
  • POST: ใช้เพื่อสร้างข้อมูลใหม่ (Create) ในตารางของ PostgreSQL
  • PUT/PATCH: ใช้เพื่ออัปเดตข้อมูล (Update) ที่มีอยู่แล้ว
  • DELETE: ใช้เพื่อลบข้อมูล (Delete) ออกจากระบบ

การตรวจสอบ Status Codes เป็นสิ่งสำคัญในการวินิจฉัยปัญหา เช่น 200 OK (สำเร็จ), 201 Created (สร้างสำเร็จ), 400 Bad Request (ข้อมูลที่ส่งมาผิดรูปแบบ), หรือ 500 Internal Server Error (เกิดข้อผิดพลาดที่เซิร์ฟเวอร์)

การเชื่อมโยง API Testing กับ PostgreSQL

เมื่อเราใช้ Postman เพื่อทดสอบ API ที่เชื่อมต่อกับ PostgreSQL สิ่งที่เรากำลังทดสอบคือกระบวนการทั้งหมด: ตั้งแต่การรับ Request, การตรวจสอบความถูกต้องของข้อมูล, จนถึงการดำเนินการ SQL Query ที่ถูกต้องในฐานข้อมูล ตัวอย่างเช่น หากเราต้องการดึงรายการสินค้าที่ถูกระบุด้วยรหัส 1,2,3 เราจะส่ง GET Request ไปยัง Endpoint ที่ถูกออกแบบมาให้รันคำสั่ง SQL ดังนี้:

SQL

-- ตัวอย่างการเรียกข้อมูล (GET) จาก PostgreSQL ผ่าน API Layer
SELECT product_name, price FROM products WHERE product_id IN ('1', '2', '3');

หากเราต้องการสร้างข้อมูลใหม่ (POST) เราจะส่งข้อมูลที่ผ่านการตรวจสอบแล้วไปยัง Endpoint ซึ่งจะถูกนำไปใช้ในการรันคำสั่ง INSERT ใน PostgreSQL:

SQL

-- ตัวอย่างการสร้างข้อมูล (POST) ใน PostgreSQL
INSERT INTO products (product_id, product_name, price) VALUES ('new', 'apple', 10.50);

บทสรุป: แนวทางปฏิบัติที่ดีที่สุด

การทดสอบระบบที่ครอบคลุมต้องไม่มองข้ามการทดสอบ API โดยเด็ดขาด การใช้ Postman ช่วยให้เราสามารถจำลองการสื่อสาร HTTP และตรวจสอบความถูกต้องของข้อมูลที่ส่งไปถึง PostgreSQL ได้อย่างรวดเร็วและแม่นยำ การเข้าใจทั้ง Web UI, HTTP Methods, Status Codes และโครงสร้างฐานข้อมูลอย่าง PostgreSQL จะช่วยให้เราสร้างระบบที่เสถียรและเชื่อถือได้ในระดับ Senior Architect อย่างแท้จริง