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

אוטומציית בדיקות - כיצד להשתמש בכתובות URL בסיסיות דינמיות עם Selenium ו-Playwright Python ב-GitHub Actions

פורסם:

הקדמה

באוטומציה של אתרי אינטרנט, כתובת ה-URL הבסיסית היא הבסיס לכל אינטראקציה ברשת. היא מפנה את הבדיקות שלכם לסביבה הנכונה (פיתוח, בדיקות, ייצור).

אך כתובות URL סטטיות, המקודדות ישירות בבדיקות, הופכות שבירות בעת שינויי פריסה, שינויי סביבה ועדכוני כתובות URL, מה שמוביל לכשל בבדיקות ולתחזוקת קוד מיותרת.

במאמר זה, אסביר כיצד להשתמש בכתובות URL בסיסיות דינמיות עם Selenium ו-Playwright Python באמצעות GitHub Actions.

מהם GitHub Actions?

לפי מאמר זה:

GitHub Actions הוא API של סיבה ותוצאה ב-GitHub: תזמנו כל זרימת עבודה, המבוססת על כל אירוע, בזמן ש-GitHub מנהלת את הביצוע, מספקת משוב עשיר ומאבטחת כל שלב בדרך. עם GitHub Actions, זרימות עבודה ושלבים הם פשוט קוד בפרוייקט, כך שתוכלו ליצור, לשתף, לעשות שימוש חוזר ולהסתעף משיטות פיתוח התוכנה שלכם.

GitHub Actions הם בחינם ותומכים בפרוייקטים ציבוריים. המאמר יודגם באמצעות הפרוייקט הציבורי שלי, המכיל חבילת בדיקות E2E הכתובות בפייתון.

יישום הפתרון

אנו עובדים עם pytest, שהיא סביבת בדיקות פופולרית עבור פייתון. ומשתמשים בתוסף pytest-base-url. אנו מגדירים את כתובת ה-URL הבסיסית בקובץ pyproject.toml תחת הסעיף [tool.pytest.ini_options] המשמש להגדרת אפשרויות pytest.

Selenium

def pytest_runtest_setup(item: Item) -> None:
    base_url = item.config.getoption("base_url")
    driver.get(base_url)

הנה פירוט של קוד ה-pytest Selenium המשתמש בתוסף ה-base URL:

1. Fixture Hook:

2. אחזור כתובת URL בסיסית:

3. ניווט לכתובת URL בסיסית:

קישור לפרויקט - עם דוגמאות קוד מלאות.

Playwright

@pytest.fixture(scope="function", autouse=True)
def goto(page: Page):
    page.goto("")

התוסף מזריק את ערך כתובת ה-URL הבסיסית לסביבת הבדיקה או ל-fixtures. כעת השתמשו בכתובת ה-URL הבסיסית שסופקה על ידי התוסף, מה שמבטיח ניווט לסביבה המתאימה.

קישור לפרויקט - עם דוגמאות קוד מלאות.

GitHub Actions

אנו מגדירים משתנה פרוייקט בשם BASE_URL בכתובת https://github.com/{owner}/{repo}/settings/variables/actions

{owner}: זה מייצג את שם המשתמש שבבעלותו פרוייקט ה-GitHub שבו אתם מגדירים את המשתנה.

{repo}: זה מתייחס לשם הפרוייקט עצמו.

הוספת משתנה פרוייקט

השימוש בזרימת העבודה של GitHub Actions:

pytest --base-url ${{ vars.BASE_URL }}

הפקודה שסופקה מפעילה בדיקות בתוך זרימות העבודה שלנו ב-Selenium ו-GitHub Actions באמצעות pytest. הנה פירוט:

--base-url ${{ vars.BASE_URL }}: אפשרות זו ממנפת כתובת URL בסיסית דינמית, המאוחסנת במשתנה של זרימת העבודה בשם BASE_URL. התחביר ${{ vars.BASE_URL }} מאחזר את ערך המשתנה ומזריק אותו לפקודה.

אנו יכולים לשנות את כתובת ה-URL הבסיסית בממשק המשתמש של GitHub - או שאנו יכולים להשתמש ב-API של GitHub.

קבלת BASE_URL באופן תכנותי - דוגמה ב-Postman:

קבלת כתובת ה-URL הבסיסית ב-Postman

עדכון BASE_URL באופן תכנותי - דוגמה ב-Postman:

עדכון כתובת ה-URL הבסיסית ב-Postman

לסיכום

פירקנו את המושג של כתובות URL בסיסיות, את תפקידן החיוני באוטומציית בדיקות, וכיצד לנהל אותן ביעילות. חקרנו את השימוש בהן ב-Selenium ו-Playwright Python, תוך מינוף התוסף pytest-base-url לתצורה יעילה.

יתר על כן, התעמקנו בשילוב כתובות URL בסיסיות דינמיות בתוך זרימות עבודה של GitHub Actions. על ידי אחסונן כמשתני פרוייקט, אתם משיגים שליטה מרכזית ומאפשרים בדיקות ספציפיות לסביבה (פיתוח/בדיקות) הן דרך ממשק המשתמש והן דרך ה-API החזק של GitHub.

זכרו, כתובות URL בסיסיות דינמיות מעצימות אוטומציית בדיקות גמישה, ניתנת לתחזוקה ואמינה - אבן יסוד באיכות התוכנה. אמצו את הפוטנציאל שלהן ושדרגו את שיטות הבדיקה שלכם!

קריאה נוספת על תכונות GitHub Actions ניתן למצוא בקישור זה.

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


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

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


הפוסט הקודם
אוטומציית בדיקות - כיצד להשתמש ב-User Agent מותאם אישית ב-Selenium Python או Playwright Python כדי להימנע מבוטים של אבטחה
הפוסט הבא
אוטומציית בדיקות - מקסום חלון הדפדפן עם Playwright Python ו-Pytest