PracticU

ReportNG - חלק 4

בלי כתוביותעם כתוביות
PracticU › קורס סלניום מתקדם - CI/CD - Continues Integration › ReportNG - חלק 4
מילון מושגים:
דוח - מסמך או תצוגה שמסכמים נתונים בצורה מאורגנת לצורך הבנה וקבלת החלטות.
מתודה - פונקציה המוגדרת בתוך מחלקה ומתארת פעולה שאובייקטים מאותה מחלקה יכולים לבצע.
נתיב - מחרוזת שמתארת את מיקומו של קובץ או תיקייה במערכת הקבצים, או כתובת של משאב בתוך אתר.
תמונה - קובץ גרפי המוצג על המסך. בהקשר של וירטואליזציה או Docker, תבנית מוכנה שממנה יוצרים מכונה או קונטיינר.
תיקייה - מכל במערכת הקבצים שמשמש לארגון קבצים ותיקיות אחרות בתוך מבנה היררכי.
לוג - רישום מתועד של אירועים ופעולות שמתרחשים במערכת או בתוכנה, המשמש למעקב ולאיתור תקלות.
תגית - סימון בקוד, למשל ב-HTML, שתוחם רכיב ומגדיר את תפקידו או תכונותיו. גם תווית לסימון וקיטלוג פריטים.
HTML - שפת הסימון שבה בונים את מבנה ותוכן דפי האינטרנט, באמצעות תגיות שמגדירות כותרות, פסקאות, קישורים ועוד.

ReportNG - חלק 4
בשיעור מוסיפים צילום מסך לדוח ReportNG, כדי להראות מה קרה בזמן כישלון. הפתרון כולל שתי מתודות: אחת שמצלמת את המסך ושומרת קובץ, ואחת שמשלבת את הקובץ בדוח.
השלבים העיקריים
1. מתודת צילום: נכתבת מתודה סטטית שמקבלת את ה-WebDriver ומחזירה קובץ. היא מבצעת את הצילום בעזרת TakesScreenshot ושומרת אותו כקובץ זמני.
2. שם ייחודי: השם של הקובץ נבנה מחותמת זמן, כלומר מתאריך ושעה מדויקים, כדי שצילומים לא ידרסו זה את זה.
3. נתיב לתמונה: נקבעת תיקייה, למשל C:\images, והקובץ נשמר בה עם הסיומת png.
4. העתקה: נוצר קובץ ריק ביעד, ואז הצילום מועתק אליו בעזרת FileUtils מחבילת Apache Commons IO.
5. מתודה לשילוב בדוח: מתודה נוספת מקבלת את הקובץ ומוסיפה ל-Reporter.log תגית img של HTML, עם רוחב וכתובת הקובץ.
6. הפעלה: בתוך טסט מפעילים את המתודה, וגם מדפיסים את הנתיב המלא של התמונה כדי לאמת שנוצרה.
שימו לב
אפשר לצלם במהלך הטסט בכל נקודה, או רק בזמן כישלון. התמונה מופיעה בתיקיית test-output, בדוח ה-HTML.
השיעור הבא בקורס: ReportNG - חלק 5

פרקי ההרצאה: ReportNG - חלק 4

  1. 00:00

    סיכום: דרישת צילום מסך בכישלון

  2. 01:51

    שתי מתודות: צילום מסך ושילוב בדוח

  3. 02:29

    פתיחת הדרייבר לפני הבדיקה

  4. 03:52

    מתודה סטטית לצילום המסך

  5. 05:14

    יצירת קובץ לתמונה בדיסק

  6. 06:03

    ביצוע הצילום מתוך אובייקט הדרייבר

  7. 07:11

    יצירת שם ייחודי לפי Timestamp

  8. 07:52

    עיצוב התאריך והשעה לשם הקובץ

תמלול ההרצאה: ReportNG - חלק 4

