Saga เครื่องมือฉีดสถานะสำหรับการทดสอบ
การฉีดสถานะจากฝั่งเซิร์ฟเวอร์ ให้ QA และระบบอัตโนมัติข้ามไปยังขั้นตอนใดก็ได้ของโฟลว์ยืนยันตัวตนที่ยาว ลดเวลาเตรียมการทดสอบถดถอยจากสูงสุด 20 นาทีเหลือไม่ถึง 1 นาที
- บทบาท
- Senior Frontend Engineer
- ช่วงเวลา
- 2025–ปัจจุบัน
- เทคโนโลยี
- TypeScript · Playwright · BFF · Test database
ปัญหา
หากต้องการตรวจบั๊กที่ขั้นที่ 5 ของโฟลว์ KYC คุณต้องกรอกข้อมูลส่วนตัวที่ถูกต้อง อัปโหลดเอกสาร และผ่านการตรวจ liveness ในขั้นที่ 1 ถึง 4 ก่อน ทุกครั้ง สำหรับทุก pull request และทุกรอบการทดสอบอัตโนมัติ
แนวทาง
Saga ทำให้ผู้ทดสอบหรือสคริปต์เปิดแอปได้ในสถานะที่ต้องการทันที
- สคริปต์ Playwright หรือวิศวกร QA โหลดหน้าเว็บพร้อมโทเค็นทดสอบที่ปลอดภัย เช่น
?state=step_4_ready - ฟรอนต์เอนด์ตรวจพบโทเค็นตอน hydration และส่งต่อผ่านเฮดเดอร์ไปยัง BFF
- BFF ตรวจว่าเป็นสภาพแวดล้อมที่ไม่ใช่โปรดักชันอย่างเคร่งครัด แล้วเตรียมเซสชันของผู้ใช้ในฐานข้อมูลทดสอบ ขั้นที่ 1 ถึง 3 เสร็จแล้ว และตัวชี้อยู่ที่ขั้นที่ 4
- BFF ส่งโทเค็นเซสชันจริงกลับมา และ UI แสดงขั้นที่ 4 ทันที
เลือกฉีดสถานะจากเซิร์ฟเวอร์แทนการจำลอง localStorage ฝั่งไคลเอนต์ แอปสมัยใหม่ตรวจสอบเซสชันที่แบ็กเอนด์ การจำลองเฉพาะฝั่งไคลเอนต์จึงค่อย ๆ ห่างจากความจริง และทำให้ได้เทสต์ที่ผ่านที่นี่แต่ล้มเหลวในโปรดักชัน
ผลลัพธ์
เวลาเตรียมการทดสอบถดถอยลดจาก 10–20 นาทีต่อรอบเหลือไม่ถึงหนึ่งนาที เมื่อคิดจากการรัน pull request และชุดทดสอบอัตโนมัติหลายสิบรอบต่อสัปดาห์ เท่ากับได้เวลางานวิศวกรรมคืนมาหลายร้อยชั่วโมงต่อไตรมาส