การทดสอบเบราว์เซอร์อัตโนมัติมีความสำคัญอย่างยิ่งต่อการสร้างเว็บแอปพลิเคชันที่มีประสิทธิภาพสูงและมีคุณภาพสูง ไม่ว่าคุณจะเรียกใช้ชุดการทดสอบแบบครบวงจรของการรวมอย่างต่อเนื่อง (CI) ทำการทดสอบการถดถอยในการเผยแพร่เบราว์เซอร์ หรือทำให้การโต้ตอบกับเบราว์เซอร์เป็นไปโดยอัตโนมัติ Chrome มีชุดเครื่องมือและโหมดการดำเนินการเฉพาะที่ออกแบบมาสำหรับนักพัฒนาแอปและวิศวกรการทดสอบอัตโนมัติ
ภาพรวมนี้จะแนะนำผลิตภัณฑ์หลักในระบบนิเวศการทดสอบและการทำงานอัตโนมัติของ Chrome ได้แก่ Chrome สำหรับการทดสอบ, ChromeDriver, Puppeteer และ โหมด Headless ของ Chrome พร้อมอธิบายวิธีใช้ผลิตภัณฑ์เหล่านี้ร่วมกันเพื่อสร้างเวิร์กโฟลว์การทดสอบที่เชื่อถือได้และทำซ้ำได้
Chrome สำหรับการทดสอบ
Chrome สำหรับการทดสอบ เป็น Chrome เวอร์ชันเฉพาะที่มุ่งเน้นการทดสอบเว็บแอปและการใช้งานอัตโนมัติ
เมื่อเรียกใช้ชุดการทดสอบแบบครบวงจรหรือไปป์ไลน์การรวมอย่างต่อเนื่อง (CI) คุณมักจะต้องได้ผลลัพธ์ที่สอดคล้องกันและทำซ้ำได้ในการทดสอบที่เรียกใช้ซ้ำๆ Chrome สำหรับการทดสอบช่วยให้คุณดาวน์โหลดและตรึง Chrome เวอร์ชันที่เฉพาะเจาะจงสำหรับสภาพแวดล้อมการทดสอบได้ แทนที่จะต้องพึ่งพาการติดตั้งเบราว์เซอร์มาตรฐาน
ฟีเจอร์หลัก
- การดาวน์โหลดเวอร์ชันตามความต้องการ: เข้าถึงไบนารีของ Chrome เวอร์ชันที่เฉพาะเจาะจงเพื่อให้คุณทดสอบกับเวอร์ชันที่เลือกได้อย่างแม่นยำเสมอ
- ไบนารีที่จับคู่กันในทุกเวอร์ชัน: สำหรับ Chrome ทุกเวอร์ชันที่เผยแพร่ในทุกเวอร์ชัน (เวอร์ชันเสถียร, เวอร์ชันเบต้า, เวอร์ชันที่กำลังพัฒนา และ เวอร์ชัน Canary) Chrome สำหรับการทดสอบจะมีไบนารีของ Chrome ที่จับคู่กับไบนารีของ ChromeDriver ที่เกี่ยวข้อง รวมถึงเชลล์ Headless ของ Chrome เวอร์ชันเก่า (
chrome-headless-shell) สำหรับผู้ที่ยังคงใช้เชลล์ดังกล่าวในการทดสอบอัตโนมัติ - การดาวน์โหลดอัตโนมัติที่ง่ายดาย: คุณสามารถดาวน์โหลดไบนารีได้อย่างง่ายดายโดยใช้ยูทิลิตีบรรทัดคำสั่ง
@puppeteer/browsersหรือค้นหาผ่านแดชบอร์ดความพร้อมใช้งาน
ดูข้อมูลเพิ่มเติม
ChromeDriver
ChromeDriver เป็นเซิร์ฟเวอร์แบบสแตนด์อโลนโอเพนซอร์สที่ใช้มาตรฐาน W3C WebDriver และโปรโตคอล WebDriver BiDi แบบสองทิศทาง โดยจะทำหน้าที่เป็นตัวกลางระหว่างเฟรมเวิร์กการทดสอบที่อิงตาม WebDriver (เช่น Selenium, WebDriverIO และ Nightwatch) กับเบราว์เซอร์ Chrome
ฟีเจอร์หลัก
- การรองรับ W3C WebDriver และ WebDriver BiDi: รองรับทั้งคำสั่งการทำงานอัตโนมัติของ WebDriver แบบคลาสสิกและการสื่อสารแบบสองทิศทางแบบเรียลไทม์ผ่าน WebDriver BiDi เพื่อการฟังเหตุการณ์ การตรวจสอบเครือข่าย และการดักจับบันทึกที่รวดเร็ว
- เผยแพร่พร้อมกับ Chrome สำหรับการทดสอบ: การเผยแพร่ ChromeDriver จะผสานรวมเข้ากับโครงสร้างพื้นฐานของ Chrome สำหรับการทดสอบโดยตรง Chrome สำหรับการทดสอบทุกเวอร์ชันจะมีการเผยแพร่ ChromeDriver เวอร์ชันที่ตรงกันพร้อมกัน ซึ่งช่วยลดปัญหาความไม่ตรงกันของเวอร์ชัน
ดูข้อมูลเพิ่มเติม
- เอกสารประกอบของ ChromeDriver
- WebDriver BiDi - อนาคตของการทำงานอัตโนมัติข้ามเบราว์เซอร์
- ข้อมูลอ้างอิง WebDriver BiDi ของ MDN
Puppeteer
Puppeteer เป็นไลบรารี JavaScript ที่พัฒนาโดย Google ซึ่งมี API ระดับสูงเพื่อควบคุม Chrome ผ่านโปรโตคอลเครื่องมือสำหรับนักพัฒนาเว็บใน Chrome (CDP) หรือ WebDriver BiDi
ฟีเจอร์หลัก
- การทำงานอัตโนมัติแบบไม่ต้องตั้งค่า: Puppeteer จะดาวน์โหลดไบนารีของ Chrome สำหรับการทดสอบที่เข้ากันได้โดยอัตโนมัติตามค่าเริ่มต้น ซึ่งช่วยให้การทำงานอัตโนมัติของเบราว์เซอร์พร้อมใช้งานได้ทันที
- ควบคุม Chrome ได้อย่างเต็มที่: จับภาพหน้าจอ สร้าง PDF ทำให้การส่งแบบฟอร์มเป็นไปโดยอัตโนมัติ ดักจับคำขอเครือข่าย และเรียกใช้การทดสอบ UI ในโหมด Headful หรือ Headless ได้อย่างง่ายดาย
ดูข้อมูลเพิ่มเติม
โหมด Headless ของ Chrome
โหมด Headless ของ Chrome ช่วยให้คุณเรียกใช้ Chrome ในสภาพแวดล้อมแบบไม่ต้องมีการโต้ตอบโดยไม่มีอินเทอร์เฟซผู้ใช้ที่มองเห็นได้ เมื่อส่งแฟล็ก --headless ในบรรทัดคำสั่ง Chrome จะทำงานได้อย่างราบรื่นในสภาพแวดล้อมเซิร์ฟเวอร์ คอนเทนเนอร์ และไปป์ไลน์ CI/CD
ฟีเจอร์หลัก
- เอนจินเบราว์เซอร์แบบรวม: โหมด Headless สมัยใหม่ (
--headless) ใช้การติดตั้งใช้งานเบราว์เซอร์แบบเดียวกับ Chrome แบบ Headful - ความสามารถในการทำงานอัตโนมัติและการแก้ไขข้อบกพร่องที่หลากหลาย: รองรับการจับภาพหน้าจอ การสร้าง PDF การแก้ไขข้อบกพร่องจากระยะไกล และการกำหนดค่าหน้าจอเสมือน
ดูข้อมูลเพิ่มเติม
- เรียกใช้ Chrome ในโหมด Headless
- กำหนดค่าหน้าจอเสมือน
- แก้ไขข้อบกพร่องในโหมด Headless
- ข้อมูลอ้างอิงบรรทัดคำสั่ง Headless
ตัวอย่าง: การใช้ผลิตภัณฑ์เหล่านี้ร่วมกัน
ในเวิร์กโฟลว์การทดสอบอัตโนมัติหรือการรวมอย่างต่อเนื่อง (CI) ทั่วไป ผลิตภัณฑ์เหล่านี้จะทำงานร่วมกันเพื่อมอบสภาพแวดล้อมการทดสอบแบบไม่ต้องมีการโต้ตอบที่ทำซ้ำได้ ดังนี้
- ไบนารีของเบราว์เซอร์ (Chrome สำหรับการทดสอบ): ใช้ไบนารีของ Chrome สำหรับการทดสอบ เวอร์ชันที่เฉพาะเจาะจงและตรึงไว้ เพื่อให้ผลการทดสอบเป็นไปตามที่กำหนดไว้ในการเรียกใช้
- โหมดการดำเนินการ (โหมด Headless ของ Chrome): เรียกใช้ไบนารีนั้นในโหมด Headless (
--headless) เพื่อให้การทดสอบดำเนินการได้อย่างราบรื่นในเซิร์ฟเวอร์ คอนเทนเนอร์ หรือไปป์ไลน์ CI โดยไม่มีการแสดงผลแบบกราฟิก - ไดรเวอร์การทำงานอัตโนมัติ (Puppeteer หรือ ChromeDriver): ควบคุมเบราว์เซอร์โดยใช้ไลบรารีการทำงานอัตโนมัติ เช่น Puppeteer หรือเฟรมเวิร์กการทดสอบอื่นๆ ที่เชื่อมต่อผ่าน WebDriver BiDi
Puppeteer จะเชื่อมต่อส่วนต่างๆ เหล่านี้โดยอัตโนมัติ เมื่อติดตั้งแล้ว ระบบจะดาวน์โหลดไบนารีของ Chrome สำหรับการทดสอบ ที่เข้ากันได้และเปิดใช้ในโหมด Headless โดยค่าเริ่มต้น
เมื่อใช้เฟรมเวิร์ก W3C WebDriver (เช่น Selenium หรือ WebdriverIO) คุณสามารถดาวน์โหลดไบนารีของ Chrome สำหรับการทดสอบ และ ChromeDriver ที่จับคู่กันโดยอัตโนมัติ และส่งแฟล็ก --headless เพื่อเรียกใช้โดยไม่มี UI