แนวทางปฏิบัติที่ดีที่สุดสำหรับ Playwright: 10 กฎที่ AI Agent มักทำผิด

AI agent สามารถเขียน Playwright test ได้ถึง 50 ชุดภายในหนึ่งนาที

ความเร็วนี้คือกับดัก

เทสต์เหล่านั้นมักจะล้มเหลวโดยไม่มีสาเหตุ AI agent มักจะคัดลอกรูปแบบเก่าๆ จากข้อมูลที่ใช้เทรน พวกมันไม่รู้ว่าเทสต์ของคุณล้มเหลวเมื่อคืนนี้ และพวกมันยังใช้พฤติกรรมที่ล้าสมัยอีกด้วย

ปฏิบัติตาม 10 กฎนี้เพื่อให้เทสต์ของคุณมีความเสถียร

  1. ใช้ role-based locators ใช้ getByRole, getByLabel, หรือ getByText ซึ่งจะตรงกับสิ่งที่มนุษย์มองเห็น ข้อผิดพลาดของ AI: Agent มักใช้ CSS หรือ XPath ซึ่งจะพังทันทีเมื่อคุณเปลี่ยนชื่อ class เพียงชื่อเดียว

  2. ใช้ web-first assertions ใช้ expect(locator).toBeVisible() ซึ่งจะทำการรอหน้าเว็บโดยอัตโนมัติ ข้อผิดพลาดของ AI: Agent มักจะใส่ await page.waitForTimeout(3000) การใช้ hard wait จะทำให้เกิด flaky tests

  3. แยกเทสต์ออกจากกัน (Keep tests isolated) แต่ละเทสต์ต้องเริ่มต้นด้วยสถานะที่สะอาด (clean state) ใช้ hooks ในการตั้งค่าสถานะ ข้อผิดพลาดของ AI: Agent มักจะเขียนเทสต์แบบต่อเนื่องกัน (chaining) หากเทสต์แรกล้มเหลว เทสต์ที่เหลือในไฟล์นั้นก็จะพังทั้งหมด

  4. เตรียมข้อมูล (Seed data) ผ่าน API ใช้ request fixture เพื่อส่งข้อมูลไปยัง backend โดยตรง ข้อผิดพลาดของ AI: Agent มักจะคลิกผ่านหน้าจอ UI ถึงสิบหน้าเพื่อสร้างผู้ใช้เพียงคนเดียว ซึ่งทำให้เทสต์ช้าและเปราะบาง

  5. ให้ความสำคัญกับ roles มากกว่า test IDs ใช้ getByRole เป็นอันดับแรก และใช้ data-testid เฉพาะเมื่อจำเป็นเท่านั้น ข้อผิดพลาดของ AI: Agent มักจะใส่ data-testid ไว้ในทุกอย่าง ซึ่งจะทำให้พลาดบั๊กในกรณีที่ปุ่มไม่มี label สำหรับ screen readers

  6. ตั้งค่า trace ให้บันทึกเมื่อมีการ retry ตั้งค่า trace เป็น 'on-first-retry' ใน config ของคุณ ข้อผิดพลาดของ AI: Agent มักจะปิดการทำ tracing ไว้เลย หรือไม่ก็เปิดทิ้งไว้สำหรับการรันทุกครั้ง แบบแรกจะทำให้ขาดหลักฐานในการตรวจสอบ ส่วนแบบหลังจะทำให้ทุกอย่างช้าลง

  7. รันแบบขนาน (Run in parallel) ใช้ parallel mode และ sharding เพื่อแบ่งเทสต์ไปยังเครื่องต่างๆ ข้อผิดพลาดของ AI: Agent มักเขียนเทสต์ที่ใช้ผู้ใช้ (user) คนเดียวกัน ซึ่งจะทำให้เทสต์เหล่านี้ขัดแย้งกันเองเมื่อรันแบบขนาน

  8. ตัด if statements และ try blocks ออกไป เทสต์ควรดำเนินไปตามเส้นทางเดียว หากปุ่มควรจะปรากฏอยู่ตรงนั้น ก็ให้ใช้การ assert ข้อผิดพลาดของ AI: Agent มักจะครอบการคลิกด้วย if statements เพื่อหลีกเลี่ยง error ซึ่งเป็นการซ่อนบั๊กที่แท้จริงเอาไว้

  9. ทดสอบพฤติกรรม (behavior) ไม่ใช่โครงสร้างภายใน (internals) ตรวจสอบผลลัพธ์ที่มองเห็นได้บนหน้าจอ ข้อผิดพลาดของ AI: Agent มักจะ assert ที่ CSS classes หรือตัวแปร state ซึ่งสิ่งเหล่านี้จะพังทุกครั้งที่มีการทำ code refactor

  10. ใช้ projects เพื่อครอบคลุมการทดสอบทุก browser ใช้ projects array เพื่อทดสอบ Chromium, Firefox, และ WebKit ข้อผิดพลาดของ AI: Agent มักจะระบุ browser ไว้ตายตัว (hard-code) ทำให้คุณพลาดบั๊กที่เกิดขึ้นเฉพาะใน Safari

AI เขียนร่างแรกได้อย่างรวดเร็ว แต่มันขาดความรอบรู้

ชุดเทสต์ที่ผ่าน (green) แต่พิสูจน์อะไรไม่ได้เลยนั้นเป็นเรื่องอันตราย เพราะมันสร้างความเชื่อมั่นที่ผิดพลาด

ให้ AI เขียนร่างขึ้นมา แล้วใช้มนุษย์ในการนำกฎเหล่านี้ไปปรับใช้ เอเจนต์ช่วยเรื่องความเร็ว แต่มนุษย์ช่วยเรื่องความเสถียร

แหล่งที่มา: https://dev.to/aiwithanton/playwright-best-practices-10-rules-ai-agents-get-wrong-2026-5cii

ชุมชนแห่งการเรียนรู้ (เลือกเข้าร่วมได้): https://t.me/GyaanSetuAi