Chrome for Testing

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, שהוא הלוגו הרגיל של Chrome עם המילה Test בתוך מלבן שחור.

כדי ליצור את Chrome for Testing, הטמענו שינויים בבסיסי הקוד של Chromium ו-Chrome והקמנו תשתית לבנייה ולהעלאה של קבצים בינאריים אלה למאגר שזמין לציבור, במקביל לתהליך ההפצה של Chrome בכל הערוצים (יציב, בטא, Dev ו-Canary).

התשתית של Chrome for Testing פותחת הזדמנויות מעניינות מעבר ל-Chrome עצמו. לדוגמה, אפשר לפתור לחלוטין את הבעיות שצוינו קודם לגבי מציאת קובץ בינארי תואם של Chrome ושל ChromeDriver על ידי שילוב תהליך ההפצה של ChromeDriver בתשתית של Chrome for Testing. בנוסף לפתרון הבעיה הזו שמשפיעה על המשתמשים, השינוי הזה גם מיישר קו בין הגרסאות של ChromeDriver לגרסאות של Chrome, ומבטל את תהליך ההפצה הידני של ChromeDriver.