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

אוטומציית בדיקות - כיצד להוסיף נתוני בקרת גרסאות Git לדוח Allure בפייתון

פורסם:

מבוא

במאמר זה, אסקור את היכולת להוסיף נתוני בקרת גרסאות Git לדוח אוטומציית הבדיקות שלנו.

הכלים הטכנולוגיים המשמשים למימוש הפתרון הם:

שפת תכנות: Python

מנוע בדיקות: pytest

תשתית דוחות: Allure

קישור לפרויקט שפותח יחד עם אליאס שורוש.

לפעמים בדיקות שעוברות הופכות ללא יציבות (flaky), זה יכול לקרות מסיבות רבות:

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

הפתרון – הוספת נתוני בקרת גרסאות לדוח Allure

סקירת מסגרת הדיווח Allure

ראשית, בואו נסקור את מסגרת Allure. הנה הדגמה של יכולות המסגרת: https://demo.qameta.io/allure/

מדוע בחרנו ב-Allure?

התכונה שבה נשתמש במאמר זה כדי להוסיף את נתוני בקרת הגרסאות שלנו היא היכולת להוסיף מידע סביבתי לדוח.

מימוש הפתרון

class AllureEnvironmentParser:
    """ Writes environment variables into allure environment file"""

    def __init__(self, file_name):
        self.file_path = os.path.join(dir_global.ALLURE_RESULTS_PATH, file_name)

    def write_to_allure_env(self, dic):
        with open(self.file_path, 'w+') as f:
            for key in dic:
                f.write(f'{key}={dic[key]}' + "\n")

חלק זה מורכב ממחלקת AllureEnvironmentParser, שיש לה את השיטה write_to_allure_env. בנאי מציין את שם הקובץ של קובץ ה-XML שיכיל את הנתונים לכתיבה. הוא כותב זוגות מפתח-ערך המופרדים על ידי שורות חדשות ממילון לקובץ XML.

@fixture(autouse=True, scope="session")
def write_allure_environment(prep_properties):
    yield
    repo = Repo(ROOT_DIR)
    env_parser = AllureEnvironmentParser("environment.properties")
    env_parser.write_to_allure_env(
        {
            "Browser": driver.name,
            "Driver_Version": driver.capabilities['browserVersion'],
            "Base_URL": base_url,
            "Commit_Date": datetime.fromtimestamp(repo.head.commit.committed_date).strftime('%c'),
            "Commit_Message": repo.head.commit.message.strip(),
            "Commit_Id": repo.head.object.hexsha,
            "Commit_Author_Name": repo.head.commit.author.name,
            "Branch": repo.active_branch.name
        })

שנית, ה-fixture write_allure_environment משתמש בספריית GitPython כדי לגשת למידע פרוייקט Git ולכתוב אותו לקובץ ה-XML. מחלקת AllureEnvironmentParser כותבת מידע על הקומיט הנוכחי, כגון מזהה קומיט, שם מחבר, הודעת קומיט ותאריך קומיט, לקובץ ה-XML. זאת לאחר ש-fixtures אחרים סיימו את ביצועם. בנוסף, היא מצרפת את גרסת הדפדף, כתובת ה-URL הבסיסית ושם הענף הפעיל לקובץ ה-XML.

תוצאת ההרצה בדוח שנוצר ממוקמת תחת סעיף הסביבה:

allure report

לסיכום

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

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


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

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


הפוסט הקודם
פתרון בעיית התאימות של JDK 17 עם Appium: מדריך צעד אחר צעד
הפוסט הבא
אוטומציית בדיקות - כיצד לצרף Session Storage, Local Storage, Cookies ולוגי קונסול לדוח Allure ב-Selenium Python