הטקסט המלא של הדקות הראשונות בהרצאה «ReportNG - חלק 4» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

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

  2. 00:31

    התחלנו לדבר על הטיפים ועל הנקודות שאנחנו יכולים להוסיף ל-Report או להשתמש ב-Report, מנת לשפר אותו אמרנו שאנחנו יכולים להוסיף עיצוב html אמרנו שאנחנו יכולים לקבוע בצורה ישירה את תוצאת ה-report האם זה פאסופי ואמרנו שאנחנו צריכים בעצם לעשות כמה פעולות על מנת לעצב את הדוח שלנו דרישה נוספת שיש מצוות האוטומציה ומהדוח של הצוות אוטומציה זה לספק תמונת מסך של

  3. 01:10

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

  4. 01:51

    הוספת צילום מסך לדוח ה-HTML שלנו ל-ReportNG או לדוח HTML אחר כרוכה ביצירת שתי מתודות. מתודה אחת היא צילום המסך עצמו בזמן מסוים. מתודה שנייה היא השילוב של התמונה שצילמנו במתודה הראשונה לתוך הדוח HTML. איך אנחנו נעשה את זה?

  5. 02:20

    בואו נפנה לחלק של המימוש ונראה איך אנחנו בעצם יוצרים את שתי המתודות האלה ומשלבים אותן בדוח שלנו בתוך ריצה אז אני עובר ל-id זה ה-id שלי האקליפס ויש לי פה מתודה שהיא מתודת testng מסוג test יצרתי איזשהו טקסט בתוך המתודה שאני מוציא למסך ל-log אבל היא לא בעצם עושה הרבה ב-before method של המתודה הזאת יש פתיחת מסך פתיחת דרייבר של WebDriver אם אני מסתכל פה על ה-Before

  6. 03:12

    Class אז יש לי פה את ה-Driver ChromeDriver יצירת ChromeDriver וב-Before Method יש לי את ה-DriverGate זאת אומרת שהמתודה לא תעשה הרבה יותר מה-Before Class וה-Before Method אבל היא תדפיס את ה-Driver עצמו כשאנחנו נמצאו את המתודות הנכונות.

  7. 03:40

    אז בשלב הזה הייתי רוצה לייצר את ה-StateScreen, המתודה הראשונה מתוך שתיים. לאחר מכן אני ארצה להוסיף אותה לתוך הדוח, אבל בשלב הראשון אני ארצה לצלם את המסך של הבראוזר שלי בכל נקודת זמן שאני ארצה.

  8. 04:04

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

  9. 04:19

    או באיזשהו אובייקט או יצירה של אינסטנט דינמי אלא היא סטטית ואני יכול להפעיל אותה בכל רגע בכל שלב ללא צורך ביצירת אינסטנט היא מחזירה פייל היא מחזירה בעצם קובץ ואני קורא לה print screen ומה שהיא צריכה לקבל זה את ה-web driver הדרייבר למה אנחנו צריכים לשלוח לה את הדרייבר כי היא צריכה להשתמש בדרייבר על

  10. 04:54

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

  11. 05:14

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

  12. 05:30

    שימו לב שהפייל שייך ל-Java.io פייל. ופה אני מבצע את הפעולה של צילום המסך. לצורך זה אני משתמש בפעולה שנקראת take screenshot, ואני משתמש בדרייבר.

  13. 06:03

    אני עושה איזשהו סוג של קאסטינג, איזשהו סוג של חיוב הדרייבר להפוך לצילום מסך ולפלוט את צילום המסך לתוך הפייל. זו הדרך שאני כותב את ה-takes screenshot, הרווח זה בתוך סוגריים, פרייבר כשאני עושה נקודה זה יש לי את היכולת בעצם לעשות get screenshot as ופה אני צריך לבחור סוג של ה-output זה הדרך שאני ארצה ליצור את הסנפשוט שלי אחרי שיצרתי את הסנפשוט בעצם

  14. 07:11

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

  15. 07:49

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

  16. 08:48

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

  17. 08:54

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

  18. 10:03

    אוקיי, אז בעצם צילמנו את הצילום מסך של הדרייבר

לקורס המלא: קורס סלניום מתקדם אונליין

ההרצאה הקודמת: ReportNG - חלק 3

ההרצאה הבאה: ReportNG - חלק 5

קורסים נוספים במסלול

  • קורס מבוא ל-QA - מידע חשוב לבודק תוכנה
  • קורס פוסטמן - Postman - בדיקות לאתרי אינטרנט - API
  • קורס Robot Framework - בדיקות QA ממשק גרפי
  • קורס יסודות התכנות - שפת JAVA - קורס ג'אווה למתחילים
  • קורס סלניום בסיסי - בדיקות אוטומטיות - Selenium
  • קורס מייבן - Maven