מבוא לגטלינג

1. סקירה כללית

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

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

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

לאחר הפעלת הסימולציה יש לנו מוכן להווה HTML דיווחים.

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

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

2. יצירת פרויקט באמצעות ארכיטיפ

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

משורת הפקודה, הקלד:

ארכיטיפ mvn: ליצור

ואז, כאשר תתבקש:

בחר מספר או החל מסנן (פורמט: [groupId:] artifactId, מכיל אותיות רישיות):

סוּג:

שוער

אז תראה:

בחר ארכיטיפ: 1: מרחוק -> io.gatling.highcharts: gatling-highcharts-maven-archetype (gatling-highcharts-maven-archetype)

סוּג:

1

כדי לבחור את הארכיטיפ, ואז בחר את הגרסה לשימוש (בחר את הגרסה האחרונה).

בחר את groupId, artifactId, גִרְסָה ו חֲבִילָה שם השיעורים לפני אישור יצירת הארכיטיפ.

סיים על ידי ייבוא ​​הארכיטיפ ל- IDE - למשל ל- Scala IDE (מבוסס על Eclipse) או ל- IntelliJ IDEA.

3. הגדירו תרחיש

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

במדריך זה נשתמש ביישום המסופק על ידי צוות Gatling למטרת דוגמה ומתארח בכתובת URL //computer-database.gatling.io.

התרחיש הפשוט שלנו יכול להיות:

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

4. קביעת תצורה של המקליט

קודם כל השיק את מַקלִיט כיתה מה- IDE. לאחר ההשקה, ה- GUI מאפשר לך להגדיר כיצד יירשמו בקשות ותגובות. בחר באפשרויות הבאות:

  • 8000 כנמל האזנה
  • org.baeldung.simulation חֲבִילָה
  • RecordedSimulation שם הכיתה
  • לעקוב אחר הפניות מחדש? בָּדוּק
  • מפנים אוטומטיים? בָּדוּק
  • ראשית הרשימה השחורה נבחרה אסטרטגיית סינון
  • . * \. css, . * \. js ו . * \. ico במסנני הרשימה השחורה

כעת עלינו להגדיר את התצורה של הדפדפן לשימוש ביציאה המוגדרת (8000) שנבחר במהלך התצורה. זה היציאה שהדפדפן שלנו חייב להתחבר אליו כדי ש מַקלִיט מסוגל לתפוס את הניווט שלנו.

כך תעשה עם Firefox, פתח את ההגדרות המתקדמות של הדפדפן ואז עבור לפאנל הרשת ועדכן את הגדרות החיבור:

5. הקלטת התרחיש

עכשיו כשהכל מוגדר נוכל להקליט את התרחיש שהגדרנו לעיל. הצעד הוא:

  1. התחל את ההקלטה על ידי לחיצה על כפתור 'התחל'
  2. היכנס לאתר: //computer-database.gatling.io
  3. חפש דוגמניות עם 'אמסטרד' על שמם
  4. בחר 'Amstrad CPC 6128'
  5. חזור לדף הבית
  6. עוקף מספר פעמים דרך דפי הדגם על ידי לחיצה על הַבָּא לַחְצָן
  7. לחץ על כפתור 'עצור ושמור'

הסימולציה תיווצר בחבילה org.baeldung מוגדר במהלך התצורה תחת השם RecordedSimulation.scala

6. הפעל סימולציה עם מייבן

כדי להריץ את הסימולציה המוקלטת עלינו לעדכן pom.xml:

 io.gatling gatling-maven-plugin 2.2.4 מבחן לבצע נכון 

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

מבחן mvn

לאחר סיום הסימולציה, הקונסולה תציג את הנתיב לדוחות ה- HTML.

הערה: תצורה נָכוֹן משמש מכיוון שנשתמש ב- Scala עם maven הדגל הזה יבטיח שלא נסיים את ההדמיה שלנו פעמיים. פרטים נוספים זמינים במסמכי Gatling.

7. בחינת התוצאה

אם נפתח את index.html במיקום המוצע הדוחות נראים כך:

8. מסקנה

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

כדי לבנות את הדוגמה שלנו בחרנו להשתמש בארכיטיפ של maven. זה עוזר לנו לשלב את Gatling ולהריץ אותו ל- IDE ולהקל על תחזוקת הפרויקט במערכת בקרת גרסאות.

את קוד הדוגמה ניתן למצוא בפרויקט GitHub.


$config[zx-auto] not found$config[zx-overlay] not found