Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

ทำการปรับปรุง performance ของการทดสอบด้วย Puppeteer นิดหน่อย

$
0
0

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

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

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

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

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

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

[gist id="980217e6d3691b2b919f80962445bd26" file="run.txt"]

จากนั้นเขียน 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


Viewing all articles
Browse latest Browse all 1997

Trending Articles