
הטקסט המלא של הדקות הראשונות בהרצאה «הרצאה 5 - קורס Load Runner הראשון» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
ערב טוב, אנחנו היום בשיעור החמישי בסדרת ההרצאות ללואוד ראונר ובדיקות אוטומטיות, בדיקות ומוסעים. רק נבדוק שהקובץ גדל, זאת אומרת ההקלטה מתחילה כמו שצריך.
מקווה ששומעים ורואים. בשיעור הקודם אנחנו דיברנו על Scheduling Scenarios, על הכנת תסריטים, על הכנת מטרת הבדיקות שלנו ושימוש בסקריפטים שנוצרו על ידי Vugen, וזה היה למעשה המבוא, והיום אנחנו ניכנס פנימה יותר, נבין מה זה קבוצות, גרופים, גרופס של היוזרים.
עוד שלב של ה-initialization עבור virtual users, זה עוד משהו שאנחנו נלמד היום. נדע בסוף ההרצאה לתכנן את הזמן ריצה בצורה נכונה, וכמובן, כניסה הדרגתית לתוך המערכת, לתוך ההרצאה וגם יציאה ממנה, אלה השלבים שחשוב לשים לב כשאתם מכינים בדיקות אוטומטיות ובמיוחד את הסצנריו.
בואו נמשיך. הוורקפלואו שלנו, שום דבר לא השתנה, רק שהשלב שאנחנו מתמקדים בו היום זה ה-Scheduling Scenarios.
אנחנו למעשה בשלב השלישי, היה לנו מבוא ועכשיו אנחנו ב-Scheduling. אני חושב שניכנס ישר לקונטרולר ונראה את השלבים האלה שם וככה יהיה לנו יותר ברור.
בואו ניכנס לקונטרולר. אני מזכיר לכם שני דרכים לעלות את הקונטרולר: האחת דרך הקונסול, שנקרא LoadRunner, והאופציה השנייה זה ישר דרך אפליקיישן.
לשם אני אכנס. בדקנו שההקלטה גדלה. אוקיי, אנחנו נבחר את המניו או הסטנריו, כי יש שני דרכים. אתם יודעים מה, אני אעשה את ה-cancel וישר נתחיל מה-new.
זאת אומרת, אם למעשה פתחתם את המסך בצורה כזאת, זאת אומרת, לא היה לכם סטארט-אפ, אז יש לכם פה שלוש אופציות להגיע ל-analyzer, זה האייקון הירוק, virtual user, ג'נרטור, אם פתאום נזכרתם שאתם צריכים להכין עוד סקריפט, ואנחנו כאן.
אוקיי, הנה זה המסך. אנחנו בוחרים Manual Scenario. נבחר User Percentage Mode, משהו שאתם יודעים מה, אנחנו נבטל את זה, ככה זה יותר מוחשי, נוכל באמת לשלוט בכמות היוזרים.
אני לוקח לו לעלות. שימו לב שלפני זה לא בחרתי סקריפטים אלא ישר נכנסתי למסך הזה. כל הדברים אפשר לעשות גם מכאן. קודם כל זה הסקדג'לר שלנו.
מה אנחנו הולכים לעשות כאן בפנים? אחד מהדברים שמאוד חשוב זה שליטה בכמות היוזרים. דאבל קליק ואני יכול לבחור כמה יוזרים להכניס.
במקום עשרה אני יודע שהמערכת שלי משתמשת בחמישים יוזרים ואני אשים חמישים. והופ, הדברים השתנו. אתם רואים גם בצורה גרפית שהמקסימום שאני אוכל להגיע זה חמישים יוזרים.
שימו לב, ארבעים ושתיים וחמישים. מאוד מעניין להבין למה ייקח לי שש דקות להגיע לחמישים יוזרים. אז בואו נעשה את החישוב הפשוט.
מה שכתוב כאן שהיוזרים יעלו כל חמש עשרה שניות שני יוזרים, נכון? זאת אומרת, בדקה יעלו לי שמונה יוזרים נכון אם זה כל חמש עשרה שניות ושמונה כפול חמישים חלקי שמונה זה שש דקות וקצת עוד שש כפול שמונה
זה ארבעים ושמונה וזה בערך שש דקות בסדר אוקיי זה למעשה ה-Web Server קרתה איזושהי תקלה בוא נעשה ריסטארט אני חושב שזה אפליקציה לא בפרודקשן זה אפליקציית לימוד בואו נעלה שיהיה לנו זה להמשך עבודה אם נצטרך אוקיי ראיתם את הקראש מעניין מאוד אוקיי סמפר סווייל סטארט וב סרבר
אופ זה הלך חזרה אוקיי קודם כל ראינו איך מחליפים כמות היוזרים נכון משהו נוסף שאפשר להחליט כאן בחלון הזה של הסקדג'ר זה כמה זמן ירוט הטסט שלנו אנחנו רוצים שהוא ירוט במשך חמש דקות או יותר הגיוני הטסט לא ירוץ חמש דקות אלא רק משהו יותר מוחשב בדרך כלל נשים פה שעתיים אוקיי time 0f משהו יותר מעניין זאת אומרת סך הכל הריצה שלנו תהיה בסביבות שעתיים וקחו בחשבון זמן
עליית היוזרים שש דקות וזמן ירידת היוזרים זאת אומרת בערך 2 ועשרה זה הזמן שיקח לנו להרצה של הטסט אוקיי אפשר לערוך את הטסט גם מהמקום הזה באדיט מוד אתם יכולים פשוט לגרור מאוד יפה ונחמד מאוד נוח להקטין כמות היוזרים שימו לב אוקיי זה גם משהו שאפשר לעשות וזה מיד ישתקף כאן בסדר יפה בואו נראה יש לנו כמה אפשרויות של התכנון אפשר לתכנן לפי קבוצות
ואפשר לתכנן לפי סצנריו אוקיי בואו נראה קודם כל לפי קבוצות אוקיי, זו אופציה שהצליח לבחור מקודם, אבל אני עדיין יכול להכניס פה לפי סנאריו, זאת אומרת שכל התכנון הוא יתבצע פר כל הקבוצות שאני אכניס פנימה.
גם אם אני אכניס עכשיו כמה קבוצות, אחת או שתיים, התכנון הוא עדיין, כאן התכנון הוא פר סנאריו, אני יכול להחליט לתכנן לפי גרופ.
מה זה אומר לפי גרופ? זאת אומרת, יש לי אופציה להתחיל קבוצה הזאת, והיא זאת שתשלוט בה. זאת אומרת, אני חוזר, כדי שזה, יש סנריו, זאת אומרת, כל הסקריפטים ירוצו במקביל, זאת אומרת, יש לי כרגע 35 יוזרים, וכל אחד מהם ירוץ, שתי הקבוצות ירוצו במקביל, ואם אני רוצה לשלוט בצורה ידנית, בצורה הרבה
יותר טובה, אני יכול לבחור גרופס, להגדיר הרצה נגיד במשך שעה 50 דקות לדוגמה עבור קבוצה ראשונה או שנייה search והנה אתם רואים פה את הסימן סגול וירוק זה הקבוצה הראשונה וזה הקבוצה השנייה ואם אני עובר עכשיו לחלון לוגין אני יכול להגדיר כאן שההרצה זאת סליחה הייתה הרצה של 50 דקות וההרצאה הזאת תהיה הרצאה של 30 דקות.
זה נותן לי עוד איזושהי גמישות נוספת, שדוגמא חיפוש יסתיים, נגיד, אחרי חצי שעה. אני יודע שאנשים לא מבצעים את החיפוש אחרי חצי שעה, אבל לעומת זאת אנשים עדיין ממשיכים לעשות לוגים.
זה משהו שהוא לא, באופן תיאורטי. זה ההבדל בין הגרופ לסצנריו. עוד אופציה שיכולה לעניין אותנו, בואו נראה. אני קופץ בין מצגת קונטרולר כדי לא לפספס דברים חשובים אבל עוד משהו שבאמת בהחלט יכול להיות חשוב לנו כאן כשאנחנו מדברים על הסצנריו זה אופציה של initialize אוקיי בואו נראה מה זה initialize יש לי כמה אפשרויות כל
סקריפט לפני שהוא מתחיל לרוץ כל קבוצה לפני שהוא מתחיל לרוץ היא עושה כל מיני אתחולים.
האתחולים האלה יושבים בסקשן שנקרא init בסקריפט, ולפי מתכנת שבנה את הסקריפטים הם אחראים על דברים שונים. בחלק מהאפליקציות אתם תעשו שם הצהרת משתנים, בחלק מהסקריפטים האזור הזה יישאר ריק, ולכן אני יכול לשלוט בנושא של ה-initialize.
אני יכול להגיד תעשו initialize לכולם ביחד, וזה מעמיס קצת על המערכת, וזה לא תמיד טוב כי יכול להיות שאני מעמיס על המערכת אבל אין לזה שום משמעות כי סך הכל יש לי פה סך הכל הצהרת משתנים עבור הסקריטים של הלואוד ראנר.
אני יכול לעשות את זה בהדרגתיות, להגיד תעשייני שעליה יש לאט לאט אחד כל 15 שניות וככה אני בעצם מכניס את הסקריטים שלי בצורה הדרגתית לתוך קונטרול לתוך לואוד ראנר.
אין פה שום משמעות לעומץ שאני מייצר. ואופציה שהיא בדרך כלל יותר מקובלת היא לוקחת קצת זמן אבל עבור הרבה משתמשים, אבל היא מקובלת ואני ממליץ עליה זה initialize each virtual user just before it runs.
מה זה אומר? זאת אומרת, כל ההתחולים יתבצעו לפני שסקריפט ראשון יתחיל לבצע את הפעולה האמיתית. בואו רק נדגים מה זה באמת initialize. אני ב-search, אני רוצה לעשות edit לסקריפט הזה.
בואו נעשה לזה edit. אני אפתח את הסקריפט הקיים ואני אראה לכם שלושת האקשנים, שלושת האזורים שקיימים לי בפנים. קודם כל יש לי globals.h שפת c לכל מי שמכיר, אני עושה include לספריות שאני משתמש בהן, אחת מהן ספריית loadrunner, ספריית web ועוד ספרייה נוספת.
ב-init כרגע היא ריקה אבל אני יכול לעשות הצהרת משתנים, אני יכול להגיד int a, אני יכול לעשות INC B, כל הדברים שישמשו אותי בזמן האקשן.
ואקשן לעומת זאת, יש לי כבר את כל הקוד שמעניין אותנו. מה אנחנו רואים פה? אנחנו רואים פה כניסה ל-URL של אפליקציית הזמנת טיסות.
אנחנו עושים פה חיפוש. יש לנו זמן המתנה 32 שניות, יש לנו פה 39 שניות, אנחנו בעצם מדמים את המשתמש האמיתי. זה משהו שהוא חשוב לשים אותו בפנים.
ובסוף יש לנו submit, אוקיי? מה יש לנו ב-vuser end? אנחנו עושים את הלוגאוט. זוכרים איך מתבצע הלוגאוט? בעצם פונים לחלון, לכפתור sign off, רואים?
ומעבירים לו true, שזה אחד. זה המבנה של הסקריפט. עכשיו, כל העושים של ה-init, לפעמים יש להם משמעות ולפעמים אין להם משמעות.
אז כשאין להם משמעות להרצת הסקריפט, אנחנו נתחיל את כל הסקריפטים לפני הריצה, וזה הנושא של ה-init. כמובן גם לא לשכוח את ה-stop. stop יכול להתבצע, לעצור את כולם ביחד, נכון?
stop all, ואפשר להגיד לו שיעשה הכל בו זמנית. לפעמים המהלכת יכולה לקרוס בזמן היציאה כי כולם פתאום עושים לו גוף. בדרך כלל אין לזה יותר מדי משמעות כי במעט במעט מקרים אנחנו בודקים באמת עומס על היציאה, כי כמעט העומס הזה לא מתבצע גם בחיי היום-יום.
לא קורה מצב שכולם עוזבים את המערכת בו זמנית, בדרך כלל אנשים נכנסים למערכת בו זמנית. לעומת זאת, אנחנו יכולים לבחור באופציה של היציאה הדרגתית, וזה נותן לנו פשוט הרצאה יותר חלקה ויותר כיפית, והמערכת לא נופלת בסוף כשאנחנו כבר מתים לנתח
את התוצאות. הנה אופציה שני יוזרים בדרך כלל הירידה היא תהיה יותר מהירה מאשר עלייה כי פחות חשוב לנו אז אפשר לעשות עשרה יוזרים כל 15 שניות וכמובן זה משתקף בגרף שימו לב שאם אני לוקח את זה וקצת אנסה למרוח אז הנה שיניתי שמונה כל דקה ו-45 שניות זה עוד משהו שאפשר לעשות החלון פה הוא קצת טיפה טיפה שונה ממה שאתם רואים באמת בפול כי
כי הסנאפשוט הזה הוא מהגרסאות היותר ראשונות של הלואוד ראנר, כנראה זו גרסה 8.1 או אפילו 8.1 אולי גרסה אחרת, וכרגע אנחנו במוד של גרסה 11 שהוא קצת יותר יוזר פרנדי וטיפה שונה.
אבל אותו רעיון, שום דבר לא השתנה. במקום טאבים שיש לנו כאן, כל הדברים האלה מופיעים לנו פה בשורות. בואו נראה באמת, ננסה להגיע למצב כזה, אנחנו רק רוצים להתחיל, לפעמים יש משמעות של להתחיל את כל היוזרים וכשאנחנו נבחר באופציה הזאת, זאת אומרת הזמן ריצה הוא יהיה אפס, קודם כל זה לא מתאפשר, הוא אי אפשר שהזמן ריצה יהיה אפס,
בואו ננסה להעלות את זה לשנייה אחת, אתם רואים? יש לנו רק עלייה וירידה, אפשר לבדוק גם את הדברים האלה. לפעמים אנחנו נרצה להתחיל את הסצנריו רק אחרי דיליי מסוים.
לפעמים אנחנו נרצה להריץ את זה לפי כמות היוזרים המסוימת שנכנסה למערכת. ולפעמים אנחנו נרצה להריץ את זה בצורה אינסופית, עד שהמערכת לא מסיימת את ה...
זאת אומרת, אנחנו נעצור את זה כשהמערכת מסתיימת, שמערכת עדיין ממשיכה לרוץ, אנחנו נוכל לעצור אותה. אני היום מתבלבל קצת במילים.
אוקיי, בואו נראה את האופציה הזאת. בואו נראה מה יש לנו אפשרות של דוריישן. בואו נראה אופציה של סטארט-טיים, הנה. אז יש לנו אופציה delay, זאת without delay, נכון? יש לנו with delay,