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

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

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

בשני המקרים נרצה לקחת את התמונה במקרה של כשלון כאמור, לכן את קוד הבדיקה נכניס (אם עד עכשיו לא עבדנו כך) לתוך try ואת פקודות צילום המסך נכניס לתוך ה-catch.

 

 צילום מסך על הדפדפן:

שיטה זו פופולרית מאוד בשל הפשטות שלה, בסה"כ מדובר בהורדה ושיוך של ספרייה לפרוייקט והוספת 2 שורות קוד.

נוריד תחילה לפרוייקט שלנו את קובץ ה-jar שנקרא: org.apache.commons.io.jar  , נצטרך אותו בשביל הספריה: FileUtils בה נעזר לשמור את קובץ התמונה על המחשב שלנו. ההורדה מכאן.

* בסביבת – NET. אין אפילו צורך לבצע פעולה זו, הספרייה שמטפלת בקבצים כבר מוטמעת , מה שנעשה זה רק לקשר אותה לפרוייקט שלנו –

using System.IO;

את התוספת בקוד נבצע כך:

File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);  
  
FileUtils.copyFile(scrFile, new File("C:\\Failure.png") 

* בדוגמא זו שבשיעור אני משתמש בקוד פרימיטיבי בו אני מכניס את שם התמונה כשם קבוע והוא Hard Coded , ב"עולם האמיתי" ארצה להשתמש בשם ייחודי על מנת שלא נדרוס את אותו קובץ התמונה בכל הרצה או בכל  לקיחת screen shot . שם ייחודי יכול למשל לכלול time-stamp : שנה-חודש-יום-שעה-דקה-שניה-עשירית שניה-מאית שניה. או לחילופין הקובץ יישב תחת ספרייה בעלת שם ייחודי.

 

* רוצים לראות את המשך הפוסט ? צרו עימי קשר ונקבע פגישה לקורס פרונטלי

 


arrowBackarrowMainarrowFor

השאר הערה\הודעה