PracticU

Page Object Design - חלק 3

בלי כתוביותעם כתוביות
PracticU › קורס סלניום מתקדם - CI/CD - Continues Integration › Page Object Design - חלק 3
מילון מושגים:
אובייקט - יחידה בתכנות מונחה עצמים שמאגדת נתונים (תכונות) ופעולות (מתודות). נוצר בדרך כלל ממחלקה המשמשת כתבנית.
מחלקה - תבנית בתכנות מונחה עצמים שמגדירה אילו נתונים ופעולות יהיו לאובייקטים שנוצרים ממנה.
מתודה - פונקציה המוגדרת בתוך מחלקה ומתארת פעולה שאובייקטים מאותה מחלקה יכולים לבצע.
מחרוזת - סוג נתונים שמייצג רצף של תווים, כלומר טקסט, ומשמש לאחסון מילים, משפטים או כל רצף סימנים.
משתנה - שם שמפנה למקום בזיכרון שבו נשמר ערך שיכול להשתנות במהלך ריצת התוכנית, כמו מספר, טקסט או אובייקט.
בוליאני - סוג נתונים שיכול לקבל אחד משני ערכים בלבד: אמת (true) או שקר (false).
דיבאג - תהליך של איתור, הבנה ותיקון תקלות בקוד, לעיתים בעזרת כלי שמאפשר לעצור ולעקוב אחר ריצת התוכנית.

Page Object Design - חלק 3
בשיעור הזה נסגר מסלול הרישום בשיטת Page Object Design, ולדף הבית מוסיפים בדיקה שהגענו לדף הנכון.
שלבי הבנייה
1. הכנת הטסט: ב-before class מאתחלים את הדרייבר, וב-before method יוצרים את אובייקט דף הבית ופותחים את כתובת האתר.
2. ניווט לרישום: הטסט קורא ל-navigate עם המחרוזת של הרישום.
3. וידוא היעד: בתוך המתודה נבדקת כותרת הדף. אם היא נכונה, המתודה מחזירה true. המשתנה bResult מתחיל כ-false ומשתנה רק בהצלחה.
4. שימוש בתוצאה: בטסט משתמשים ב-assert על הערך הבוליאני, עם הודעת שגיאה, כך שאם לא הגענו לדף מתקבלת הודעה ברורה.
הערות
הטסט הזה עדיין בודק רק את הרישום. ההרצה בדיבאג הראתה שהפנייה הצליחה, והטסט עבר בלי כישלונות.
כל מעבר בין דפים מוודא עכשיו שהגענו ליעד, והטסט כולל בדיקה אמיתית.
השיעור הבא בקורס: Page Object Design - חלק 4

פרקי ההרצאה: Page Object Design - חלק 3

  1. 00:00

    מבוא לתכנון הטסט לפי תהליך עסקי

  2. 01:07

    תכנון התהליך העסקי לדפים

  3. 02:02

    ניווט מדף הבית לדף הרישום

  4. 03:55

    העברת אתחול הדף ל-Before Method

  5. 06:15

    בדיקה שהגענו לדף הנכון עם בוליאני

  6. 07:18

    איתור כותרת הדף לווידוא

תמלול ההרצאה: Page Object Design - חלק 3

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

  1. 00:02

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

  2. 00:25

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

  3. 00:44

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

  4. 01:07

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

  5. 01:29

    אני עובר ל-ID שלי, יצרתי לעצמי קלאס מסוג טסט, זה קלאס טסט-אנג'י טיפוסי, יש את החלק של ה-Before Class שבו אני מאתחל את המשתנה המערכת שלי ומחליט איזה בראוזר אני אעבוד איתו, ואז אנחנו מתחילים בעצם לעבוד עם הדרייבר שיש לנו בתוך הקלאס,

  6. 01:59

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

  7. 02:20

    אז הכנו בדף ה-home page שלנו הכנו בעצם איזשהו אפשר איזשהו מתודה שנקראת navigate זה הטסט שלי ופה עשינו אתחול לאובייקט הום פייג' ובהום פייג' עצמו הפעלנו את המתודה נוויגציה שמקבלת סטרינג ודרך הסטרינג בעצם מממשת את הצורת ההגעה הזאת. זאת אומרת בעזרת האקשנס הצלחנו לבצע את הפעולה שאנחנו מבצעים ידנית, שוב אני חוזר לפעולה, עמידה

  8. 02:57

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

  9. 03:21

    אז בואו נראה, נריץ את זה פעם אחת ונראה למה אני מתכוון כשאנחנו מריצים את זה. יש לנו את ה-Test Page ויש לנו פה טסט אחד שהוא ב-Enable True, הוא עושה אתחול לדף ה-Home Page, קראתי לה instantHP והתחלנו להריץ אותו באמצעות המתודה navigate שנמצאת בתוכו.

  10. 03:48

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

  11. 04:01

    זאת אומרת שזה יהיה ב-before method או ב-before class. זאת אומרת אנחנו יכולים כאן, בואו נשים אותו ב-before-method, נשים אותו כאן בחלק הזה של ה-TestNG ואז אנחנו משתמשים בו.

  12. 04:22

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

  13. 04:58

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

  14. 05:35

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

  15. 06:03

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

  16. 06:23

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

  17. 07:06

    inspect לדף הזה בואו נמפה את ונעשה איזשהו וידוי קטן שבאמת זה נמצא מבחינת החלון של הבדיקה. אז אנחנו מוודאים על ידי ה-DriverFindElement וה-Expat של הכותרת שאכן הגענו לדף של הרג'יסטרציה ואז אנחנו מחזירים True ובסוף המתודה אנחנו מחזירים את ה-B-Result

  18. 07:27

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

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

ההרצאה הקודמת: Page Object Design - חלק 2

ההרצאה הבאה: Page Object Design - חלק 4

הרצאות קשורות מקורסים אחרים

  • סיכום פרויקט אוטומציה במובייל - Maven, Page Object
  • Master Page
  • Object Serialization
  • המחלקה Object

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

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