Allure Reporter - הטמעת דוחות ריצה באוטומציה


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

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


אמנם הפוסט מציג דוגמאות בשפת Python אך העקרונות נכונים וניתנים למימוש כמעט בכל שפה נפוצה.

דרישות קדם: היכרות עם pytest

אז קודם כל, מה זה Reporter ואיך הוא עוזר לנו?

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

יצירת הדוח הראשון שלנו

  1. התקנות נדרשות:
    תחילה נתקין את חבילת allure-pytest דרך pip באמצעות שורת הפקודה -
                                                                python -m pip install allure-pytest
    הספרייה allure-pytest תנהל עבורנו את ההתממשקות בין pytest ל Allure ותעזור לנו לייצר דוח המכיל את פרטי הריצה (ועוד פרטים נוספים שהוספו על ידינו) בפורמט json ש allure commandline ידע לקרוא ולהפוך לדוח של ממש.
  2. כעת נתקין את allure-commandline - הסבר להתקנה לפי מערכת הפעלה
    הכלי allure commandline יעזור לנו בהפיכת קבצי ה json שנוצרו באמצעות pytest לדוח html של ממש.
    שתי הפקודות העיקריות שהוא מכיל הן - serve (יצירת דוח ופתיחתו למשתמש) ו- generate (יצירת דוח ושמירתו בתיקייה).
    * לצורך התקנת עבודה עם allure commandline נדרשת התקנה של java והוספתה למשתני הסביבה
    * גם את הנתיב ל allure commandline מומלץ לשים במשתני הסביבה
  3. כתיבת התרחיש:
    לאחר שחבילת allure-pytest מותקנת נכתוב שני תרחישי בדיקה עם pytest (לצורך הדוגמה)
  4. הרצת התרחיש:
    אז יש לנו שני תרחישים אשר ניתנים להרצה עם pytest ועכשיו על מנת לשלב בין pytest ל allure נריץ את התרחיש ה pytest עם flag אשר יציין היכן לשים את תוצאות הריצה.
                                                                        pytest --alluredir=report
    במקרה הזה report זו תיקייה לדוגמה ותוצאות הריצה ירשמו לתוך התקייה report אשר תיווצר בתוך התקייה בה נמצא קובץ הבדיקות.
  5. יצירת הדוח:
    כל מה שנשאר לעשות זה רק לייצר את הדוח באמצעות allure commandline באופן הבא:
    נקליד בשורת הפקודה - 
    allure serve report (במקום המילה report יש להכניס את הנתיב לתיקייה שמכילה את תוצאות הריצה).
  6. צפייה בדוח:
    עתה אמור להפתח דפדפן עם תוצאות הריצה מוכלות בתוכו



    ואם נרצה נוכל להכנס ולראות בדיוק מה הייתה סיבת הכשלון על פי pytest:
  7. עיבוי התרחיש:
    מכאן יש רשימה גדולה וארוכה של יכולות שאפשר להוסיף על מנת לקבל יותר מידע בדוח הריצה.
    דוגמה טובה תהיה הוספת steps לריצה שלנו באופן הבא:


  8. ולאחר הרצה חוזרת באמצעות pytest ויצירת הדוח עם Allure נוכל לראות הפעם מעט יותר פירוט בתוכן תרחיש הבדיקה:


סיכום

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

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

נתראה בפוסט הבא :)

תגובות

  1. שלום, תוכל להרחיב מהן התקיות שנוצרות מעצמן allure-report וallure-results ?

    השבמחק

הוסף רשומת תגובה

פוסטים פופולריים מהבלוג הזה

תכנות מונחה עצמים | Dependency Inversion Principle

מהם קבצי DLL ואיך להשתמש בהם?

מה ההבדל בין אוטומציה לפיתוח רגיל