راهنمای نصب و استفاده از Apache JMeter برای تستِ Load یک وب‌اپلیکیشن

راهنمای نصب و استفاده از Apache JMeter
Avatar
نویسنده: لیلا محمدی
یکشنبه 5 تیر 1401
مطالعه: ۹ دقیقه ۰ نظر ۲۰۸۹ بازدید

Apache JMeter یکی از ابزارهای متن‌باز جاوایی برای تست عملکرد است که در سیستم‌عامل‌های لینوکس و مک و ویندوز استفاده می‌شود. در این مقاله، نحوه نصب و استفاده از ابزار Apache JMeter را در سیستم‌عامل‌های لینوکس و مک و ویندوز و همچنین نحوه استفاده از Apache JMETER برای تستِ Load یک وب‌اپلیکیشن را آموزش خواهیم داد، با ما همراه باشید.

ویژگی‌های Apache JMeter

Apache JMeter یک گزینه مکمل عالی برای تست عملکرد وب‌سایت شما در سناریوهای لود مختلف است. این برنامه ویژگی‌های خاص خود را دارد که در‌ادامه، به برخی از آن‌ها اشاره خواهیم کرد:

  • توسعه‌پذیری درخورتوجه
  • تست خودکار و تست فانکشنال
  • امکان مشاهده نتایج تست در جدول‌ها و نمودارها
  • ذخیره پلن‌های آزمایشی در قالب XML؛ یعنی می‌توانید پلنِ تست را با استفاده از ویرایشگر متن ایجاد کنید.
  • رابط کاربری آسان تست عملکرد و لود و استرس برای انواع سرورها ازجمله HTTP ،‌HTTPS ،‌SOAP، پایگاه داده، LDAP ،‌SMTP ،‌IMAP ،‌POP3 و…
  • چندرشته‌ای کامل (Full Multi-Threading)؛ یعنی تکنیکی که به‌کمک آن چندین پردازنده در مراحل مختلف می‌توانند از یک مجموعه کد استفاده کنند.

آموزش نصب Apache JMeter در لینوکس

ابزار Apache JMeter کاملاً جاواست؛ به‌همین‌دلیل، در هنگام اجرای آن باید جاوا را نصب کنید. پس برای نصب ابزار Apache JMeter در لینوکس، دستورهای زیر را وارد کنید:

Debian/Ubuntu

sudo apt install default-jre-headless default-jdk-headless

CentOS/Alma Linux/Rocky Linux/Fedora

sudo dnf install java-11-openjdk

OpenSUSE

sudo zypper install java-11-openjdk

برای بررسی نسخه جاوا، کد زیر را وارد کنید:

java -version
نرم افزار jmeter
چگونه Apache JMeter را در لینوکس نصب کنیم؟

به این نکته توجه کنید که جاوا 16 در‌حال‌حاضر با Apache JMeter سازگار نیست؛ پس از نسخه‌های دیگر جاوا استفاده کنید.

 آموزش نصب Apache JMeter در ویندوز و مک

کاربران سیستم‌عامل ویندوز و مک برای استفاده از ابزار Apache JMeter، نخست باید JDK 11 را از وب‌سایت اوراکل (Oracle) دانلود کنند. ممکن است JMeter در ریپازیتوری توزیع لینوکس شما وجود داشته باشد؛ اما برای نتایج بهتر تست، توصیه می‌کنیم جدیدترین نسخه پایدار را از وب‌سایت رسمی Jmeter دانلود کنید.

Jmeter چیست؟
نحوه نصب Apache JMeter در ویندوز و مک

فایل tgz. را دانلود کنید. سپس، پنجره ترمینال را باز کنید و به پوشه Download مقصد بروید. به‌عنوان مثال، ما فایل را در دایرکتوری /Downloads/~ دانلود کرده‌ایم:

cd ~/Downloads/

سپس آرشیو را استخراج کنید:

tar xvf apache-jmeter-5.4.1.tgz

دایرکتوری JMeter را به /opt/ که برای برنامه‌های third-party است، منتقل کنید:

sudo mv apache-jmeter-5.4.1 /opt/apache-jmeter

حالا می‌توانید Apache JMeter را با دستور زیر start کنید:

/opt/apache-jmeter/bin/jmeter.sh
تست بار با jmeter
صفحه‌ی اجرای Apache JMeter در ویندوز

