PracticU

שימוש בנתונים מ-CSV

בלי כתוביותעם כתוביות
PracticU › קורס JMeter - בדיקות ביצועים ועומסים › שימוש בנתונים מ-CSV
מילון מושגים:
CSV - קובץ טקסט פשוט לאחסון נתונים טבלאיים, שבו הערכים בכל שורה מופרדים בפסיקים.
JMeter - כלי בקוד פתוח לבדיקות עומסים וביצועים של שרתים ויישומי אינטרנט.
תהליכון - יחידת ביצוע בתוך תהליך, המאפשרת להריץ כמה מהלכים במקביל ולחלוק את אותו זיכרון.
UTF-8 - שיטת קידוד נפוצה של Unicode, שמייצגת כל תו במספר משתנה של בתים ותואמת ל-ASCII.
דיבאג - תהליך של איתור, הבנה ותיקון תקלות בקוד, לעיתים בעזרת כלי שמאפשר לעצור ולעקוב אחר ריצת התוכנית.
דוח - מסמך או תצוגה שמסכמים נתונים בצורה מאורגנת לצורך הבנה וקבלת החלטות.
פרוקסי - שרת מתווך שמעביר בקשות בין לקוח ליעד, ויכול לשמש להסתרה, לסינון, למטמון או לבקרת גישה.

שימוש בנתונים מ-CSV
השיעור מראה איך מזינים ל-JMeter ערים מקובץ CSV, כדי להריץ את אותו טסט על ערים רבות בלי לשנות אותו.
הכנת הקובץ
1. מבנה: העמודה הראשונה היא מספר שורה, השנייה שם העיר (city), והשלישית שם העיר לשימוש בטקסט (city_text). לניו יורק יש שתי צורות: עם + בשאילתה, ועם רווח בטקסט.
2. הוספת ערים: מוסיפים שורה לכל עיר. בשיעור הוזנו ארבע ערים, ואפשר להוסיף כמה שרוצים.
הגדרות JMeter
3. CSV Data Config: מוסיפים את הרכיב ל-Thread Group, ובוחרים את הקובץ ואת הקידוד UTF-8. בשדה Variable Names מזינים את שמות המשתנים בדיוק כמו בטסט: number, city, city_text.
4. Debug Sampler: מוסיפים דגימה שמציגה את כל המשתנים בכל איטרציה, כדי לוודא שכל ערך נקלט נכון.
הרצה
5. תוצאה: הרצה של משתמש אחד עבור כל שורה בקובץ. ב-View Results Tree רואים את כל הבקשות, ובתשובה קוד 200 לכל אחת. ב-Debug רואים כל שורה לפי הסדר: לונדון, בוסטון, ניו יורק ותל אביב.
שימו לב
לאחר ארבע הרצות ה-Summary Report מראה 16 בקשות, כולל דגימות ה-Debug.
השיעור הבא מדבר על הגדרת JMeter כ-Proxy.
השיעור הבא בקורס: הגדרת JMeter כ-Proxy - חלק 1

פרקי ההרצאה: שימוש בנתונים מ-CSV

  1. 00:00

    חזרה על תסריט הבדיקה לאתר time and date

  2. 01:57

    משתנה city ושימוש בו בבקשת החיפוש

  3. 02:35

    סוגי Listeners והצגת הנתונים

  4. 03:51

    הרצה מינימלית ובדיקת קוד התגובה 200

  5. 05:19

    Summary Report וזמני תגובה

  6. 05:58

    מבוא ל-Data-Driven מקובץ נתונים חיצוני

