מה הם דוחות אוטומציה ומדוע הם הכרחיים בפרויקט אוטומציה?
דוח אוטומציה הוא סיכום של תוצאות ריצת הבדיקות האוטומטיות. הדוח בבסיסו כולל את רשימת הבדיקות שרצו ומציג את הסטטוס שלהם - עברו או נכשלו. לכל סוג דוח יש פיצ'רים ייחודיים משלו ואפשרויות מעניינות ומועילות, שאת חלקם נראה בהמשך המאמר.
במהלך/בסיום ריצת הבדיקות, נרצה להסיק מסקנות לגבי טיב הגרסה בדרך המהירה ביותר. אם בדיקות נכשלו, נרצה לנתח את הסיבות לכישלון ולקבל כמה שיותר מידע לגבי הכישלון. דוח אוטומציה טוב יכיל את השגיאה שאירעה בזמן הריצה, stacktrace, צילום מסך ו/או וידאו בעת הכישלון (במידה ומדובר בבדיקות UI) ועוד נתונים רלוונטים. בצורה זו, לפעמים נוכל להבין מיד מדוע הבדיקות נכשלו והדבר יחסוך מאיתנו דיבוג או הרצה נוספת של הבדיקות שנכשלו. הבנת הסיבה לכשלון הבדיקה יכולה להיות מהירה הרבה יותר בזכות הדוח, ותחסוך לכם ולארגון שלכם המון זמן ומאמץ בחקירת ריצת האוטומציה.
תוכלו לשתף את הדוח עם הצוות שלכם, ההנהלה וכל בעלי העניין. כך הם יקבלו פידבק ברור ונעים לעין של תוצאות הבדיקות האוטומטיות מבלי שיצטרכו להיכנס לפרטים טכניים מדי.
כיצד ניצור דוח אוטומציה בפשטות וביעילות?
זוהי שאלת השאלות והתשובה אליה תלויה מאוד בטכנולוגיות שאיתן אתם עובדים. לפני שבוחרים כלי/ספרייה ליצירת הדוח, חשוב להגדיר איזה מידע אנחנו צריכים שהדוח יספק לנו. לאחר שסיימנו להכין את הרשימה, נבדוק אילו כלים ליצירת דוחות קיימים בשוק ומתאימים לדרישות שלנו. לאחר הסקת המסקנות ובחירת הדוח, נוכל להתממשק אליו וליצור אותו גם לפרויקט שלנו. כדאי לא להמציא את הגלגל שוב - אם כבר קיים בשוק דוח שעונה על הצרכים שלנו באופן מלא ויש לו משתמשים מרוצים שעובדים איתו כבר תקופה, אין צורך להשקיע מאמצים מיותרים ולממש דוח בעצמנו מאפס.
ועכשיו לחלק המעשי, נתקדם מהקל לכבד:
דוח הנוצר כחלק מכלי האוטומציה
כידוע, ישנו מספר לא מבוטל של כלי אוטומציה מסחריים/open source, המכילים מעטפת שלמה של כל מה שתצטרכו לפרויקט שלכם. אחת היכולות שלהם היא גם דוח האוטומציה. נותר לכם רק להריץ את הבדיקות ולהנות מהדוח המפורט שמתקבל לאחר מכן. דוגמא לכלי מצוין שמספק את היכולת הזאת הוא TestProject.
כפי שניתן לראות בתמונה הבאה, מוצגת סטטיסטיקה של הבדיקות שרצו עם תרשים צבעוני וברור, פירוט הצעדים בכל בדיקה, אפשרות להוריד את הריפורט כקובץ PDF ועוד.
חסרונות: דוח עם מבנה קבוע ללא יכולת שינוי; נוצר רק בהרצה דרך הכלי.
דוח הנוצר כחלק מכלי ניהול הבדיקות
כאשר האוטומציה רצה דרך כלי ניהול הבדיקות של הארגון, שווה לבדוק האם הכלי יכול לייצר דוח בסיום הריצה מבלי שתצטרכו לממש אותו בעצמכם. כל שתצטרכו הוא להגדיר את ה-job/pipeline שלכם, והאינטגרציה האוטומטית שקיימת בחלק מהכלים, כבר תעשה בשבילכם את העבודה. לדוגמא - פרויקט אוטומציה שנכתב בשפת #C, בשילוב פריימוורק הבדיקות MSTest שרץ על גבי Azure DevOps מבית Microsoft.
ניתן לראות פירוט של הבדיקות שרצו, הסטטוס שלהם, משך זמן הריצה (כולל השוואה לריצה קודמת) ופילטורים שונים. ישנן עוד יכולות שלא ניתן לראות בתמונה המצורפת, כגון מיון בדיקות לפי שם הבדיקה, המפתח האחראי על הבדיקה, צפיה בצילומי מסך של כשלונות ועוד.
חסרונות: הדוח נוצר רק בהרצה דרך כלי הניהול; דורש יצירה של job/pipeline יעודי; פחות מתאים למי שצריך פתרון on-premise.
יצירת דוח באמצעות ספריות צד שלישי
במידה ולא קיימת בידכם אחת מהאפשרויות הקודמות ואתם צריכים ליצור דוח בעצמכם, תוכלו ליצור דוח בסיסי בקלות יחסית באמצעות ספריות צד שלישי. כך תוכלו לתת את ה-boost הראשוני על מנת לשפר את חקירות הריצה עוד בתחילת פיתוח התשתית שלכם. כמובן חשוב לבדוק תחילה ששפת התכנות שבה אתם כותבים נתמכת בספרייה שעימה תרצו לעבוד.
נראה דוגמא מפרויקט שנכתב ב-Python ושימוש בפריימוורק הבדיקות Pytest. ב-2 צעדים פשוטים בלבד תוכלו ליצור את הדוח מבלי לכתוב אפילו שורת קוד אחת:
1. התקינו את החבילה pytest-html משורת הפקודה:
pip install pytest-html
pytest --html=your_path\XXXXX.html
בסיום הריצה תוכלו לפתוח את הדוח ולראות את פירוט הבדיקות והסטטוס שלהם בדומה למה שראינו בדוחות הקודמים:
ניתן לצפות בפרטי הבדיקה שנכשלה ע"י לחיצה עליה, ולגלות פרטים על הנפילה כגון השגיאה ושורת הקוד בה התרחשה השגיאה. במקרה זה, ביצענו בדיקת השוואה בין כותרת האתר המצופה לכותרת בפועל באמצעות פקודת assert. הכותרות לא היו זהות, והדוח מציג את ההשוואה ביניהן בצורה ברורה.
היכולת הזאת לא שמורה רק לפייטון, גם עם שפות תכנות אחרות ותשתיות בדיקה שונות ניתן ליצור ריפורט בקלות דומה, כגון JUnit Report בעבודה עם Java & JUnit.
חסרונות: מוגבל לשפת התכנות ופריימוורק הבדיקות שאיתן אתם עובדים; מוגבל מבחינה פונקציונלית; נראה פרימיטיבי יחסית; נשמר לוקאלית בלבד.
על אף הקלות הזאת, לטווח הארוך שווה להשקיע קצת יותר, ולקבל דוח עשיר, ורסטילי ומפורט יותר. בואו נראה במה מדובר.
הדוגמאות האחרונות שאציג במאמר זה הן דוחות מתקדמים כגון Allure ו-Extent Reports. תוכלו להתקין את הספריות הללו ולהשתמש ב-API שלהם כרצונכם - לבחור איזה פיצ'רים תרצו שיוצגו בדוח, מה שרלוונטי לפרויקט שלכם בהתאם לצרכים והדרישות.
לדוגמא - תוכלו להדפיס את צעדי הבדיקה, לצרף צילום מסך או אפילו וידאו.
כך נראה הדוח של Extent Reports:
בנוסף תוכלו לצרף את הלוגים מכל בדיקה, להציג את הפונקציות שנקראו בזמן האתחול והסגירה של הבדיקה, לפלטר לפי קטגוריית בדיקות, לראות גרפים מתקדמים של סטטיסטיקות ומגמות ועוד.
דוגמא מהדוח של Allure:
אמנם הדוחות האלו יתנו לכם יותר יכולות ומידע, אבל זה לא אומר שתצטרכו לעבוד קשה כדי ליצור אותם! על מנת לפשט, נראה שוב דוגמא של שילוב Pytest ו-Python, והפעם עם הדוח של Allure היעיל:
1. התקינו את החבילה allure-pytest משורת הפקודה:
pip install allure-pytest
pytest --alluredir=results_folder
allure serve results_folder
בסיום התהליך הדוח ייווצר ויפתח בדפדפן.
כמו כן, תוכלו לצרף את הדוח ל-job או pipeline האוטומציה בכלי ה-CI שלכם. למשל כאשר עובדים עם Jenkins, התקנה של הפלאגין המתאים וקינפוג פשוט, יצרו את הריפורט ויוסיפו אותו ל-dashboard.
חסרונות: מוגבלים לשפות התכנות הנתמכות בלבד; יכולת התאמת הדוחות תלויה בפונקציונליות שה-API שלהם מספק; דורשים אינטגרציה עם כלי CI על מנת למקסם את היכולות שלהם.
אם כל מה שהוצג עד כה עדיין אינו תואם את הצרכים שלכם, תוכלו לממש זאת בעצמכם. שילוב כלים כמו Grafana ו-Kibana יקחו אתכם לקצה ותוכלו לקבל גרפים וסטטיסטיקות ברמה גבוהה ביותר. בנוסף ישנה יכולת לראות את תוצאות הריצה בזמן אמת ולא רק בסוף הריצה. ניתן לראות דוגמא במאמר הזה
חסרונות: דורש זמן פיתוח ארוך יחסית; מצריך תחזוקה שוטפת.
גם דוחות AI התחילו לצבור תאוצה. כבר קיימים דוחות עם בינה מלאכותית שיכולים לספק מידע כגון הסיבות העיקריות לכישלון הבדיקות ועצות מה כדאי לעשות על מנת לפתור את הבעיות הללו. דוגמא מצוינת וחינמית היא Report Portal.
חסרונות: הקמה מורכבת יחסית; דורש עבודה עם Docker )ישנם כלים מסחריים הנותנים יכולת דומה וחוסכים את המאמץ הכרוך הנ"ל(.
לסיכום
במהלך המאמר הצגתי את החשיבות של דוחות האוטומציה כחלק אינטגרלי מפרויקט אוטומציה ועד כמה הם יכולים לסייע במהלך חקירת הריצות ולחסוך זמן ומאמץ. בנוסף, הראיתי את הצורך בהתאמת הדוח לצרכים של הפרויקט והארגון. ראינו מגוון של דוחות בהתאם לטכנולוגיות שונות, וכן יתרונות וחסרונות הקיימים בכל אחד מהם. אין ספק שעולם הדוחות מסקרן וממשיך להתפתח במטרה לעזור לנו לעבוד בצורה היעילה ביותר. מקווה שהמאמר יסייע לכם הקוראים בהבנת עולם דוחות האוטומציה באופן טוב יותר ויעזור בשילוב הדוחות הנכונים לפרויקטים שלכם.