Chrome สำหรับการทดสอบ: การดาวน์โหลดที่เชื่อถือได้สำหรับระบบอัตโนมัติของเบราว์เซอร์

วันนี้เรายินดีที่จะเปิดตัว Chrome สำหรับการทดสอบ ซึ่งเป็น Chrome รสชาติใหม่ที่กำหนดเป้าหมายสำหรับการทดสอบเว็บแอปและกรณีการใช้งานอัตโนมัติโดยเฉพาะ บทความนี้จะอธิบายว่าเหตุใดทีม Chrome จึงมีความจำเป็นที่ต้องจัดการ และแนะนำตัวอย่างที่เป็นรูปธรรมซึ่ง Chrome สำหรับการทดสอบอาจเป็นประโยชน์สำหรับคุณในฐานะนักพัฒนาซอฟต์แวร์

ที่มา

การทดสอบเบราว์เซอร์เป็นองค์ประกอบสำคัญในการสร้างประสบการณ์การใช้งานเว็บที่มีคุณภาพสูง ไม่ว่าจะเป็นการดำเนินการด้วยตนเองหรือโดยอัตโนมัติ ในขณะเดียวกัน เห็นได้ชัดว่าการตั้งค่าสภาพแวดล้อมการทดสอบเบราว์เซอร์ให้เพียงพอเป็นเรื่องที่ยากมาก จนทำให้มี รายงานไว้เป็นประเด็นปัญหาอันดับต้นๆ ของนักพัฒนาเว็บ วันนี้เราขอแจ้งให้ทราบถึงการเปลี่ยนแปลงที่หวังว่าจะช่วยบรรเทาความเจ็บปวดบางส่วนได้

การอัปเดตอัตโนมัติ: เหมาะสำหรับผู้ใช้ และสร้างความยุ่งยากให้กับนักพัฒนาซอฟต์แวร์

หนึ่งในฟีเจอร์ที่โดดเด่นที่สุดของ Chrome คือการอัปเดตอัตโนมัติ ผู้ใช้รู้สึกยินดีที่ได้ทราบว่ากำลังใช้เบราว์เซอร์เวอร์ชันล่าสุดและปลอดภัย ซึ่งรวมถึงฟีเจอร์แพลตฟอร์มเว็บสมัยใหม่ ฟีเจอร์เบราว์เซอร์ และการแก้ไขข้อบกพร่องตลอดเวลา

อย่างไรก็ตาม ในฐานะนักพัฒนาซอฟต์แวร์ที่ใช้ชุดการทดสอบแบบเอนด์ทูเอนด์อาจมีมุมมองที่แตกต่างออกไปอย่างสิ้นเชิง

  • คุณต้องการผลลัพธ์ที่มีความสม่ำเสมอและทำซ้ำได้ในการทดสอบซ้ำ แต่ทั้งนี้อาจไม่เกิดขึ้นหากไฟล์ปฏิบัติการหรือไบนารีของเบราว์เซอร์ตัดสินใจอัปเดตตัวเองระหว่างการเรียกใช้ 2 ครั้ง
  • คุณต้องการตรึงเวอร์ชันของเบราว์เซอร์ที่เฉพาะเจาะจงและตรวจสอบหมายเลขเวอร์ชันนั้นในที่เก็บซอร์สโค้ด เพื่อที่จะได้ตรวจสอบคอมมิตเก่าและสาขา รวมถึงทำการทดสอบกับไบนารีของเบราว์เซอร์อีกครั้งตั้งแต่นั้น

ไม่สามารถดำเนินการดังกล่าวได้ด้วยไบนารีของเบราว์เซอร์ที่อัปเดตอัตโนมัติ ด้วยเหตุนี้ คุณอาจไม่ต้องการใช้การติดตั้ง Chrome ตามปกติสำหรับการทดสอบอัตโนมัติ ข้อมูลนี้เป็นความคลาดเคลื่อนพื้นฐานระหว่างสิ่งที่ดีสำหรับผู้ใช้เบราว์เซอร์ทั่วไปกับสิ่งที่ดีสำหรับนักพัฒนาซอฟต์แวร์ที่ดำเนินการทดสอบอัตโนมัติ

ไบนารีของเบราว์เซอร์ที่มีเวอร์ชัน

