ว่าง ๆ มาทำการปรับปรุงประสิทธิภาพการทำงานของ Puppeteer กันหน่อย
เนื่องจากเมื่อมีชุดการทดสอบจำนวนมากขึ้นเรื่อย ๆ
ส่งผลให้เวลาการทดสอบยาวนานมาก ๆ
ดังนั้นสิ่งที่ควรทำคือ การปรับปรุงให้รวดเร็วขึ้น
วิธีการแก้ไขก็มีเยอะมากมากทั้ง
- ปรับปรุงระบบที่ทำการทดสอบ
- จัดการโครงสร้างของชุดการทดสอบ
- ทำการทดสอบแบบ parallel และ distributed testing
และอื่น ๆ อีกมากมาย
หนึ่งในวิธีการที่น่าสนใจคือ Distributed testing
นั่นหมายความว่า เราจะต้องสร้าง Google Chrome browser ขึ้นมา
ตามจำนวนที่ต้องการ (session) บนเครื่องใด ๆ ก็ตาม
โดยเราสามารถ
นำ Docker Image ของ Google Chrome จาก browserless มาใช้ได้เลย ดังนี้
จากนั้นเขียน code การ initial session ของ Google Chrome ขึ้นมา
โดยการ connect ไปยัง Google Chrome ที่สร้างขึ้นมา
[gist id="980217e6d3691b2b919f80962445bd26" file="connect.js"]คำอธิบาย
ทำการเปิด Google Chrome ด้วย user-data-dir
เพื่อบันทึกข้อมูล cookie และข้อมูลต่าง ๆ ไว้
ทำให้ไม่ต้องมา initial ใหม่
ผลที่ตามมาคือ การทำงานจะรวดเร็วขึ้น
จากที่ลองทดสอบนั้น
จากเดิมที่ run ประมาณ 16 วินาที ปรับมาเหลือเพียง 3 วินาที
Source code และการใช้งานอยู่ที่ GitHub::Up1