PracticU

JMeter Timers

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

JMeter Timers
בהרצאה הזאת לומדים להוסיף השהיות לתרחיש ב-JMeter, כדי שהוא ידמה התנהגות של משתמש אנושי ולא מכונה ששולחת בקשות בלי הפסקה.
למה צריך טיימרים
1. מניעת עומס מיותר: JMeter שולח בקשות מהר מאוד, ושליחה מסיבית בזמן קצר עלולה להפיל את השרת. לכן מוסיפים הפוגות סבירות בין הבקשות.
2. התנהגות אנושית: משתמש אמיתי מחכה בין פעולה לפעולה, ולכן הטסט צריך לכלול הפסקות דומות.
סוגי הטיימרים
1. Think Time: מוסיפים השהיה לפני בקשה מסוימת, כמו לפני לחיצה על Sign-On.
2. Constant Timer: מחכה זמן קבוע לפני הבקשה שאליה הוא שייך. למשל 30 מילישניות או שנייה שלמה.
3. Gaussian Random Timer: מחכה זמן שמשתנה בין ריצה לריצה, לפי ערך קבוע וסטיית תקן.
4. Uniform Random Timer: מוסיף השהיה אקראית בטווח מסוים, ומזכיר את הגאוסיאן.
5. Constant Throughput Timer: מכוון את כמות התוצאות שהשרת מקבל לאורך זמן, למשל בדקה או בשעה, כדי לא ללחוץ עליו יותר מדי.
6. Synchronizing Timer: מסנכרן את כל המשתמשים הווירטואליים, כך שכולם ממתינים לסיום השלב הקודם לפני שהם ממשיכים לבקשה הבאה.
הרצה ללא השהיות
ההרצאה מציגה ריצה עם אפשרות ללא השהיות, שמבטלת את כל הטיימרים. בדוחות הטיימרים אינם מופיעים כחלק מזמן הפעולה.
שימו לב
הטיימר מופעל לפני הבקשה שאליה הוא שייך. ללא סנכרון, המשתמשים יכולים להתקדם בזמנים שונים, ולכן Synchronizing Timer שימושי כשרוצים שכל השלבים יתבצעו יחד. בהרצה ללא סנכרון רואים שחלק מהבקשות מתבצעות בלי קשר לשלב הקודם.
השיעור הבא בקורס: JMeter Certificate

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

  1. 00:00

    מבוא: מהו טיימר ב-JMeter

  2. 01:42

    למה צריך לרסן את ה-JMeter

  3. 03:44

    Think Time וזמן פעולה אנושי

  4. 05:12

    הוספת השהיה קבועה לפני בקשת הלוגין

  5. 06:11

    טיימר Gaussian עם שונות בין פעולות

  6. 07:10

    הרצה במקביל ותזמון המשתמשים

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

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

  1. 00:04

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

  2. 00:29

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

  3. 00:47

    J-Meeter במובן הזה בודק את צד השרת או את התנהגות השרת מול עומסים של משתמשים. על מנת להגביר ולעבות את הידע שלנו ב-J-Meeter נלמד היום על אלמנט חשוב שנקרא טיימר.

  4. 01:02

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

  5. 01:27

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

  6. 01:45

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

  7. 01:58

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

  8. 02:17

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

  9. 02:27

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

  10. 03:04

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

  11. 03:24

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

  12. 03:44

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

  13. 03:59

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

  14. 04:19

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

  15. 04:37

    זאת אומרת, אנחנו רואים את הדף שלנו, בואו שנייה נלך לדף שלנו, יש לנו את ה-new tools, אז אני לוחץ sign-on, מחכה כמה שניות, מכניס את השם ואת הפספורט, אתם רואים, זה לוקח לי כמה שניות עד שאני מבצע את הפעולות האלה, זה לא קורה מיידי, ולכן אני רוצה שגם ה-jaymeet יתנהג פחות או יותר בצורה הזאתי.

  16. 05:01

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

  17. 05:08

    איזשהו אשייה, אז אני עושה פה enable ופה שתלתי think time וכאן אני ארצה בין ה-requests אסיין-און לסאב-מיט אני ארצה לשתול עוד טיימר אז יש לי פה אסיין-און אני אעשה add פה אני אעשה טיימר אז איזה טיימר אני אוכל להוסיף קודם כל חשוב לזכור שהטיימר מתבצע לפני ה-request זאת אומרת כל טיימר

  18. 05:34

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

  19. 05:39

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

  20. 06:41

    בין פעולה לפעולה בגלל שיש לו את המשתנה של deviation יש לו את ההשתנות אז יש לו constant ו-deviation זאת אומרת יש לו איזשהו שינוי בזמן שהוא יחכה בין כל פעם ופעם שהוא ירוץ זאת אומרת אם אני אפעיל את ה-thread שלי בלופ נגיד שאני רוצה להריץ אותו 10 פעמים רק את שני ה-requests האלה ואני

  21. 07:07

    אני ארצה לבצע number of thread, אני ארצה לבצע בוא נגיד 4, אני אתן לו איזה כמה שניות ramp-up, זאת אומרת כמה שניות להגיע ל-4 user-in בו זמנית שהם מבצעים sign-on, אז בעצם הגאוסיאן רנדום כל פעם שהוא ייכנס הוא יחכה זמן אחר בגלל שיש לו deviation.

  22. 07:31

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

  23. 07:53

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

  24. 08:08

    בואו נריץ ונראה מה קורה חשוב לראות כאן יש

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

ההרצאה הקודמת: JMeter Assertions

ההרצאה הבאה: JMeter Certificate

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

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