نحوه استفاده از Apache JMeter

برای تستِ لودِ وب‌اپلیکیشن خود، ابتدا تست پلن (Test Plan) ایجاد و سپس آن را اجرا کنید.

نحوه ایجاد تست پلن

تست پلن از این عناصر تشکیل شده است:

  • Thread Group
  • HTTP Request Defaults
  • HTTP Cookie Manager
  • HTTP Request
  • HTTP Listener

اگر قصد ندارید Multiple Test Plan ایجاد کنید، JMeter از Test Plan پیش‌فرض بهره می‌برد که در‌صورت تمایل، از آن‌ها می‌توانید استفاده کنید. اگرچه هیچ المنتی در این تست پلن‌ پیش‌فرض وجود ندارد، امکان اضافه‌کردن المنت‌های مورد‌نیاز نیز فراهم است.

 1. نحوه اضافه‌کردن Thread Group

برای اضافه‌کردن Thread Group، کافی است که روی تست پلن راست‌کلیک و مراحل زیر را دنبال کنید:

Add -> Threads (Users) -> Thread Group
نصب Thread Group
Thread Groupبا موفقیت اضافه شد

سه اصل مهم در Thread Group وجود دارد که شما باید آن‌ها را اصلاح کنید:

  • دوره Ramp-up: زمان بین شروع اولین و آخرین Thread
  • تعداد حلقه‌ها (loop): تعداد ریکوئست‌هایی که هر کاربر Simulateشده باید ارسال کند.
  • تعداد Thread: تعداد کاربرانی که می‌خواهید شبیه‌سازی (Simulate) کنید. دقت کنید که هر Thread یک کاربر Simulateشده را نشان می‌دهد.
آموزش jmeter
نمایش مشخصات Thread Group

برای مثال، قصد داریم ۱۵ کاربر را شبیه‌سازی کنیم که هرکدام از آن‌ها ۱۰ ریکوئست ارسال خواهند کرد. اگر می‌خواهید ریکوئست‌ها را بدون وقفه ارسال کنید، چک‌باکسِ Infinite را انتخاب کنید.

2. نحوه افزودن HTTP Request Defaults

برای دسترسی به HTTP Request، باید مراحل زیر را دنبال کنید:

Thread Group -> Add -> Config Element -> HTTP Request Defaults
نرم افزار jmeter
دسترسی به HTTP Request با این مراحل ممکن می‌شود

در بخش وب‌سرور، پروتکل وب‌سایت (HTTPS) و نام دامنه و شماره پورت (443) را انتخاب کنید.

آموزش نصب Apache JMETER
انتخاب پروتکل HTTPS نام دامنه و شماره پورت برای سفارشی‌سازی

3. مدیریت HTTP Cookie

اگر وب‌سایت شما برای بازدیدکنندگان کوکی تولید می‌کند، باید پشتیبانی از کوکی‌ها را در Thread Group اضافه کنید. برای اضافه‌کردن کوکی‌ها، باید مراحل زیر را دنبال کنید:

Thread Group -> Add -> Config Elements -> HTTP Cookie Manager

 

آشنایی با عملکرد Apache JMETER
مراحل اضافه‌کردن کوکی‌ها

4. نحوه افزودن HTTP Requests

برای افزودن HTTP Requests، باید روی Thread Group راست‌کلیک و مراحل زیر را دنبال کنید:

Thread Group -> Add -> Sampler -> HTTP Request
معرفی ابزار Jmeter
HTTP Requestsها با موفقیت اضافه‌ شدند.

به‌منظور ایجاد HTTP Request برای صفحه اصلی وب‌سایت خود، باید در قسمت Path علامت / قرار دهید. با انجام این کار، همه کاربران شبیه‌سازی‌شده Home Page را ریکوئست می‌دهند.

در این قسمت، به تعیین آدرس سرور نیازی ندارید؛ زیرا این مقادیر قبلاً در المنت‌های HTTP Request Defaults تنظیم شده‌اند.

بررسی تست لود با Jmeter
ایجاد درخواست HTTP با واردکردن آدرس

درصورت تمایل، می‌توانید چندین درخواست HTTP ایجاد کنید؛ بنابراین، هر کاربر Simulateشده چندین صفحه وب را ریکوئست می‌کند.

آموزش اضافه‌کردن Listener

