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