PracticU

JMeter Assertions

בלי כתוביותעם כתוביות
PracticU › קורס JMeter - בדיקות ביצועים ועומסים › JMeter Assertions
מילון מושגים:
JMeter - כלי בקוד פתוח לבדיקות עומסים וביצועים של שרתים ויישומי אינטרנט.
בקשה - פנייה שלקוח שולח לשרת כדי לקבל מידע או לבצע פעולה. השרת מחזיר עליה תגובה.
תהליכון - יחידת ביצוע בתוך תהליך, המאפשרת להריץ כמה מהלכים במקביל ולחלוק את אותו זיכרון.
שם משתמש - מזהה ייחודי שמשתמש מזין כדי להזדהות במערכת, לרוב יחד עם סיסמה.
תגובה - המידע שהשרת מחזיר ללקוח בתשובה לבקשה, הכולל בדרך כלל נתונים וקוד סטטוס.
עוגייה - קובץ קטן שאתר שומר בדפדפן כדי לזכור מידע על המשתמש בין בקשות, למשל מצב התחברות או העדפות.
URL - הכתובת שמזהה משאב באינטרנט, למשל דף אתר, וכוללת פרוטוקול, שם מארח ונתיב.
HTML - שפת הסימון שבה בונים את מבנה ותוכן דפי האינטרנט, באמצעות תגיות שמגדירות כותרות, פסקאות, קישורים ועוד.

JMeter Assertions
בהרצאה הזאת לומדים לבדוק שכל בקשה אכן הצליחה גם מבחינת קוד התשובה וגם מבחינת התוכן. אסרשן הוא הערובה שההעמסה שמבצעים אכן מגיעה לדף הנכון.
השלבים העיקריים
1. פרמטרים במקום ערכים קבועים: מוסיפים User Defined Variables ל-Thread Group עם שם משתמש וסיסמה, ובבקשת ההתחברות מחליפים את הערכים הקבועים בביטוי ${user} ו-${password}.
2. בדיקה שהאסרשן מזהה כישלון: מחליפים את שם המשתמש לערך שגוי, והטסט נכשל למרות שקוד התשובה הוא 200. לכן קוד התשובה לבדו אינו מספיק.
3. Response Assertion לפי טקסט: בודקים שהתשובה מכילה טקסט מסוים. אם הטקסט לא קיים, המשתמש לא הגיע לדף הנכון.
4. Response Assertion לפי קוד או הודעה: קוד 200 מציין בקשה שהצליחה, ואילו קודי 400 ו-500 מציינים כשל בצד המשתמש או בצד השרת. אפשר לבדוק גם את הודעת התשובה.
5. Response Headers: בודקים ערך שמופיע בכותרות התשובה, למשל קוקיז.
6. URL Sampled: בודקים את כתובת הדף שאליה הגיעה הבקשה, כדי לוודא שההפניה נעשתה.
7. Request Data וגודל תשובה: אפשר לבדוק את גוף הבקשה, ואת גודל התשובה, למשל שהוא גדול מערך מסוים.
8. XPath Assertion: בודקים שתוכן ה-HTML תקין ושהאלמנטים הנדרשים קיימים. ההרצאה מציינת את האפשרות UseTidyTolerantParser, שמאפשרת עבודה חופשית יותר עם תוכן HTML.
שימו לב
כל אסרשן צריך לבדוק משהו ייחודי בתשובה, ולא כללי מדי. אם בודקים רק את קוד התשובה, אפשר לקבל תשובה תקינה מהשרת עם תוכן שגוי.
השיעור הבא בקורס: JMeter Timers

פרקי ההרצאה: JMeter Assertions

  1. 00:00

    מבוא: וידוא תוצאות בבקשות מוקלטות

  2. 00:43

    הגדרת משתני user ו-password

  3. 01:19

    החלפת ערכים קשיחים במשתנים בבקשת הלוגין

  4. 01:57

    כשל מכוון והבנת כישלון האסרשן

  5. 03:01

    בדיקת התוכן בתגובה ו-Response Data

  6. 03:36

    תיקון הסקריפט והרצה חוזרת

  7. 04:14

    אסרשן קוד תגובה 200 לעומת אסרשן טקסט

תמלול ההרצאה: JMeter Assertions

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

  1. 00:04

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

  2. 00:21

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

  3. 00:33

    ב-sign-on שלחנו את היוזרנם ואת הפספורט. לא נעשה איזשהו תהליך פשוט של קונפיגורציה. נשנה את הערך של ה-user name לשם פרמטריאלי, זאת אומרת איזשהו פרמטר שנכין מראש על מנת לבצע את הלוגין.

  4. 00:49

    אז אנחנו יכולים לעשות add על ה-thread group שלנו ויש לנו קונפיג אלמנט, נבחר את user defined variable וכאן נעלה אותו לראש ה-thread לפני תחילת ה-thread וניצור פה user, פרמטר בשם user, נשתמש באותיות קטנות ניתן את הערך הדיפולטי או את הערך מרקורי.

  5. 01:09

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

  6. 01:39

    ולראות שבאמת הצלחנו בפעולות. אני מנקה ומפעיל ואני אראה את התוצאות של הריצה בצורה כזאת של שימוש בפרמטרים ולא רק ב-hardcoded mercury. למה עשיתי את זה? בשביל הבדיקה שעכשיו נעשה. בעצם יש לנו ה-sertion שמוודא שבאמת הצלחנו בפעולת לוגין.

  7. 02:02

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

  8. 02:23

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

  9. 03:01

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

  10. 03:17

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

  11. 03:33

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

  12. 04:00

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

  13. 04:25

    אנחנו יכולים לעשות duplicate ופה במקום רספונס של טקסט אנחנו יכולים לעשות רספונס קוד ולהגיד לו שזה יהיה 200. 200 מייצג request שעבר בהצלחה 300 request שעבר 400 500 אלה קודים שקשורים לכישלון או מצד האנד יוזר או מצד השרת אז אנחנו יכולים להריץ את זה בואו נוסיף לפני שאנחנו מריצים נוסיף

  14. 04:55

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

  15. 05:20

    אני יכול לבדוק,

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

ההרצאה הקודמת: הגדרת JMeter כ-Proxy - חלק 4

ההרצאה הבאה: JMeter Timers

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

  • TestNG Assertions

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

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