PracticU

Data Driven Test - חלק 2

בלי כתוביותעם כתוביות
PracticU › קורס סלניום מתקדם - CI/CD - Continues Integration › Data Driven Test - חלק 2
מילון מושגים:
מערך - מבנה נתונים שמאחסן אוסף ערכים מאותו סוג ברצף, שאפשר לגשת אליהם לפי מספר מיקום (אינדקס).
מתודה - פונקציה המוגדרת בתוך מחלקה ומתארת פעולה שאובייקטים מאותה מחלקה יכולים לבצע.
אובייקט - יחידה בתכנות מונחה עצמים שמאגדת נתונים (תכונות) ופעולות (מתודות). נוצר בדרך כלל ממחלקה המשמשת כתבנית.
סיסמה - מחרוזת תווים סודית שמשמשת לאימות זהות המשתמש בעת כניסה למערכת. ככל שהיא ארוכה ומורכבת יותר, כך קשה יותר לנחש אותה.
פרמטר - ערך שמועבר לפונקציה או לפקודה כקלט, ומשפיע על אופן פעולתן ועל התוצאה שהן מחזירות.

Data Driven Test - חלק 2
בשיעור רואים איך מחברים Data Provider של TestNG לטסט, כך שהטסט ירוץ על כל שורה במערך.
שלבי הבנייה
1. הכרזת Data Provider: מעל מתודה ציבורית מוסיפים את האנוטציה @DataProvider עם name = "details". המתודה מחזירה מערך מסוג Object[][].
2. בניית המערך: בתוך המתודה יוצרים new Object[][], ורושמים כל שורה בסוגריים מסולסלים, מופרדות בפסיק. בשיעור יש שלוש שורות של שם, אימייל וסיסמה.
3. חיבור הטסט: מעל הטסט מוסיפים dataProvider = "details", ובהכרזת הטסט מגדירים פרמטרים בשם name, email ו-password.
4. הרצה: כל שורה רצה כאיטרציה נפרדת, עם before method ו-after method בין כל אחת לשנייה.
טעויות נפוצות
את הערכים הטסט מקבל לפי הפרמטרים שהוגדרו בהכרזה שלו, ולכן הערכים צריכים להתאים לכל פרמטר.
כך אותו טסט רישום רץ שלוש פעמים על שלוש שורות נתונים, בלי שינוי בקוד הטסט.
השיעור הבא בקורס: Data Driven Test - חלק 3

פרקי ההרצאה: Data Driven Test - חלק 2

  1. 00:00

    מבוא: חיבור נתונים חיצוניים לטסט

  2. 01:16

    מבנה שורות נתונים במערך

  3. 02:35

    הדגמה: טופס הרישום עם נתונים

  4. 04:40

    שחרור הטסט מנתונים קבועים בקוד

  5. 05:41

    יצירת Data Provider לטסט

  6. 06:46

    הגדרת מתודת Data Provider בשם details

תמלול ההרצאה: Data Driven Test - חלק 2

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

  1. 00:02

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

  2. 00:22

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

  3. 00:47

    דיברנו על מה זה Data Object, Data Object זה בעצם, ההגדרה שלו הוא מערך דו-מימדי. כשאני אומר מערך דו-מימדי, נתנו את הדוגמה של מערך אחד, שיש לנו name אחד, last name אחד, אימייל אחד זה מערך שטוח, מערך דו-מימדי זה מערך שיכול להכיל בעצם כמה שורות של נתונים, name אחד, last name אחד,

  4. 01:18

    אימייל אחד, אבל גם את ה-name 2, last name 2, אימייל 3, name 3, last name 3 וכדומה. זאת אומרת, מין שורת נתונים, טבלת נתונים שמסודרת לפי שורות.

  5. 01:38

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

  6. 02:04

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

  7. 02:32

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

  8. 03:01

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

  9. 03:28

    אנחנו עובדים עם האתר של time and date ובעצם שם אנחנו נכנסים לאיזשהו פורום, איזשהו טופס שבו אנחנו ממלאים פרטים וזו דוגמה טובה לפעולה של הזנת נתונים חיצוניים.

  10. 03:47

    אז ראיתם זה היה קצת מהיר אבל ראיתם שבעצם הנתונים אוזנו בו בואו נריץ את זה עוד פעם הפעם עם breakpoint ונראה שזה באמת מגיע לפה נעשה פה את הברייקפוינט שלנו ונריץ את זה בדיבאג מאוד על ידי הכפתור דיבאג נסוגר את החלונות האחרים שיהיה יותר ברור ויש לנו time and date ואנחנו נכניסים ל-registration ופה יש לנו טופס אנחנו ממלאים את הפרטים

  11. 04:31

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

  12. 04:57

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

  13. 05:26

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

  14. 06:07

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

  15. 06:31

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

  16. 07:22

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

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

ההרצאה הקודמת: Data Driven Test - חלק 1

ההרצאה הבאה: Data Driven Test - חלק 3

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

  • Data Contracts
  • כתיבת Test Case
  • תוכנית בדיקה - Test Plan
  • Variables and Data Types

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

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