این قابلیت در JMeter به شما امکان می‌دهد نتایج تست لود را مشاهده و آن را در فایلی ذخیره کنید. برای دسترسی به قابلیت Listener، مراحل زیر را به‌ترتیب دنبال کنید:

Thread Group -> Add -> Listener -> Backend Listener
تست عملکرد و بار با ابزار Jmeter
نمایش تست لود و ذخیره آن با Listener

حالا می‌توانید با کلیک روی منو File -> Save the Test Plan as، تست پلن را ذخیره کنید. برای مثال، ما آن را در دایرکتوری /opt/apache-jmeter/bin/templates/ ذخیره می‌کنیم.

آموزش شروع تست لود

اکنون رابط کاربری گرافیکی JMeter را ببندید. از حالت GUI برای ایجاد و عیب‌یابی تست لود باید استفاده کنید. برای شروع تست لود، Command Line Mode را به‌کار ببرید.

ابتدا، پوشه گزارش را ایجاد کنید:

mkdir /opt/apache-jmeter/reports/

سپس، دستور زیر را برای شروع تستِ Load اجرا کنید:

/opt/apache-jmeter/bin/jmeter.sh -n -t /opt/apache-jmeter/bin/templates/Test\ Plan.jmx -l /opt/apache-jmeter/reports/testresult.jtl -e -o /opt/apache-jmeter/reports/

که

  • n-: حالت non-GUI
  • t-: فایل تست پلن
  • l-: فایل لاگ
  • e -o-: ریپورت فایل را در قالب HTML ارسال می‌کند.
تست بار با jmeter چیست
شروع تست لود با GUI

پس از پایان تست، فایل HTML در دایرکتوری /opt/apache-jmeter/reports/ ذخیره خواهد شد.

آموزش جامع ابزار Jmeter
نحوه ذخیره فایل تست‌شده

اکنون، می‌توانید فایل index.html را در مرورگر وب خود باز و گزارش تست لود را مشاهده کنید.

تست بار سایت و اپلیکیشن با Jmeter
نمایش گزارش تست بار با JMeter

جمع‌بندی

Apache JMeter ابزاری بسیار کاربردی برای تست لود وب‌اپلیکیشن به‌شمار می‌آید. این ابزار ویژگی‌های مختلفی دارد که از آن می‌توانید برای بررسی عملکرد و تست لود برنامه‌‌های مختلف وب‌سایت خود استفاده کنید. در این مقاله در این مقاله آموزش سیستم عامل وبلاگ پارس‌پک، شما را با نحوه نصب برنامه Apache JMeter و استفاده از آن آشنا کردیم. امیدواریم مطلب آموزشی حاضر برایتان مفید واقع شود.

سؤالات متداول

1. کاربرد Apache JMeter چیست؟

JMeter یکی از ابزار‌های تست آپاچی است که برای تجزیه‌و‌تحلیل و اندازه‌گیری عملکرد برنامه‌ها و خدمات نرم‌افزاری مختلف استفاده می‌شود. این نرم‌افزار متن‌باز و کاملاً به زبان جاوا نوشته شده است. از JMeter برای آزمایش وب‌اپلیکیشن و FTP استفاده می‌شود؛ البته تا زمانی که سیستم از ماشین مجازی جاوا (JVM) پشتیبانی می‌کند.

2. آیا JMeter به کدنویسی نیاز دارد؟

Jmeter به دانش برنامه‌نویسی گسترده نیاز ندارد و فقط به دانش قبلی زبان جاوا نیاز است.

۳. آیا می‌توانیم از JMeter برای تست اتوماسیون استفاده کنیم؟

انواع مختلفی از ابزارهای تست خودکار در بازار وجود دارد تا ویژگی‌های برنامه را در Real-Time آزمایش کند. از ابزار اتوماسیون Apache JMeter برای انجام تست Load و اندازه‌گیری عملکرد وب‌سایت‌ها استفاده می‌شود.

4. JMeter از کدام تست پشتیبانی نمی‌کند؟

Jmeter از Actual Browser Behavior پشتیبانی نمی‌کند؛ زیرا صفحات وب HTML را به خوبیِ مرورگر معمولی رندر نمی‌گیرد؛ به‌طوری‌که Response را می‌توان در فرمت HTML مشاهده کرد؛ اما Actual Timing در سمپل‌های تولیدشده وجود ندارد.