אז, יש לנו מערכת אוטומציה. היא מתממשקת יופי לאפליקציה שלנו, והטסטים אפילו יציבים יחסית. אבל אחרי שהם רצו, כמה קל לנו לנתח את תוצאות הריצה? האם אנחנו מבזבזים יותר זמן מהנדרש על הבנה של הבעיות שעלו בתרחיש?
במאמר זה אדבר על החשיבות של הוספת Reporter לתשתית האוטומציה, ואציג דוגמה של החיבור בין תשתית האוטומציה לדו"ח סוף הריצה עם Allure ו-pytest. הממשק והיכולות שאפשר לקבל מ-Allure עצומים, ולכן אציג כאן את הבסיס ממנו כדאי להתחיל וכבר יהווה חלק גדול בהבנת התרחישים.
חשוב לציין - אמנם אני מציג דוגמאות בשפת Python, אך העקרונות נכונים וניתנים למימוש כמעט בכל שפה נפוצה.
דרישות קדם: היכרות עם pytest
Reporter הוא כלי עזר לייצור דו”חות ריצה, שנוצר על מנת לאפשר לנו ניתוח פשוט יותר של ריצות האוטומציה וביצוע מעבר על תוצרי הריצה והבנתם באופן קל יותר מאשר דו”ח הריצה הסטנדרטי שאנחנו מקבלים משפת התכנות איתה עבדנו. בדרך כלל, הממשק יהיה יותר ויזואלי ופחות טקסטואלי, ויעזור לנו לקבל תמונה פשוטה וברורה של מצב המוצר או המודול עליו רצה האוטומציה - דו”ח Allure לדוגמה.
התקנות נדרשות:
תחילה נתקין את חבילת allure-pytest דרך pip באמצעות שורת הפקודה -
הספרייה allure-pytest תנהל עבורנו את ההתממשקות בין pytest ל-Allure ותעזור לנו לייצר דו”ח המכיל את פרטי הריצה (ועוד פרטים נוספים שהוספו על ידינו) בפורמט json ש-allure commandline יידע לקרוא ולהפוך לדו”ח של ממש.
כעת נתקין את allure-commandline - הסבר להתקנה לפי מערכת הפעלה
הכלי allure commandline יעזור לנו בהפיכת קבצי ה-json שנוצרו באמצעות pytest לדו”ח html של ממש.
שתי הפקודות העיקריות שהוא מכיל הן - serve (יצירת דו”ח ופתיחתו למשתמש) ו- generate (יצירת דו”ח ושמירתו בתיקייה).
• לצורך התקנת עבודה עם allure commandline, נדרשת התקנה של java והוספתה למשתני הסביבה
• גם את הנתיב ל-allure commandline מומלץ לשים במשתני הסביבה
לאחר שחבילת allure-pytest הותקנה, נכתוב שני תרחישי בדיקה עם pytest
(לצורך הדוגמה)
אז יש לנו שני תרחישים אשר ניתנים להרצה עם pytest, ועכשיו על מנת לשלב בין pytest ל-allure, נריץ את התרחיש ב-pytest עם flag אשר יציין היכן לשים את תוצאות הריצה.
במקרה הזה, report זו תיקייה לדוגמה, ותוצאות הריצה יירשמו לתוך התיקיה report אשר תיווצר בתוך התיקיה בה נמצא קובץ הבדיקות.
כל מה שנשאר לעשות זה רק לייצר את הדו”ח באמצעות allure commandline באופן הבא:
נקליד בשורת הפקודה - allure serve report (במקום המילה report יש להכניס את הנתיב לתיקייה שמכילה את תוצאות הריצה).
עתה אמור להיפתח דפדפן עם תוצאות הריצה מוכלות בתוכו
ואם נרצה, נוכל להיכנס ולראות בדיוק מה הייתה סיבת הכשלון על פי pytest:
מכאן יש רשימה גדולה וארוכה של יכולות שאפשר להוסיף על מנת לקבל יותר מידע בדו”ח הריצה.
דוגמה טובה תהיה הוספת steps לריצה שלנו באופן הבא:
ולאחר הרצה חוזרת באמצעות pytest ויצירת הדו”ח עם Allure, נוכל לראות הפעם מעט יותר פירוט בתוכן תרחיש הבדיקה:
בפוסט הצגתי את Allure על קצה הקרחון ויש עוד כמות אדירה של יכולות שהוא יכול לספק כמו חלוקה לסוויטות, קבלת סטטיסטיקות על ריצות וכישלונות והתממשקות עם Jenkins.
את הפירוט המלא על היכולות ניתן לראות בדוקומנטציה.
בנוסף, חשוב להבהיר ששימוש לקוי עלול להוביל לסיבוך בקוד ואף לאי קריאה שלו, ולכן גם כשמוסיפים לוגים ודו”חות לקוד שלנו, חשוב לשמור על עקרו
אז, יש לנו מערכת אוטומציה. היא מתממשקת יופי לאפליקציה שלנו, והטסטים אפילו יציבים יחסית. אבל אחרי שהם רצו, כמה קל לנו לנתח את תוצאות הריצה? האם אנחנו מבזבזים יותר זמן מהנדרש על הבנה של הבעיות שעלו בתרחיש?
במאמר זה אדבר על החשיבות של הוספת Reporter לתשתית האוטומציה, ואציג דוגמה של החיבור בין תשתית האוטומציה לדו"ח סוף הריצה עם Allure ו-pytest. הממשק והיכולות שאפשר לקבל מ-Allure עצומים, ולכן אציג כאן את הבסיס ממנו כדאי להתחיל וכבר יהווה חלק גדול בהבנת התרחישים.
חשוב לציין - אמנם אני מציג דוגמאות בשפת Python, אך העקרונות נכונים וניתנים למימוש כמעט בכל שפה נפוצה.
דרישות קדם: היכרות עם pytest
Reporter הוא כלי עזר לייצור דו”חות ריצה, שנוצר על מנת לאפשר לנו ניתוח פשוט יותר של ריצות האוטומציה וביצוע מעבר על תוצרי הריצה והבנתם באופן קל יותר מאשר דו”ח הריצה הסטנדרטי שאנחנו מקבלים משפת התכנות איתה עבדנו. בדרך כלל, הממשק יהיה יותר ויזואלי ופחות טקסטואלי, ויעזור לנו לקבל תמונה פשוטה וברורה של מצב המוצר או המודול עליו רצה האוטומציה - דו”ח Allure לדוגמה.
התקנות נדרשות:
תחילה נתקין את חבילת allure-pytest דרך pip באמצעות שורת הפקודה -
הספרייה allure-pytest תנהל עבורנו את ההתממשקות בין pytest ל-Allure ותעזור לנו לייצר דו”ח המכיל את פרטי הריצה (ועוד פרטים נוספים שהוספו על ידינו) בפורמט json ש-allure commandline יידע לקרוא ולהפוך לדו”ח של ממש.
כעת נתקין את allure-commandline - הסבר להתקנה לפי מערכת הפעלה
הכלי allure commandline יעזור לנו בהפיכת קבצי ה-json שנוצרו באמצעות pytest לדו”ח html של ממש.
שתי הפקודות העיקריות שהוא מכיל הן - serve (יצירת דו”ח ופתיחתו למשתמש) ו- generate (יצירת דו”ח ושמירתו בתיקייה).
• לצורך התקנת עבודה עם allure commandline, נדרשת התקנה של java והוספתה למשתני הסביבה
• גם את הנתיב ל-allure commandline מומלץ לשים במשתני הסביבה
לאחר שחבילת allure-pytest הותקנה, נכתוב שני תרחישי בדיקה עם pytest
(לצורך הדוגמה)
אז יש לנו שני תרחישים אשר ניתנים להרצה עם pytest, ועכשיו על מנת לשלב בין pytest ל-allure, נריץ את התרחיש ב-pytest עם flag אשר יציין היכן לשים את תוצאות הריצה.
במקרה הזה, report זו תיקייה לדוגמה, ותוצאות הריצה יירשמו לתוך התיקיה report אשר תיווצר בתוך התיקיה בה נמצא קובץ הבדיקות.
כל מה שנשאר לעשות זה רק לייצר את הדו”ח באמצעות allure commandline באופן הבא:
נקליד בשורת הפקודה - allure serve report (במקום המילה report יש להכניס את הנתיב לתיקייה שמכילה את תוצאות הריצה).
עתה אמור להיפתח דפדפן עם תוצאות הריצה מוכלות בתוכו
ואם נרצה, נוכל להיכנס ולראות בדיוק מה הייתה סיבת הכשלון על פי pytest:
מכאן יש רשימה גדולה וארוכה של יכולות שאפשר להוסיף על מנת לקבל יותר מידע בדו”ח הריצה.
דוגמה טובה תהיה הוספת steps לריצה שלנו באופן הבא:
ולאחר הרצה חוזרת באמצעות pytest ויצירת הדו”ח עם Allure, נוכל לראות הפעם מעט יותר פירוט בתוכן תרחיש הבדיקה:
בפוסט הצגתי את Allure על קצה הקרחון ויש עוד כמות אדירה של יכולות שהוא יכול לספק כמו חלוקה לסוויטות, קבלת סטטיסטיקות על ריצות וכישלונות והתממשקות עם Jenkins.
את הפירוט המלא על היכולות ניתן לראות בדוקומנטציה.
בנוסף, חשוב להבהיר ששימוש לקוי עלול להוביל לסיבוך בקוד ואף לאי קריאה שלו, ולכן גם כשמוסיפים לוגים ודו”חות לקוד שלנו, חשוב לשמור על עקרו
הודעתך לא התקבלה - נסה שוב מאוחר יותר
Oops! Something went wrong while submitting the form