แนวทางปฏิบัติที่ดีที่สุดสำหรับ Playwright: 10 กฎที่ AI Agent มักทำผิด
AI agent สามารถเขียน Playwright test ได้ถึง 50 ชุดภายในหนึ่งนาที
ความเร็วนี้คือกับดัก
เทสต์เหล่านั้นมักจะล้มเหลวโดยไม่มีสาเหตุ AI agent มักจะคัดลอกรูปแบบเก่าๆ จากข้อมูลที่ใช้เทรน พวกมันไม่รู้ว่าเทสต์ของคุณล้มเหลวเมื่อคืนนี้ และพวกมันยังใช้พฤติกรรมที่ล้าสมัยอีกด้วย
ปฏิบัติตาม 10 กฎนี้เพื่อให้เทสต์ของคุณมีความเสถียร
ใช้ role-based locators ใช้
getByRole,getByLabel, หรือgetByTextซึ่งจะตรงกับสิ่งที่มนุษย์มองเห็น ข้อผิดพลาดของ AI: Agent มักใช้ CSS หรือ XPath ซึ่งจะพังทันทีเมื่อคุณเปลี่ยนชื่อ class เพียงชื่อเดียวใช้ web-first assertions ใช้
expect(locator).toBeVisible()ซึ่งจะทำการรอหน้าเว็บโดยอัตโนมัติ ข้อผิดพลาดของ AI: Agent มักจะใส่await page.waitForTimeout(3000)การใช้ hard wait จะทำให้เกิด flaky testsแยกเทสต์ออกจากกัน (Keep tests isolated) แต่ละเทสต์ต้องเริ่มต้นด้วยสถานะที่สะอาด (clean state) ใช้ hooks ในการตั้งค่าสถานะ ข้อผิดพลาดของ AI: Agent มักจะเขียนเทสต์แบบต่อเนื่องกัน (chaining) หากเทสต์แรกล้มเหลว เทสต์ที่เหลือในไฟล์นั้นก็จะพังทั้งหมด
เตรียมข้อมูล (Seed data) ผ่าน API ใช้
requestfixture เพื่อส่งข้อมูลไปยัง backend โดยตรง ข้อผิดพลาดของ AI: Agent มักจะคลิกผ่านหน้าจอ UI ถึงสิบหน้าเพื่อสร้างผู้ใช้เพียงคนเดียว ซึ่งทำให้เทสต์ช้าและเปราะบางให้ความสำคัญกับ roles มากกว่า test IDs ใช้
getByRoleเป็นอันดับแรก และใช้data-testidเฉพาะเมื่อจำเป็นเท่านั้น ข้อผิดพลาดของ AI: Agent มักจะใส่data-testidไว้ในทุกอย่าง ซึ่งจะทำให้พลาดบั๊กในกรณีที่ปุ่มไม่มี label สำหรับ screen readersตั้งค่า trace ให้บันทึกเมื่อมีการ retry ตั้งค่า
traceเป็น'on-first-retry'ใน config ของคุณ ข้อผิดพลาดของ AI: Agent มักจะปิดการทำ tracing ไว้เลย หรือไม่ก็เปิดทิ้งไว้สำหรับการรันทุกครั้ง แบบแรกจะทำให้ขาดหลักฐานในการตรวจสอบ ส่วนแบบหลังจะทำให้ทุกอย่างช้าลงรันแบบขนาน (Run in parallel) ใช้ parallel mode และ sharding เพื่อแบ่งเทสต์ไปยังเครื่องต่างๆ ข้อผิดพลาดของ AI: Agent มักเขียนเทสต์ที่ใช้ผู้ใช้ (user) คนเดียวกัน ซึ่งจะทำให้เทสต์เหล่านี้ขัดแย้งกันเองเมื่อรันแบบขนาน
ตัด if statements และ try blocks ออกไป เทสต์ควรดำเนินไปตามเส้นทางเดียว หากปุ่มควรจะปรากฏอยู่ตรงนั้น ก็ให้ใช้การ assert ข้อผิดพลาดของ AI: Agent มักจะครอบการคลิกด้วย if statements เพื่อหลีกเลี่ยง error ซึ่งเป็นการซ่อนบั๊กที่แท้จริงเอาไว้
ทดสอบพฤติกรรม (behavior) ไม่ใช่โครงสร้างภายใน (internals) ตรวจสอบผลลัพธ์ที่มองเห็นได้บนหน้าจอ ข้อผิดพลาดของ AI: Agent มักจะ assert ที่ CSS classes หรือตัวแปร state ซึ่งสิ่งเหล่านี้จะพังทุกครั้งที่มีการทำ code refactor
ใช้ projects เพื่อครอบคลุมการทดสอบทุก browser ใช้
projectsarray เพื่อทดสอบ 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