วันนี้เรายินดีที่จะประกาศเปิดตัว Chrome for Testing ซึ่งเป็น Chrome เวอร์ชันใหม่ที่มุ่งเน้นกรณีการใช้งานการทดสอบและระบบอัตโนมัติของเว็บแอปโดยเฉพาะ บทความนี้อธิบายเหตุผลที่ทีม Chrome เห็นว่าจำเป็นต้องมีฟีเจอร์นี้ และยกตัวอย่างที่ชัดเจนซึ่ง Chrome สำหรับการทดสอบอาจเป็นประโยชน์ต่อนักพัฒนาซอฟต์แวร์
ฉากหลัง
การทดสอบเบราว์เซอร์เป็นองค์ประกอบสำคัญในการสร้างประสบการณ์บนเว็บที่มีคุณภาพสูง ไม่ว่าจะดำเนินการด้วยตนเองหรือโดยอัตโนมัติ ในขณะเดียวกัน การตั้งค่าสภาพแวดล้อมการทดสอบเบราว์เซอร์ที่เหมาะสมก็เป็นเรื่องยากมาก จนมีการรายงาน อย่างต่อเนื่องว่าเป็นปัญหาที่นักพัฒนาเว็บพบมากที่สุด วันนี้เราขอประกาศการเปลี่ยนแปลงที่จะช่วยลดความยุ่งยากดังกล่าว
การอัปเดตอัตโนมัติ: ดีสำหรับผู้ใช้ แต่เป็นเรื่องยากสำหรับนักพัฒนาแอป
ความสามารถในการอัปเดตอัตโนมัติเป็นหนึ่งในฟีเจอร์ที่โดดเด่นที่สุดของ Chrome ผู้ใช้จะยินดีที่ได้ทราบว่าตนเองใช้เบราว์เซอร์เวอร์ชันล่าสุดและปลอดภัย ซึ่งรวมถึงฟีเจอร์แพลตฟอร์มเว็บที่ทันสมัย ฟีเจอร์เบราว์เซอร์ และการแก้ไขข้อบกพร่องอยู่เสมอ
อย่างไรก็ตาม ในฐานะนักพัฒนาแอปที่เรียกใช้ชุดการทดสอบแบบครบวงจร คุณอาจมีมุมมองที่แตกต่างออกไปโดยสิ้นเชิง
- คุณต้องการผลลัพธ์ที่สอดคล้องกันและทำซ้ำได้ในการทดสอบที่ทำซ้ำ แต่สิ่งนี้อาจไม่เกิดขึ้นหากไฟล์ปฏิบัติการหรือไบนารีของเบราว์เซอร์ตัดสินใจที่จะอัปเดตตัวเองระหว่างการทดสอบ 2 ครั้ง
- คุณต้องการปักหมุดเวอร์ชันเบราว์เซอร์ที่เฉพาะเจาะจงและตรวจสอบหมายเลขเวอร์ชันนั้นในที่เก็บซอร์สโค้ด เพื่อให้คุณสามารถตรวจสอบคอมมิตและกิ่งเก่าๆ และเรียกใช้การทดสอบอีกครั้งกับไบนารีของเบราว์เซอร์จากจุดนั้นในเวลา
ซึ่งจะทำไม่ได้หากใช้ไบนารีของเบราว์เซอร์ที่อัปเดตอัตโนมัติ ด้วยเหตุนี้ คุณจึงอาจไม่ต้องการใช้การติดตั้ง Chrome ปกติสำหรับการทดสอบอัตโนมัติ นี่คือความไม่สอดคล้องกันขั้นพื้นฐานระหว่างสิ่งที่เหมาะสำหรับผู้ใช้เบราว์เซอร์ทั่วไปกับสิ่งที่เหมาะสำหรับนักพัฒนาแอปที่ทำการทดสอบอัตโนมัติ
ไบนารีของเบราว์เซอร์ที่มีการกำหนดเวอร์ชัน
นอกจากการอัปเดตอัตโนมัติแล้ว คุณอาจพบว่าการค้นหาไบนารีของ Chrome ที่มีเวอร์ชันเฉพาะนั้นเป็นเรื่องยาก Google ไม่ได้ตั้งใจที่จะไม่ให้ดาวน์โหลด Chrome เวอร์ชันต่างๆ เนื่องจากผู้ใช้ไม่ควรต้องกังวลเกี่ยวกับหมายเลขเวอร์ชัน แต่ควรได้รับการอัปเดตเป็นเวอร์ชันล่าสุดโดยเร็วที่สุด ซึ่งเป็นเรื่องดีสำหรับผู้ใช้ แต่เป็นเรื่องที่น่าปวดหัวสำหรับนักพัฒนาซอฟต์แวร์ที่ต้องสร้างรายงานข้อบกพร่องใน Chrome เวอร์ชันเก่า
ตัวอย่างที่เฉพาะเจาะจงมากขึ้นของปัญหานี้คือเมื่อคุณต้องการใช้ ChromeDriver สำหรับการทำงานอัตโนมัติของเบราว์เซอร์ คุณไม่เพียงต้องดาวน์โหลดไบนารีของ Chrome เท่านั้น แต่ยังต้องมีไบนารีของ ChromeDriver ที่มีเวอร์ชันสอดคล้องกันเพื่อให้แน่ใจว่าไบนารีทั้ง 2 รายการเข้ากันได้
เนื่องจากไม่มีวิธีที่ดีในการแก้ปัญหาเหล่านี้ เราจึงทราบว่านักพัฒนาแอปจำนวนมากดาวน์โหลดไบนารีของ Chromium (ไม่ใช่ Chrome) แทน แม้ว่าวิธีนี้จะมีข้อบกพร่องอยู่บ้าง ประการแรก ไบนารี Chromium เหล่านี้ไม่พร้อมใช้งานอย่างน่าเชื่อถือในทุกแพลตฟอร์ม ประการที่สอง ส่วนขยายเหล่านี้สร้างและเผยแพร่แยกต่างหากจากกระบวนการเผยแพร่ Chrome จึงทำให้ไม่สามารถเชื่อมโยงเวอร์ชันของส่วนขยายกลับไปเป็นการเผยแพร่ Chrome ที่ผู้ใช้จริงเห็นได้ ประการที่สาม Chromium แตกต่างจาก Chrome
โซลูชัน: Chrome สำหรับการทดสอบ
Chrome สำหรับการทดสอบได้รับการออกแบบมาเพื่อแก้ปัญหาเหล่านี้ โดยเป็น Chrome เวอร์ชันเฉพาะที่มุ่งเน้นกรณีการใช้งานในการทดสอบโดยไม่มีการอัปเดตอัตโนมัติ ซึ่งผสานรวมเข้ากับกระบวนการเผยแพร่ Chrome และพร้อมใช้งานสำหรับการเผยแพร่ Chrome ทุกครั้ง ไบนารีที่มีการกำหนดเวอร์ชันซึ่งใกล้เคียงกับ Chrome ปกติมากที่สุดโดยไม่ส่งผลเสียต่อกรณีการใช้งานการทดสอบ
ในการสร้าง Chrome สำหรับการทดสอบ เราได้ทำการเปลี่ยนแปลงฐานโค้ด Chromium และ Chrome รวมถึงตั้งค่าโครงสร้างพื้นฐานเพื่อสร้างและอัปโหลดไบนารีเหล่านี้ไปยังที่เก็บข้อมูลที่พร้อมให้บริการแก่สาธารณะตามกระบวนการเผยแพร่ Chrome ในทุกเวอร์ชัน (เสถียร เบต้า กำลังพัฒนา และ Canary)
โครงสร้างพื้นฐานรอบๆ Chrome สำหรับการทดสอบจะเปิดโอกาสที่น่าสนใจนอกเหนือจาก Chrome เอง ตัวอย่างเช่น ปัญหาที่เรากล่าวถึงก่อนหน้านี้เกี่ยวกับการค้นหาไบนารีของ Chrome และ ChromeDriver ที่ตรงกันจะหมดไปโดยสิ้นเชิงเมื่อผสานรวมกระบวนการเผยแพร่ ChromeDriver เข้ากับโครงสร้างพื้นฐานของ Chrome for Testing นอกจากจะช่วยแก้ปัญหาที่ผู้ใช้พบแล้ว การดำเนินการนี้ยังช่วยให้การเผยแพร่ ChromeDriver สอดคล้องกับการเผยแพร่ Chrome และช่วยลดกระบวนการเผยแพร่ ChromeDriver ด้วยตนเองได้อีกด้วย
ฉันจะรับไบนารีของ Chrome สำหรับการทดสอบได้อย่างไร
วิธีที่ง่ายที่สุดในการดาวน์โหลดไบนารี Chrome สำหรับการทดสอบสำหรับแพลตฟอร์มของคุณคือการใช้ยูทิลิตีบรรทัดคำสั่ง@puppeteer/browsersของเรา ซึ่งพร้อมใช้งานผ่าน npm ตัวอย่างเช่น
# Download the latest available Chrome for Testing binary corresponding to the Stable channel.
npx @puppeteer/browsers install chrome@stable
# Download a specific Chrome for Testing version.
npx @puppeteer/browsers install chrome@116.0.5793.0
# Download the latest available ChromeDriver version corresponding to the Canary channel.
npx @puppeteer/browsers install chromedriver@canary
# Download a specific ChromeDriver version.
npx @puppeteer/browsers install chromedriver@116.0.5793.0
หากต้องการสร้างสคริปต์อัตโนมัติของคุณเองเพื่อดาวน์โหลดไบนารีเหล่านี้ เราก็มีให้คุณ เรามีปลายทาง JSON API พร้อมเวอร์ชันล่าสุดที่พร้อมใช้งานต่อช่องทางการเผยแพร่ Chrome (เสถียร เบต้า กำลังพัฒนา Canary) หากต้องการดูภาพรวมโดยย่อของสถานะล่าสุด โปรดดูแดชบอร์ดความพร้อมใช้งานของ Chrome for Testing