วันนี้เรายินดีที่จะนำเสนอ 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 ปกติมากที่สุดโดยไม่ส่งผลเสียต่อ Use Case ของการทดสอบ
ในการสร้าง 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 (เสถียร, เบต้า, Dev, Canary) หากต้องการดูภาพรวมคร่าวๆ เกี่ยวกับสถานะล่าสุด โปรดดูแดชบอร์ดความพร้อมใช้งานของ Chrome สำหรับการทดสอบ