כלי עומסים – חלק ב (Gatling)

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

גם עם כלי זה אנחנו נעבוד במידה ונרצה לבדוק עומסים וביצועים על הרשת שלנו, היתרון הגדול של Gatling הוא שניתן  ללא גזילת משאבים רבים מצד המכונה שלנו להעמיס את המערכת, ע"י טכנולוגיה שנקראת AKKA , שהרעיון שלה אומר שבמקום להגדיר משתמש וירטואלי כ-Thread במחשב, אנחנו נגדיר אותו כ-Message – מה שצורך הרבה פחות זיכרון וכוח עיבוד מהמחשב עליו אני מריץ את הבדיקות. באתר הרישמי שלהם הם מודיעים בגאווה כי ניתן לשלוח דרך הטכנולוגיה הזו את השרת ב-2 מיליון הודעות כאלו בשנייה (זאת אומר – 2 מיליון משתמשים וירטואליים), לא פחות ממרשים !

גם כלי העומסים הזה שהוא Open Source וכתוב בשפת Scala, תומך בקידוד, וכאן אנחנו מדברים על משפחת ה-Java Development Kit למיניהם (או בקיצור – JDK), כאשר השפות בהן הוא תמוך הינן: Java, Scala ו-Kotlin

התקנת המערכת היא לדעתי גם נקודת החולשה שלה, כי בינתיים, מכל כלי העומסים שעבדתי איתם, תהליך ההתקנה של Gatling הינו המורכב ביותר, לשם כך אנחנו נצטרך להתקין את ה-JDK (גרסה 11 ומעלה), סביבת פיתוח (IDE), שזה בד"כ יהיה ה-IntelliJ, התקנת Gatling, התקנת כלי בניית תוכנה (Building Tool),כמו Maven או Gradle, והתקנת Scala ( למי שמעדיף לקודד בשפה זו)

יכולת ה-Record & Play שלו היא חביבה ואינה מצריכה רקע טכני גבוה מידיי, ההקלטה מתבצעת בעזרת כלי ההקלטות של דפדפן הכרום ואילו ההמרה לסקריפטים של Gatling (לפי השפה שבחרנו) מתבצעת בכלי ה-Recorder הפנימי שלהם

 

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

 

מבחינת מבניות מקרה הבדיקה, ניתן לחלק אותו ל-3 חלקים:

הקונפיגורציה – שם אנו נגדיר את הפרוטוקול , את הכתובת שאנו נרצה לפנות אליה וכו'.

ה-Scenario – שם אנו נגדיר את הבקשות שלנו לאותו שרת, להגדיר מה בעצם אנחנו מעוניינים לעשות מולו

ה-Setup – שם אנו נגדיר את קצב העומס, מספר המשתמשים הווירטואליים, תדירות וכדומה

 

הכלי הזה Gatling מגיע עם 2 תצורות של בדיקות בשביל אנשי QA מדופלמים שכמונו. התצורה הראשונה נקראת Check והשנייה נקראת Assert. על פניו זה נשמע אותו הדבר ואכן שתיהן קשורים לבדיקות, אך הן שונות במהותן, כאשר ב-Check אנחנו בודקים את הבקשה עצמה, למשל אם שלחתי בקשה לשרת שיחזיר לי את רשימת כל הפריטים במוצר, אז ב-Check למשל אוכל לבדוק כי אכן כל הפריטים חזרו אליי מהתגובה, או שהם חזרו אליי תוך פחות מ-200 מילישניות לדוגמא.

ואילו לגביי ה-Assert, כאן מדובר בבדיקה רחבה יותר, בדיקה כלל מערכתית. כאן למשל נרצה לבדוק כי כל 2,000 הבקשות ששלחנו חזרו עם סטטוס OK, או שהבדיקה תעבור במידה ו-90% מתוך כלל הבקשות חזרו עם סטטוס OK, או תוך פחות מ-200 מילישניות וכדומה.

ניתן לנצל את היכולות החזקות של כלי האוטומציה והעומסים גם כאן על ידי שימוש בטכניקת הבדיקות הפופולרית Data Driven Testing בה נרצה לחזור על אותו מקרה בדיקה כשכל פעם נזין לבדיקה עצמה ערכים שונים, נוכל להגדיר למשל ערכים שונים בתוך קובץ CSV (לא חייב, אבל אנחנו אוהבים מאוד לעבוד עם פורמט זה), ולהריץ, ה-Gatling כבר ידע לקרוא את הערכים בלולאה ולהכניסם לאובייקט פנימי כדי להשתמש בהם אח"כ בזמן הריצה

 

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

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

Scroll to Top
דילוג לתוכן