היום אנחנו שמחים להכריז על Chrome for Testing, טעם חדש של Chrome שמטרגט באופן ספציפי תרחישים לדוגמה של בדיקה ואוטומציה של אפליקציות אינטרנט. במאמר הזה מוסבר למה לדעתכם צריך את הצוות של Chrome, והוספנו דוגמאות קונקרטיות שבהן Chrome for Testing יכול להועיל לכם כמפתח.
רקע
בדיקת דפדפן היא רכיב חיוני ביצירת חוויית אינטרנט איכותית, ולא משנה אם היא מתבצעת באופן ידני או אוטומטי. עם זאת, קשה לדעת להגדיר סביבה מתאימה לבדיקות דפדפן, עד כדי כך שהמושג בעקביות מדווח כבעייתי של מפתחי אתרים. היום אנחנו מכריזים על שינוי, בתקווה, שיפחית חלק מהכאבים.
עדכון אוטומטי: נהדר למשתמשים, כואב למפתחים
אחת התכונות הבולטות ביותר של Chrome היא היכולת לבצע עדכון אוטומטי. המשתמשים שמחים לדעת שהם מפעילים גרסת דפדפן עדכנית ומאובטחת, כולל תכונות מודרניות של פלטפורמת האינטרנט, תכונות דפדפן ותיקוני באגים.
עם זאת, כמפתחים שמפעילים חבילה של בדיקות מקצה לקצה, עשויה להיות לך נקודת מבט שונה לגמרי:
- אתם רוצים לקבל תוצאות עקביות וניתנות לשחזור בהפעלות חוזרות של בדיקות, אבל יכול להיות שזה לא יקרה אם קובץ ההפעלה או הקובץ הבינארי של הדפדפן יחליטו לעדכן את עצמו בין שתי הפעלות.
- אתם רוצים להצמיד גרסה ספציפית של הדפדפן ולבדוק את מספר הגרסה הזה למאגר קוד המקור שלכם, כדי שתוכלו לבדוק ולהסתעפויות ישנות ולהריץ מחדש את הבדיקות מול הקובץ הבינארי של הדפדפן מאותה נקודה.
אי אפשר לעשות את זה באמצעות קובץ בינארי של עדכון אוטומטי בדפדפן. כתוצאה מכך, לא כדאי להשתמש בהתקנה הרגילה של Chrome לביצוע בדיקות אוטומטיות. זהו חוסר ההתאמה הבסיסי בין מה שטוב למשתמשים רגילים בדפדפן לעומת מה שטוב למפתחים שמבצעים בדיקות אוטומטיות.
גרסאות בינאריות של הדפדפן
מלבד העדכון האוטומטי, ייתכן גם שקשה למצוא קובץ בינארי של Chrome עם גרסה ספציפית. Google לא מאפשרת באופן מכוון הורדות מ-Chrome להגיע לגרסה מסוימת, כי המשתמשים לא אמורים להיות מעוניינים במספרי הגרסאות. הם צריכים תמיד לעדכן לגרסה העדכנית ביותר בהקדם האפשרי. זה מעולה למשתמשים, אבל זה כואב למפתחים שצריכים לשחזר דוח על באג בגרסה ישנה יותר של Chrome.
דוגמה ספציפית יותר לבעיה הזו היא כשרוצים להשתמש ב-ChromeDriver לאוטומציה של הדפדפן. לא רק שצריך להוריד באופן כלשהו קובץ בינארי של Chrome, אלא גם נדרש קובץ בינארי של ChromeDriver בגרסה תואמת כדי לוודא ששני הקבצים הבינאריים תואמים.
מכיוון שאין דרך טובה לפתור את הבעיות האלה, אנחנו יודעים שמפתחים רבים מורידים קבצים בינאריים של Chromium (ולא של Chrome), אבל בגישה הזו יש כמה פגמים. ראשית, הקבצים הבינאריים האלה של Chromium אינם זמינים באופן מהימן בכל הפלטפורמות. שנית, הם נוצרים ומתפרסמים בנפרד מתהליך ההפצה של Chrome, ולכן לא ניתן למפות את הגרסאות שלהם חזרה לגרסאות Chrome אמיתיות שמיועדות למשתמשים. שלישית, Chromium שונה מ-Chrome.
הפתרון: Chrome for Testing
Chrome for Testing נועד לפתור את הבעיות האלה, בגרסה ייעודית של Chrome שמטרגט את תרחישי הבדיקה לדוגמה, ללא עדכון אוטומטי, שמשולב בתהליך ההפצה של Chrome, זמין בכל גרסה של Chrome. גרסה בינארית שקרובה ככל האפשר ל-Chrome הרגיל, בלי להשפיע לרעה על התרחיש לדוגמה של הבדיקה.
כדי ליצור את Chrome for Testing, ביצענו שינויים בבסיסי הקוד של Chromium וב-Chrome והגדרתם תשתית ליצירה ולהעלאה של הקבצים הבינאריים האלה לקטגוריה זמינה לציבור בשלב נעילה, במסגרת תהליך הפרסום של Chrome בכל הערוצים (יציבים, בטא, פיתוח ו-Canary).
התשתית סביב Chrome for Testing פותחת בפניך הזדמנויות מעניינות, מעבר ל-Chrome עצמו. לדוגמה, אפשר לבטל לחלוטין את הקשיים שהזכרנו קודם לגבי מציאת קובץ בינארי תואם של Chrome ושל ChromeDriver באמצעות שילוב תהליך ההפצה של ChromeDriver בתשתית של Chrome for Testing. נוסף על הפתרון לבעיה הזו, גם הגרסה של ChromeDriver קושרה לגרסאות של Chrome ומבטלת את תהליך ההפצה הידני של ChromeDriver.
איך אפשר לקבל קבצים בינאריים של Chrome for Testing?
הדרך הקלה ביותר להוריד את הקבצים הבינאריים של Chrome for Testing לפלטפורמה שלכם היא באמצעות כלי שורת הפקודה @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
אם אתם מעדיפים ליצור סקריפטים אוטומטיים משלכם כדי להוריד את הקבצים הבינאריים האלה, אתם צריכים לעשות את זה. אנחנו מציעים נקודות קצה ל-API בפורמט JSON עם הגרסאות העדכניות ביותר לכל ערוץ הפצה של Chrome (יציב, בטא, Dev, Canary). כדי לקבל סקירה כללית קצרה של הסטטוס העדכני, אפשר לעיין במרכז הבקרה לזמינות של Chrome for Testing.