ว่าง ๆ มาทำการปรับปรุงประสิทธิภาพการทำงานของ Puppeteer กันหน่อย
เนื่องจากเมื่อมีชุดการทดสอบจำนวนมากขึ้นเรื่อย ๆ
ส่งผลให้เวลาการทดสอบยาวนานมาก ๆ
ดังนั้นสิ่งที่ควรทำคือ การปรับปรุงให้รวดเร็วขึ้น

วิธีการแก้ไขก็มีเยอะมากมากทั้ง

  • ปรับปรุงระบบที่ทำการทดสอบ
  • จัดการโครงสร้างของชุดการทดสอบ
  • ทำการทดสอบแบบ parallel และ distributed testing

และอื่น ๆ อีกมากมาย

หนึ่งในวิธีการที่น่าสนใจคือ Distributed testing

นั่นหมายความว่า เราจะต้องสร้าง Google Chrome browser ขึ้นมา
ตามจำนวนที่ต้องการ (session) บนเครื่องใด ๆ ก็ตาม
โดยเราสามารถ
นำ Docker Image ของ Google Chrome จาก browserless มาใช้ได้เลย ดังนี้

จากนั้นเขียน code การ initial session ของ Google Chrome ขึ้นมา

โดยการ connect ไปยัง Google Chrome ที่สร้างขึ้นมา

คำอธิบาย
ทำการเปิด Google Chrome ด้วย user-data-dir
เพื่อบันทึกข้อมูล cookie และข้อมูลต่าง ๆ ไว้
ทำให้ไม่ต้องมา initial ใหม่
ผลที่ตามมาคือ การทำงานจะรวดเร็วขึ้น

จากที่ลองทดสอบนั้น
จากเดิมที่ run ประมาณ 16 วินาที ปรับมาเหลือเพียง 3 วินาที

Source code และการใช้งานอยู่ที่ GitHub::Up1