תמלול ההרצאה: שימוש בנתונים מ-CSV

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

  1. 00:04

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

  2. 00:21

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

  3. 00:37

    זו הייתה הבדיקה שלנו. כל התפיסה שלנו של ה-JMeeter בנויה בעצם מהעיקרון שכל פעולה ופעולה שאנחנו מבצעים מול אתר מסוים במערכת ה-WebEat בעצם מתרגמת לאיזשהו Request מסוג HTTP. וכשאנחנו לוחצים על כפתורים באתר בעצם אנחנו שולחים לשרת timeanddate.com איזשהו request HTTP מסוג get כרגע זה הסוג request שאנחנו הכרנו

  4. 01:07

    ובעצם אנחנו עושים איזשהו הדמיה כזאת של פעולות על ידי שליחת request אז ה Jmeter בעצם מה שהוא עושה הוא מדמה שליחה של request לשרת אם אני שוב מסתכל על התמונה הזאת זה הלקוח אנחנו הלקוח כאן יהיה את time and date אנחנו לוחצים על כפתור נשלח request והרספונס זה התאנה החדשה של הדף ואנחנו אמרנו שאנחנו רוצים בג'יי מיטר לבצע פעולות וגם לוודא את

  5. 01:37

    זה, לוודא שהפעולות יתרחשו על ידי ריספונס אסיישן בדיקת התוצאה של הפעולה שעשינו. טענו פה את הדף הכללי שזה ה-request default ווידאנו באמת שאנחנו מקבלים איזשהו טקסט שאנחנו מצפים לקבל בדף שאנחנו טענו word clock לדוגמה פה.

  6. 01:57

    בשלב השני הגדרנו גם איזה שהם משתנים user defined variable שקראנו להם city וזה על מנת לשלוח ב-request של החיפוש פרמטר ולא להשתמש ב-city קבוע או באיזשהו סטרינג קבוע איזשהו מחרוזת טקסט קבועה עשינו את זה על ידי הגדרת משתנה city שאנחנו משתמשים בו על ידי דולר סוגריים מסולסלים שם של המשתנה, סגירת הסוגריים המסורסנים, ואז אנחנו יכולים להחליט מלמעלה איזה משתנה

  7. 02:33

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

  8. 02:47

    אנחנו יכולים לראות את הפעילות הזאת בכל מיני פורמטים. כל אחד ואחד מהליסנרים האלה זה פורמט אחר של תצוגה של אותם נתונים שאנחנו מבצעים בעזרת ה-J-Meter אז יש לנו View Result Tree שהוא הכי בסיסי והכי פשוט להפעלה יש לנו את ה-Summery Report וה-Aggregate

  9. 03:06

    Report ו-Backend Listener כל מיני דברים שאנחנו אולי נכיר בהמשך כרגע אנחנו משתמשים ב-View Result Tree וב-Summery Report עוד סוג של Listener שאנחנו יכולים להשתמש זה לדוגמה ה-Session Result יכולים להוסיף כל מיני Listenרים ולהכיר לאט לאט עוד ועוד Listenרים אתם יכולים לעשות את זה גם בעצמכם פשוט לבחור ליסנרים ולראות את הנתונים חשוב

  10. 03:29

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

  11. 04:00

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

  12. 04:26

    נראה את ה-view result נראה שזה די בסדר זאת אומרת זה נראה טוב כל אלה זה ככה נראה request שהוא תקין בוא נראה את ה-sampler result אנחנו נראה פה שיש לנו רספונס קוד 200 שזה אינדיקציה שה-request קיבל מענה מהשרת והוא תקין כאן אנחנו רואים את ה-request עצמו הגולמי וכאן אנחנו רואים בלשונית הזאת הריספונס עצמו, את ה-HTML שקיבלנו כתשובה

  13. 04:56

    מהשר"ט לאותו ריקווסט ששלחנו. אז יש לנו את הריספונס דאטה, אם אנחנו הולכים לפה אנחנו רואים שיש לנו את ה-query היותר מורכב ששלחנו לריקווסט הבסיסי. וב-sertion result אנחנו רואים שכל ה-sertions עברו בצורת תקינה. אם אחד ה-sertions לא יעבור אנחנו נראה את זה בקלות גם ב-listener הזה.

  14. 05:17

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

  15. 05:41

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

  16. 06:05

    איזה מאגר חיצוני של נתונים ולשלוח כמה ערים

לקורס המלא: קורס JMeter אונליין בעברית

ההרצאה הקודמת: הוספת Query ל-Request

ההרצאה הבאה: הגדרת JMeter כ-Proxy - חלק 1

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

  • ייבוא נתונים - מקובץ CSV ל-SQL
  • שימוש ב-useEffect - חלק 1
  • שימוש ב-NuGet
  • שימוש ב-ModelState

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

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