testover คือชุดเทสอัตโนมัติสำหรับเว็บ Task Board ที่ทำงานเองทุกเสาร์-อาทิตย์ แล้วส่งผล ✅ ผ่าน หรือ ❌ พัง เข้าแชตของทีม โดยไม่ต้องมีใครกดอะไร
เว็บตัวอย่าง (Task Board) + เทส Playwright 127 เคส + ตัวรันและแจ้งผลอัตโนมัติบน GitHub Actions
ทดสอบสมัคร/login, จัดการงาน, โปรไฟล์ และเส้นทางใช้งานเต็ม แล้วรายงานผลเข้า Discord หรือ Slack
รู้ทันทีว่าฟีเจอร์หลักยังใช้ได้ไหม ไม่ต้องรอผู้ใช้มาแจ้ง และเป็นโปรเจกต์ตัวอย่างให้ฝึกทำ QA อัตโนมัติครบวงจร
ลองตามไปทีละขั้น จะเห็นว่าของแต่ละชิ้นในโปรเจกต์มีไว้ทำอะไร และต่อกันอย่างไร
ฟีเจอร์พื้นฐานอย่าง login หรือเพิ่มงานอาจพังเงียบๆ ตอนวันหยุด กว่าจะรู้ก็เมื่อผู้ใช้บ่น การเช็กด้วยมือก็ช้าและลืมง่าย
ผู้ใช้สมัคร/login → เพิ่มงานพร้อมระดับความสำคัญ → ติ๊กเสร็จ แก้ ลบ ค้นหา กรอง → ตั้งค่าโปรไฟล์ เปลี่ยนรหัสผ่าน เปิด dark mode หรือลบบัญชี
ข้อมูลเก็บใน localStorage ของเบราว์เซอร์ ไม่ต้องมี backend จึงรันง่ายและผลคงที่
app/index.html, app/server.mjs · ผู้ใช้ทดลอง demo / demo1234เทส 127 เคสคลิกปุ่ม กรอกฟอร์ม แล้วเช็กว่าผลตรงตามคาด ทั้งกรณีปกติ กรอกผิด/ว่าง ข้อมูลหลัง reload จอมือถือ และข้อมูลใน storage ที่เสีย แต่ละเคสเริ่มด้วยเบราว์เซอร์ใหม่ ไม่มีข้อมูลค้างข้ามเคส
tests/*.spec.ts, tests/support/pages.ts (Page Object)ต้องมี Node.js 22 ขึ้นไป ระบบเปิดเว็บให้เองอัตโนมัติ (เครื่องใหม่: git clone https://github.com/mongoemon/testover.git ก่อน ดูขั้นตอนเต็มใน README หัวข้อ 2)
npm ci npx playwright install chromium # ครั้งแรกครั้งเดียว npm test # รันทั้ง 127 เคส
อยากดูเร็วๆ ใช้ npm run test:smoke (5 เคสหลัก) หรืออยากเห็นเบราว์เซอร์ทำงานใช้ npm run test:headed แล้วเปิดรายงานด้วย npm run report
Workflow weekend-e2e.yml ตั้งเวลาเริ่มทุกเสาร์และอาทิตย์ 09:00 (เวลาไทย) ตั้งเวลาหมดไว้ 20 นาทีกันค้าง และกดรันเองได้จากแท็บ Actions เมื่ออยากเช็กนอกรอบ
สคริปต์ scripts/notify.mjs อ่านผลเทสแล้วส่งเข้า webhook ถ้าพัง จะบอกชื่อเคสที่พังและลิงก์ไปดู run พร้อมรายงานละเอียดใน Artifacts
ตัวเลขด้านล่างอ้างจาก README ของโปรเจกต์
E2E, contract, characterization และ accessibility (ยังมี unit test อีก 42)
ชุดเร็วเช็กเส้นทางหลัก ใช้ npm run test:smoke
เลือกรันเฉพาะ @security, @validation ฯลฯ ด้วย --grep
Discord และ Slack ใช้ webhook เดียวกัน ไม่ต้องแก้โค้ด
ถ้าจะเริ่มแก้หรือเพิ่มอะไร ให้ดูตรงนี้ก่อน
| ไฟล์/โฟลเดอร์ | ทำหน้าที่ |
|---|---|
app/ | เว็บ Task Board และเซิร์ฟเวอร์ static เล็กๆ ที่ใช้เป็นเป้าหมายการเทส |
tests/ | เทส Playwright ทั้งหมด แยกตามพื้นที่ของแอป |
unit/ | unit test ของตัวเซิร์ฟเวอร์และสคริปต์แจ้งผล |
scripts/notify.mjs | อ่านผลเทสแล้วส่งเข้า webhook |
.github/workflows/weekend-e2e.yml | ตั้งเวลาให้ทุกอย่างรันอัตโนมัติบน GitHub |
playwright.config.ts | ตั้งค่า Playwright (เปิดเว็บ, reporter, retry) |