
หลังจากที่ไปแบ่งปันความรู้เรื่อง การทดสอบระบบงานด้วย Playwright
ซึ่งสามารถทดสอบได้ทั้ง UI testing ผ่าน web browser
และ API testing ผ่าน HTTP protocol
แต่สิ่งที่ยังไม่ได้แบ่งปันไปคือ API testing
จึงขอแนะนำการเขียนชุดการทดสอบ API ด้วย Agent Skills
โดยแนะนำให้เริ่มจาก TestDino Playwright Skill
จากนั้นค่อยทำการปรับแต่ง หรือ สร้างตามที่ต้องการต่อไปได้
มาลองใช้งานกันดูหน่อย
เริ่มด้วยการติดตั้ง Agent Skills ก่อน
จะมีความสามารถที่น่าสนใจดังนี้
- Core คือส่วนการทำงานหลักมีอยู่ 46 เรื่อง
- CI (Continuous Integration) สำหรับสร้าง pipeline สำหรับระบบต่าง ๆ
- POM (Page Object Model) สำหรับการสร้าง test case ในรูปแบบของ POM ซึ่งเหมาะสมต่อการทดสอบ และ maintain
- Migration สำหรันการ migrate test case จาก Cypress และ Selenium
- Playwright-CLI สำหรับการจัดการกับ browser ผ่าน CLI ซึ่งมีประสิทธิภาพกว่าผ่าน MCP อย่างมาก
โดยสิ่งที่เราจะใช้จาก skill นี้คือ API testing
ดังนั้นมาลองใช้ skill นี้กันหน่อย
ซึ่งจะทำการเขียน spec ของ API ในระบบแบบง่าย ๆ
หรือจะใช้ API spec พวก Swagger หรือ OpenAPI ก็ได้
ตัวอย่างของ API Spec ที่จะสร้าง test case
ทำการทดสอบ login flow มี 2 api ที่เรียกต่อกัน คือ
- API ที่ 1 Login with username และ password
- API ที่ 2 Get current profile from auth ซึ่งใช้ auth token จาก API ที่ 1 นั่นเอง
สามารถเขียน spec ง่าย ๆ ได้ดังนี้
ถ้าจะให้ดีควรเขียนให้ครอบคลุมทุก ๆ case ด้วย
ทำการใช้งานผ่าน GitHub Copilot หรือ Claude Code ก็ได้
ยกตัวอย่างเช่น
ผลที่ได้คือ
- ไฟล์ playwright.config.ts ที่มีแต่ API testing เท่านั้น
- test case ที่ได้จาก spec
จากผลที่ได้ ผมเขียน spec ไม่ดี แต่ก็ได้ผลการทำงานที่น่าสนใจ เช่น
- Success case
- Failure case
- Test case แบบ flow testing คือ login api -> Get current profile from auth
ตัวอย่างของ test case แบบ flow testing
แต่การ expect หรือการตรวจสอบ response ของ API ที่ได้ยังไม่ถูกใจ
เพราะว่าต้องการให้ทำการตรวจสอบด้วย JSON Schema จะดีกว่า
ตามจริงใน Skill ตัวนี้ก็มีให้เช่นกัน แต่ยังเป็น code version เก่า
ทำให้บางเรื่องยังเป็น code ที่ถูก deprecated แล้ว
ดังนั้นเราสามารถทำได้ 3 แบบ คือ
- แบบที่ 1 เข้าไปแก้ไขการ assert jsonschema ในไฟล์ api-testing.md
- แบบที่ 2 ใช้งาน Agent skills อื่น ๆ ที่ดีกว่า
- แบบที่ 3 เขียนเอง
โดยผมต้องการเปลี่ยนไปใช้ library ชื่อว่า Zod
ใช้ Agent Skills ชื่อว่า Context 7 :: Zod
ให้ทำการติดตั้งและใช้งานเลย
และสั่งให้ migrate ไปยัง Zod นั่นเอง
ได้ผลการทำงานดังนี้
อย่าลืม run test case กันด้วย !!
อีกอย่างที่ต้องเข้าใจคือ test case ที่ได้มันถูกหรือไม่ สามารถดูแลรักษาได้ง่ายหรือไม่
ติดตั้ง Agent Skills เยอะ ๆ ก็เปลือง token (เพราะว่ามันอ่านไฟล์ SKILL.md มาก่อนเสมอ)
ทำการใช้งานบ่อย ๆ ก็เปลือง token !!
แนะนำให้ทำการ generate ทีละเรื่อง เช่น
แยก success case และ failure case ออกจากกัน
หรือให้ AI ทำการสร้างให้บ้าง และ เราเขียนเองบ้าง
จากนั้นก็ run test case เพื่อตรวจสอบแบบ case-by-case จะดีกว่ามาก ๆ
และเมื่อทดสอบผ่านเรียบร้อยแล้ว (Make it work)
ต้องทำการ review และ refactor test case ให้อ่านง่าย เข้าใจได้ง่ายด้วย
เพื่อการดูแลรักษาในอนาคตอันใกล้ ๆ และ ง่ายต่อการทำงานเป็นทีม (Make it right)
ดังนั้นต้องความรู้พื้นฐานด้วย
ทั้งการออกแบบ test case ให้ครอบคลุม และ มีประสิทธิภาพ
และ การใช้งาน Playwright ก็ต้องมีก่อนเสมอ
มิเช่นนั้น แทนที่จะเข้ามาช่วย กลับ ทำให้เราแย่ลง ก็เป็นได้
ควบคุมให้ดี อธิบายให้ชัดเจน
หรือมีกรอบการทำงานกันหน่อย อย่าให้ต้องเดาสุ่ม
ยังมีที่รวบรวม Agent Skills ที่น่าสนใจอีกเพียบ เช่น
หรือถ้าใครสนใจสามารถเรียนรู้การสร้าง Agent Skills เพิ่มเติม
ได้จากที่ Anthropic :: The complete guide to building skill for Claude
ตัวอย่าง code ที่ Github::Up1