Page Object Model (POM) เป็น Design Pattern ที่ใช้ในการพัฒนา Automated Test Scripts โดยหลักการคือแยกโค้ดที่เกี่ยวข้องกับ UI ของเว็บแอปพลิเคชันออกจากตัวเทส เพื่อให้โค้ดมีโครงสร้างที่ชัดเจน, ดูแลง่าย, และลดการซ้ำซ้อนของโค้ด
หลักการของ Page Object Model
แยกโค้ด UI ออกจาก Test Scripts
- แต่ละหน้าหรือแต่ละองค์ประกอบของ UI จะถูกเก็บไว้ในคลาสของตัวเอง
- Test Scripts จะเรียกใช้เมธอดของ Page Object แทนที่จะเข้าถึง UI โดยตรง
ลดการซ้ำซ้อนของโค้ด (Code Reusability)
- เมื่อมีการเปลี่ยนแปลง UI สามารถแก้ไขที่ Page Object เพียงจุดเดียว
ทำให้ Test Scripts อ่านง่ายขึ้น (Readability & Maintainability)
- Test Scripts จะไม่ยุ่งเกี่ยวกับรายละเอียดของ Web Elements
โครงสร้างของ Page Object Model
1. Page Class (ตัวแทนของหน้าเว็บ)
- แต่ละหน้าของเว็บแอปจะมีคลาสเป็นของตัวเอง
- คลาสนี้จะเก็บตัวแปร Web Elements และเมธอดที่ใช้ทำงานกับหน้าเว็บ
2. Test Class (ใช้ Page Object ใน Test Scripts)
ข้อดีของ POM
✅ ทำให้โค้ดอ่านง่าย และเข้าใจง่าย
✅ ลดการทำซ้ำของโค้ด (Code Duplication)
✅ ง่ายต่อการแก้ไขและบำรุงรักษา
✅ ทำให้ Automated Test Scripts มีความยืดหยุ่นและเสถียรขึ้น
สรุป: Page Object Model เป็นแนวทางที่ช่วยให้เทสอัตโนมัติอ่านง่าย บำรุงรักษาง่าย และช่วยลดโค้ดซ้ำซ้อน เหมาะกับโปรเจคที่ต้องทำ Automated Testing ในระยะยาว

