راهنمای نصب و استفاده از Apache JMeter برای تستِ Load یک وباپلیکیشن
در این مقاله میخوانید
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
به این نکته توجه کنید که جاوا 16 درحالحاضر با Apache JMeter سازگار نیست؛ پس از نسخههای دیگر جاوا استفاده کنید.
آموزش نصب Apache JMeter در ویندوز و مک
کاربران سیستمعامل ویندوز و مک برای استفاده از ابزار Apache JMeter، نخست باید JDK 11 را از وبسایت اوراکل (Oracle) دانلود کنند. ممکن است JMeter در ریپازیتوری توزیع لینوکس شما وجود داشته باشد؛ اما برای نتایج بهتر تست، توصیه میکنیم جدیدترین نسخه پایدار را از وبسایت رسمی 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
نحوه استفاده از 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 وجود دارد که شما باید آنها را اصلاح کنید:
- دوره Ramp-up: زمان بین شروع اولین و آخرین Thread
- تعداد حلقهها (loop): تعداد ریکوئستهایی که هر کاربر Simulateشده باید ارسال کند.
- تعداد Thread: تعداد کاربرانی که میخواهید شبیهسازی (Simulate) کنید. دقت کنید که هر Thread یک کاربر Simulateشده را نشان میدهد.
برای مثال، قصد داریم ۱۵ کاربر را شبیهسازی کنیم که هرکدام از آنها ۱۰ ریکوئست ارسال خواهند کرد. اگر میخواهید ریکوئستها را بدون وقفه ارسال کنید، چکباکسِ Infinite را انتخاب کنید.
2. نحوه افزودن HTTP Request Defaults
برای دسترسی به HTTP Request، باید مراحل زیر را دنبال کنید:
Thread Group -> Add -> Config Element -> HTTP Request Defaults
در بخش وبسرور، پروتکل وبسایت (HTTPS) و نام دامنه و شماره پورت (443) را انتخاب کنید.
3. مدیریت HTTP Cookie
اگر وبسایت شما برای بازدیدکنندگان کوکی تولید میکند، باید پشتیبانی از کوکیها را در Thread Group اضافه کنید. برای اضافهکردن کوکیها، باید مراحل زیر را دنبال کنید:
Thread Group -> Add -> Config Elements -> HTTP Cookie Manager
4. نحوه افزودن HTTP Requests
برای افزودن HTTP Requests، باید روی Thread Group راستکلیک و مراحل زیر را دنبال کنید:
Thread Group -> Add -> Sampler -> HTTP Request
بهمنظور ایجاد HTTP Request برای صفحه اصلی وبسایت خود، باید در قسمت Path علامت / قرار دهید. با انجام این کار، همه کاربران شبیهسازیشده Home Page را ریکوئست میدهند.
در این قسمت، به تعیین آدرس سرور نیازی ندارید؛ زیرا این مقادیر قبلاً در المنتهای HTTP Request Defaults تنظیم شدهاند.
درصورت تمایل، میتوانید چندین درخواست HTTP ایجاد کنید؛ بنابراین، هر کاربر Simulateشده چندین صفحه وب را ریکوئست میکند.
آموزش اضافهکردن Listener
این قابلیت در JMeter به شما امکان میدهد نتایج تست لود را مشاهده و آن را در فایلی ذخیره کنید. برای دسترسی به قابلیت Listener، مراحل زیر را بهترتیب دنبال کنید:
Thread Group -> Add -> Listener -> Backend 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 ارسال میکند.
پس از پایان تست، فایل HTML در دایرکتوری /opt/apache-jmeter/reports/ ذخیره خواهد شد.
اکنون، میتوانید فایل index.html را در مرورگر وب خود باز و گزارش تست لود را مشاهده کنید.
جمعبندی
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 در سمپلهای تولیدشده وجود ندارد.