אוטומציה ובדיקות באמצעות Chrome

בדיקות אוטומטיות בדפדפן הן חיוניות לפיתוח אפליקציות אינטרנט חזקות ואיכותיות. בין אם אתם מריצים חבילות בדיקה מקצה לקצה של שילוב רציף (CI), מבצעים בדיקות רגרסיה בגרסאות של דפדפנים או מבצעים אוטומציה של אינטראקציות עם דפדפנים, Chrome מספק חבילה ייעודית של כלים ומצבי הפעלה שמיועדים למפתחים ולמהנדסי אוטומציה של בדיקות.

בסקירה הזו מוצגים מוצרי הליבה במערכת האקולוגית של האוטומציה והבדיקות של Chrome –‏ Chrome for Testing,‏ ChromeDriver,‏ Puppeteer ומצב Headless של Chrome – ומוסבר איך אפשר להשתמש בהם יחד כדי ליצור זרימות עבודה של בדיקות אמינות וניתנות לשחזור.


Chrome for Testing

Chrome for Testing הוא גרסה ייעודית של Chrome שמיועדת לבדיקות של אפליקציות אינטרנט ולתרחישי שימוש באוטומציה.

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

תכונות עיקריות

  • הורדות לפי גרסה על פי דרישה: גישה לקבצים בינאריים ספציפיים של Chrome לפי גרסה, כדי שתמיד תוכלו לבדוק את הגרסה המדויקת שבחרתם.
  • קבצים בינאריים תואמים בכל הערוצים: לכל גרסת Chrome בכל הערוצים (יציב, בטא, Dev ו-Canary), Chrome for Testing מספק קבצים בינאריים תואמים של Chrome שמשויכים לקבצים הבינאריים הרלוונטיים של ChromeDriver, וגם את המעטפת הישנה של Chrome Headless ‏ (chrome-headless-shell) למי שעדיין משתמש בה בבדיקות אוטומטיות.
  • אוטומציה פשוטה של הורדות: אפשר להוריד קבצים בינאריים בקלות באמצעות כלי שורת הפקודה @puppeteer/browsers או לשלוח שאילתה דרך לוח הבקרה של הזמינות.

מידע נוסף


ChromeDriver

ChromeDriver הוא שרת עצמאי בקוד פתוח שמיישם את תקן W3C WebDriver ואת פרוטוקול WebDriver BiDi הדו-כיווני. הוא משמש כגשר בין מסגרות בדיקה שמבוססות על WebDriver (כמו Selenium,‏ WebDriverIO ו-Nightwatch) לבין דפדפן Chrome.

תכונות עיקריות

  • תמיכה ב-W3C WebDriver וב-WebDriver BiDi: תמיכה בפקודות אוטומציה קלאסיות של WebDriver ובתקשורת דו-כיוונית בזמן אמת באמצעות WebDriver BiDi להאזנה מהירה לאירועים, למעקב אחרי הרשת וליירוט יומנים.
  • הגרסאות מתפרסמות יחד עם Chrome for Testing: הגרסאות של ChromeDriver משולבות ישירות בתשתית של Chrome for Testing. לכל גרסה של Chrome for Testing יש גרסה תואמת של ChromeDriver שמתפרסמת בו-זמנית, כך שאין בעיות של חוסר התאמה בין הגרסאות.

מידע נוסף


Puppeteer

Puppeteer היא ספריית JavaScript שפותחה על ידי Google ומספקת API ברמה גבוהה לשליטה ב-Chrome באמצעות פרוטוקול כלי פיתוח ל-Chrome‏ (CDP) או WebDriver BiDi.

תכונות עיקריות

  • אוטומציה ללא הגדרה: Puppeteer מוריד אוטומטית קובץ בינארי תואם של Chrome for Testing כברירת מחדל, וכך מאפשר אוטומציה של הדפדפן ללא צורך בהגדרה.
  • שליטה מלאה ב-Chrome: אפשר לצלם בקלות צילומי מסך, ליצור קובצי PDF, להפוך את שליחת הטפסים לאוטומטית, ליירט בקשות לרשת ולהריץ בדיקות של ממשק המשתמש במצב עם ראש או במצב ללא ראש.

מידע נוסף


מצב Headless Chrome

מצב Headless ב-Chrome מאפשר להריץ את Chrome בסביבה לא מאוישת ללא ממשק משתמש גלוי. העברת האפשרות --headless בשורת הפקודה מאפשרת להריץ את Chrome בצורה נקייה בסביבות שרת, במאגרי קונטיינרים ובצינורות CI/CD.

תכונות עיקריות

  • מנוע דפדפן מאוחד: במצב Headless מודרני (--headless) נעשה שימוש באותו יישום דפדפן כמו ב-Chrome עם ממשק משתמש.
  • יכולות אוטומציה וניפוי באגים עשירות: תמיכה בצילום מסך, יצירת PDF, ניפוי באגים מרחוק והגדרה של מסך וירטואלי.

מידע נוסף


דוגמה: שימוש משולב במוצרים האלה

בתהליך עבודה טיפוסי של בדיקות אוטומטיות או שילוב רציף (CI), המוצרים האלה פועלים יחד כדי לספק סביבת בדיקה שניתן לשחזר ושלא דורשת התערבות:

  1. קובץ בינארי של דפדפן (Chrome for Testing): כדאי להשתמש בקובץ בינארי ספציפי של Chrome for Testing עם גרסה קבועה, כדי שתוצאות הבדיקה יהיו דטרמיניסטיות בכל ההרצות.
  2. מצב הפעלה (מצב Headless של Chrome): מריצים את הקובץ הבינארי במצב Headless (--headless) כדי שהבדיקות יפעלו בצורה נקייה בשרתים, במאגרי מידע או בצינורות CI ללא תצוגה גרפית.
  3. תוכנת בקרה לאוטומציה (Puppeteer או ChromeDriver): שליטה בדפדפן באמצעות ספריית אוטומציה כמו Puppeteer או כל מסגרת בדיקה אחרת שמחוברת דרך WebDriver BiDi.

‫Puppeteer מחבר בין החלקים האלה באופן אוטומטי. במהלך ההתקנה, הכלי מוריד קובץ בינארי תואם של Chrome for Testing ומפעיל אותו במצב Headless כברירת מחדל.

כשמשתמשים במסגרות W3C WebDriver (כמו Selenium או WebdriverIO), אפשר להוריד באופן אוטומטי זוג תואם של קובצי הפעלה בינאריים של Chrome for Testing ושל ChromeDriver ולהעביר את הדגל --headless כדי להפעיל את הבדיקה בלי ממשק משתמש.


הנחיות לגבי ערוצי הפצה ו-Enterprise