דלג לתוכן
חזור

אוטומציית בדיקות - כיצד לסנכרן גרסאות Playwright בין פייתון ו-GitHub Actions

פורסם:

הקדמה

בעת הרצת בדיקות Playwright בצינורות CI/CD, אי-התאמה בין גרסאות הדפדפנים המותקנים לחבילת Playwright עלולה לגרום לכשלים מתסכלים בבדיקות. בעיה נפוצה זו מתרחשת כאשר פקודת התקנת הדפדפן (npx playwright install) משתמשת בגרסה שונה מזו המצוינת בתלויות הפייתון שלכם.

הפתרון המוצג במאמר זה מודגם בפרויקט הדוגמה שלי Playwright Python example project, שפותח בשיתוף עם אליאס שורוש.

הבעיה

בואו נבחן תרחיש טיפוסי: קובץ ה-pyproject.toml שלכם מציין את גרסה 1.49.1 של Playwright, אך הרצת npx playwright install --with-deps מתקינה את הגרסה העדכנית ביותר 1.50. אי-התאמה זו מובילה לבעיות תאימות ולבדיקות שנכשלות.

מדוע זה קורה

יישום הפתרון

ניתן למצוא את קוד הפתרון כאן.

- name: Install Playwright Browsers
  run: |
    PLAYWRIGHT_VERSION=$(grep -E '^playwright = "[^"]*"' pyproject.toml | sed -E 's/playwright = "([^"]*)"_$/\1/')
    npx playwright@$PLAYWRIGHT_VERSION install --with-deps

בואו נפרט כיצד זה עובד:

  1. חילוץ גרסה - שימוש ב-grep כדי למצוא את שורת גרסת Playwright בקובץ pyproject.toml - sed מחלץ רק את מספר הגרסה ומאחסן אותו במשתנה PLAYWRIGHT_VERSION.

  2. התקנת דפדפנים - שימוש בגרסה שחולצה עם npx playwright@$PLAYWRIGHT_VERSION - מבטיח שגרסת הדפדפן תואמת לגרסת החבילה.

שיקולים נוספים

1. ניהול תלויות

הפרויקט שלנו כבר ממנף את Poetry לניהול תלויות פייתון, מה שמקל על שמירת גרסאות עקביות בין סביבות הפיתוח המקומיות וסביבות ה-CI.

2. טיפול בשגיאות

שגיאות נפוצות עקב אי-התאמות בגרסאות עלולות להתרחש. בעת פתרון בעיות, בדקו גם את יומני ה-GitHub Actions וגם את יומני סביבת ה-Poetry המקומית. חפשו אי-התאמות בין גרסאות חבילת Playwright והדפדפנים.

3. הגנה לעתיד

כדי לשמור על עדכניות התלויות, אנו משתמשים ב-Renovate, שיוצר באופן אוטומטי בקשות משיכה (pull requests) כאשר גרסאות חדשות זמינות. זה מבטיח:

מסקנה

ניהול עקביות גרסאות בין חבילות Playwright והדפדפנים הוא חיוני לאוטומציית בדיקות אמינה. על ידי חילוץ הגרסה מ-pyproject.toml ושימוש בה להתקנת הדפדפנים, אנו מבטיחים שצינור ה-CI שלנו שומר על תאימות גרסאות ומפחית כשלים מיותרים בבדיקות.

בדיקות מהנות!


הציעו שינויים

מוכנים לבנות את מפת הדרכים שלכם? נתחיל כאן


הפוסט הקודם
אוטומציית בדיקות - בחירת אלמנטים יעילה עם Playwright Typescript באמצעות מזהי בדיקה
הפוסט הבא
שיטות עבודה מומלצות באוטומציית בדיקות: נעילת גרסת דפדפן ב-Selenium Python ליציבות