นอกจากการอัปเดตอัตโนมัติแล้ว คุณอาจพบว่าการหาไบนารีของ Chrome ในเวอร์ชันที่ต้องการนั้นเป็นเรื่องยาก Google จะไม่เปิดให้ดาวน์โหลด Chrome ที่มีการกำหนดเวอร์ชันได้ เนื่องจากผู้ใช้ไม่ควรต้องสนใจกับหมายเลขเวอร์ชัน แต่ควรได้รับการอัปเดตเป็นเวอร์ชันล่าสุดโดยเร็วที่สุดเสมอ สิ่งนี้เหมาะมากสำหรับผู้ใช้ แต่จะทำให้นักพัฒนาซอฟต์แวร์ต้องสร้างรายงานข้อบกพร่องซ้ำใน Chrome เวอร์ชันเก่า

ตัวอย่างที่เจาะจงมากขึ้นของปัญหานี้คือเมื่อคุณต้องการใช้ ChromeDriver สำหรับการทำงานอัตโนมัติของเบราว์เซอร์ นอกจากจะต้องดาวน์โหลดไบนารีของ Chrome แล้ว คุณยังต้องมีไบนารี ChromeDriver เวอร์ชันที่สอดคล้องกันด้วยเพื่อให้แน่ใจว่าทั้ง 2 ไบนารีนั้นใช้งานร่วมกันได้

เนื่องจากไม่มีวิธีที่ดีในการแก้ไขปัญหาเหล่านี้ เราจึงทราบว่านักพัฒนาซอฟต์แวร์จำนวนมากดาวน์โหลดไบนารี Chromium (ไม่ใช่ Chrome) แทน แม้ว่าวิธีนี้จะมีข้อบกพร่องบางประการ ข้อแรก ไบนารี Chromium เหล่านี้อาจไม่พร้อมให้บริการในทุกแพลตฟอร์ม ประการที่ 2 คือมีการสร้างและเผยแพร่แยกต่างหากจากขั้นตอนการเผยแพร่ Chrome ทำให้ไม่สามารถแมปเวอร์ชันต่างๆ กลับไปกับ Chrome รุ่นที่เผยแพร่แก่ผู้ใช้ได้ อย่างที่ 3 Chromium นั้นแตกต่างจาก Chrome

โซลูชัน: Chrome สำหรับการทดสอบ

Chrome สำหรับการทดสอบเป็นโซลูชันเฉพาะที่มุ่งเป้าไปที่กรณีการใช้งานการทดสอบ โดยไม่มีการอัปเดตอัตโนมัติ ซึ่งผสานอยู่ในขั้นตอนการเผยแพร่ของ Chrome และพร้อมใช้งานสำหรับ Chrome ทุกรุ่น ซึ่งออกแบบมาเพื่อแก้ปัญหาเหล่านี้ ไบนารีที่มีเวอร์ชันที่ใกล้เคียงกับ Chrome ปกติมากที่สุดโดยไม่ส่งผลเสียต่อกรณีการใช้งานในการทดสอบ

ในการสร้าง Chrome สำหรับการทดสอบ เราได้เปลี่ยนแปลงโค้ดเบสของ Chromium และ Chrome และตั้งค่าโครงสร้างพื้นฐานเพื่อสร้างและอัปโหลดไบนารีเหล่านี้ไปยังที่เก็บข้อมูลที่พร้อมใช้งานแบบสาธารณะตามขั้นตอนการเผยแพร่ Chrome ในทุกช่องทาง (เสถียร เบต้า กำลังพัฒนา และ Canary)

โครงสร้างพื้นฐานของ Chrome สำหรับการทดสอบปลดล็อกโอกาสที่น่าสนใจนอกเหนือจาก Chrome เอง ตัวอย่างเช่น ปัญหาที่เราพูดถึงก่อนหน้านี้ในการค้นหา Chrome และไบนารี ChromeDriver ที่ตรงกันนั้นสามารถลบออกได้ทั้งหมดโดยการผสานรวมกระบวนการเผยแพร่ของ ChromeDriver เข้ากับโครงสร้างพื้นฐานของ Chrome สำหรับการทดสอบ นอกเหนือจากการแก้ปัญหาที่แสดงต่อผู้ใช้แล้ว ยังเป็นการปรับรุ่น 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 สำหรับการทดสอบ