برای اجرای تست بار با JMeter، ابتدا باید Java سازگار را نصب کنید، بسته باینری JMeter را از حالت فشرده خارج کنید و اجرای آن را بررسی کنید. نصب این ابزار معمولاً به نصبکننده جداگانه نیاز ندارد؛ بیشتر مشکلات شروع کار به مسیر Java، متغیرهای محیطی یا اجرای فایل اشتباه مربوط میشوند.
در این آموزش نصب apache jmeter، مراحل ویندوز و لینوکس، ساخت اولین تست و رفع خطاهای رایج را مرور میکنیم. نکته مهم این است که رابط گرافیکی برای طراحی و عیبیابی سناریو مناسب است؛ تست بار اصلی را بهتر است در حالت خط فرمان اجرا کنید.
پیشنیازهای نصب JMeter
Apache JMeter ابزاری مبتنی بر Java برای طراحی و اجرای تستهای بار و کارایی است. برای شروع به این موارد نیاز دارید:
- Java سازگار با نسخه انتخابی JMeter: حداقل نسخه موردنیاز را در مستندات یا فایل راهنمای همان انتشار بررسی کنید. انتخاب یک JDK پشتیبانیشده، راه عملی مناسبی است.
- بسته باینری JMeter: برای استفاده معمول، بسته Binary را بگیرید، نه بسته Source.
- فضای کافی و دسترسی نوشتن: پوشه نصب و محل ذخیره نتایج باید قابلنوشتن باشند.
- دسترسی مجاز به سامانه هدف: تست بار را فقط روی سامانهای اجرا کنید که مالک آن هستید یا اجازه آزمایش آن را دارید.
نسخه Java را در ترمینال یا خط فرمان بررسی کنید:
java -version
اگر مشخصات Java نمایش داده شد، فایل اجرایی آن در دسترس است؛ اما همچنان باید سازگاری نسخه را بررسی کنید. اگر پیام «دستور پیدا نشد» دریافت کردید، Java نصب نیست یا مسیر آن در PATH قرار ندارد.
از وبسایت رسمی Apache JMeter وارد بخش دانلود شوید و بسته باینری انتشار موردنظر را دریافت کنید. فایل ZIP برای ویندوز و فایل TGZ برای لینوکس انتخابهای متداولی هستند. در صورت امکان، صحت فایل را با مقدار SHA-۵۱۲ منتشرشده برای همان بسته مقایسه کنید.
در فرمانهای این راهنما، X.Y.Z جای نسخه دانلودشده است؛ آن را با نام واقعی پوشه یا فایل جایگزین کنید.
آموزش نصب apache jmeter در ویندوز
۱. نصب Java و تنظیم متغیرهای محیطی
یک JDK سازگار نصب کنید. سپس در تنظیمات ویندوز، عبارت Environment Variables را جستوجو کنید و بخش ویرایش متغیرهای محیطی را باز کنید.
متغیر JAVA_HOME را برابر مسیر پوشه اصلی JDK قرار دهید؛ برای مثال:
C:\Java\jdk-17
این مسیر صرفاً نمونه است و باید با مسیر نصب واقعی شما جایگزین شود. JAVA_HOME نباید به پوشه bin یا فایل java.exe اشاره کند.
سپس این مقدار را به متغیر Path اضافه کنید:
%JAVA_HOME%\bin
پنجرههای خط فرمان قبلی را ببندید و یک Command Prompt جدید باز کنید:
java -version
echo %JAVA_HOME%
where java
فرمان آخر نشان میدهد ویندوز Java را از چه مسیری اجرا میکند. اگر چند نسخه Java دارید، ترتیب مسیرها در Path اهمیت دارد.
۲. استخراج بسته باینری
فایل ZIP را در مسیری ساده، مانند مسیر زیر، استخراج کنید:
C:\Tools\apache-jmeter-X.Y.Z
مسیر کوتاه و بدون نویسههای پیچیده، عیبیابی را آسانتر میکند. اجرای JMeter از داخل فایل فشرده درست نیست؛ ابتدا همه محتویات بسته را استخراج کنید.
در پوشه استخراجشده باید پوشههایی مانند bin و lib را ببینید.
۳. اجرای رابط گرافیکی
در Command Prompt وارد پوشه bin شوید و فایل اجرای ویندوز را فراخوانی کنید:
cd /d C:\Tools\apache-jmeter-X.Y.Z\bin
jmeter.bat
اگر رابط گرافیکی باز شد، راهاندازی اولیه موفق بوده است. اجرای برنامه از خط فرمان نسبت به دوبار کلیک مزیت دارد: اگر برنامه باز نشود، پیام خطا را میبینید.
برای بررسی نسخه بدون باز کردن رابط گرافیکی نیز میتوانید اجرا کنید:
jmeter.bat -v
افزودن پوشه bin مربوط به JMeter به Path اختیاری است؛ برای کار با ابزار میتوانید مستقیماً وارد همان پوشه شوید.
نصب Apache JMeter در لینوکس
۱. نصب و بررسی Java
نصب Java به توزیع لینوکس بستگی دارد. برای مثال، در نسخههایی از Ubuntu یا Debian که بسته زیر در مخازن آنها موجود است، میتوانید از این فرمانها استفاده کنید:
sudo apt update
sudo apt install openjdk-17-jdk
در توزیعهای مبتنی بر Fedora، در صورت موجود بودن بسته:
sudo dnf install java-17-openjdk-devel
اینها نمونه هستند؛ نسخه Java را با نیازمندی انتشار JMeter تطبیق دهید. سپس بررسی کنید:
java -version
command -v java
اگر Java در PATH موجود باشد، معمولاً نیازی به تنظیم دستی JAVA_HOME نیست. در محیطهای دارای چند JDK، تعیین آن میتواند انتخاب نسخه را روشنتر کند.
برای تنظیم موقت در نشست فعلی:
export JAVA_HOME=/path/to/your/jdk
export PATH="$JAVA_HOME/bin:$PATH"
مسیر نمونه را با مسیر واقعی JDK جایگزین کنید. برای دائمیکردن تنظیمات، آنها را در فایل پیکربندی شل خود قرار دهید؛ مثلاً برای Bash، بسته به شیوه ورود به سیستم، فایلهایی مانند ~/.bashrc یا ~/.profile.
۲. استخراج و اجرا
فرض کنید فایل TGZ را در پوشه Downloads ذخیره کردهاید:
mkdir -p "$HOME/tools"
tar -xzf "$HOME/Downloads/apache-jmeter-X.Y.Z.tgz" -C "$HOME/tools"
cd "$HOME/tools/apache-jmeter-X.Y.Z"
./bin/jmeter -v
در دسکتاپ لینوکس، برای باز کردن رابط گرافیکی اجرا کنید:
./bin/jmeter
نصب در پوشه کاربر معمولاً نیازی به اجرای JMeter با sudo ندارد. اجرای برنامه با کاربر عادی، احتمال ایجاد فایلهای متعلق به کاربر ریشه را نیز کاهش میدهد.
روی سرور بدون محیط گرافیکی، سراغ حالت خط فرمان بروید. باز نشدن پنجره در چنین محیطی الزاماً نشانه نصب ناموفق نیست.
بررسی نصب با ساخت اولین تست
نمایش نسخه فقط نشان میدهد برنامه اجرا میشود. برای بررسی عملی، یک درخواست سبک به یک سرویس آزمایشی مجاز ارسال کنید.
در رابط گرافیکی JMeter:
- روی Test Plan راستکلیک کنید و از مسیر Add → Threads (Users) → Thread Group یک گروه کاربر بسازید.
- تعداد کاربران، زمان Ramp-up و تعداد تکرار را برای شروع روی
1قرار دهید. - زیر Thread Group، از Add → Sampler → HTTP Request یک درخواست HTTP اضافه کنید.
- پروتکل، نام میزبان، پورت و مسیر را مطابق سرویس آزمایشی تنظیم کنید.
- یک View Results Tree از بخش Listener اضافه کنید.
- برنامه تست را با پسوند
.jmxذخیره و اجرا کنید.
برای مثال، اگر یک سرویس محلی واقعاً روی پورت 8080 اجرا میشود، میتوانید پروتکل را http، میزبان را localhost، پورت را 8080 و مسیر را / بگذارید. در بخش نام میزبان، نشانی کامل دارای http:// وارد نکنید.
نتیجه درخواست را بررسی کنید. دریافت پاسخ به معنای درستبودن رفتار سامانه نیست؛ برای ارزیابی دقیقتر، Assertion متناسب با پاسخ مورد انتظار اضافه کنید. همچنین خطای اتصال میتواند ناشی از خاموشبودن سرویس هدف باشد، نه خرابی نصب JMeter.
اجرای تست در حالت خط فرمان
پس از طراحی و بررسی فایل .jmx، برای اجرای تست بار از حالت غیرگرافیکی استفاده کنید.
در ویندوز، از پوشه bin:
jmeter.bat -n -t "C:\Tests\smoke.jmx" -l "C:\Tests\results.jtl" -e -o "C:\Tests\report"
در لینوکس، از پوشه اصلی JMeter:
./bin/jmeter -n -t "$HOME/tests/smoke.jmx" \
-l "$HOME/tests/results.jtl" \
-e -o "$HOME/tests/report"
معنی گزینهها:
-n: اجرای غیرگرافیکی-t: مسیر برنامه تست-l: مسیر فایل نتایج-e: تولید گزارش داشبورد پس از اجرا-o: پوشه خروجی گزارش
پوشه والد خروجی باید موجود و قابلنوشتن باشد. پوشه گزارش باید خالی باشد یا هنوز وجود نداشته باشد. برای اجراهای مستقل، نامهای جداگانه انتخاب کنید تا نتایج قبلی با اجرای جدید مخلوط نشوند.
در تست بار، Listenerهای پرمصرف مانند View Results Tree را غیرفعال کنید. نمایش و نگهداری جزئیات تعداد زیادی درخواست میتواند منابع دستگاه تولیدکننده بار را مصرف کند و نتیجه آزمایش را تحتتأثیر قرار دهد.
رفع خطاهای رایج نصب و اجرای JMeter
خطای شناسایینشدن Java
پیامهایی مانند java is not recognized در ویندوز یا java: command not found در لینوکس به نبودن Java در مسیر اجرایی اشاره دارند.
ابتدا نصب Java را بررسی کنید، سپس PATH و در صورت نیاز JAVA_HOME را اصلاح کنید. بعد از تغییر متغیرهای محیطی، ترمینال جدید باز کنید. نصب مجدد JMeter معمولاً این مشکل را حل نمیکند.
خطای UnsupportedClassVersionError
این خطا معمولاً یعنی نسخه Java اجراکننده، از نسخهای که یک کلاس با آن ساخته شده قدیمیتر است.
خروجی java -version و نیازمندی JMeter را مقایسه کنید. اگر افزونه نصب کردهاید، ممکن است ناسازگاری مربوط به همان افزونه باشد. پیش از ارتقا، مسیر Java واقعاً استفادهشده را بررسی کنید؛ وجود یک JDK جدید روی دستگاه کافی نیست.
بستهشدن سریع پنجره در ویندوز
بهجای دوبار کلیک، jmeter.bat را از Command Prompt اجرا کنید تا پیام خطا باقی بماند.
فایل jmeter.log را نیز در پوشه کاری اجرا بررسی کنید. برای مشخصکردن مسیر لاگ میتوانید از گزینه -j استفاده کنید:
jmeter.bat -j "C:\Tests\jmeter.log"
خطای Permission denied در لینوکس
ابتدا مجوز فایل را بررسی کنید:
ls -l bin/jmeter
chmod u+x bin/jmeter
./bin/jmeter -v
اگر پوشه روی فایلسیستمی با محدودیت اجرای فایل قرار دارد، اصلاح مجوز بهتنهایی کافی نیست. بسته را به مسیر مجاز منتقل کنید یا موضوع را با مدیر سیستم بررسی کنید. از تغییر گسترده مجوزها، مانند دادن دسترسی کامل به همه کاربران، خودداری کنید.
خطای HeadlessException یا نبودن DISPLAY
این وضعیت معمولاً هنگام اجرای رابط گرافیکی روی سرور بدون دسکتاپ رخ میدهد. فایل تست را در محیط دسکتاپ آماده کنید و روی سرور با -n اجرا کنید.
خطای کمبود حافظه یا ایجادنشدن JVM
پیام OutOfMemoryError میتواند به Heap ناکافی، حجم بالای نتایج یا Listenerهای سنگین مربوط باشد. پیام Could not reserve enough space نیز ممکن است نشان دهد حافظه درخواستشده برای محیط موجود مناسب نیست.
ابتدا بار و Listenerها را بررسی کنید. برای تعیین Heap در نشست فعلی، مثلاً:
ویندوز:
set HEAP=-Xms512m -Xmx1g
jmeter.bat
لینوکس:
HEAP="-Xms512m -Xmx1g" ./bin/jmeter
این مقدار نمونه است، نه تنظیم بهینه برای همه دستگاهها. حافظه را متناسب با RAM، محدودیت محیط و نیاز تست انتخاب کنید.
خطای تولید گزارش یا بارگذاری برنامه تست
اگر پوشه گزارش خالی نیست، خروجی جدید انتخاب کنید. برای خطاهای فایل .jmx، مسیر، مجوز خواندن و کاملبودن فایل را بررسی کنید.
اگر پیام به کلاس ناشناخته اشاره دارد، ممکن است برنامه تست از افزونهای استفاده کند که روی این نصب موجود نیست. بسته Source، استخراج ناقص یا ترکیب فایلهای چند نسخه نیز میتواند راهاندازی را مختل کند؛ یک بسته باینری کامل را در پوشهای تازه استخراج کنید.
سوالات متداول
آیا JMeter به نصبکننده نیاز دارد؟
معمولاً خیر. با نصب Java سازگار و استخراج بسته باینری، میتوانید ابزار را از پوشه bin اجرا کنید.
آیا JMeter بدون Java اجرا میشود؟
خیر. JMeter مبتنی بر Java است و به محیط اجرای سازگار نیاز دارد.
آیا برای نصب JMeter دسترسی مدیر لازم است؟
برای استخراج در پوشه کاربر معمولاً لازم نیست. نصب سراسری Java یا تغییر تنظیمات سیستمی ممکن است چنین دسترسیای بخواهد.
آیا میتوان تست بار را در رابط گرافیکی اجرا کرد؟
برای بررسی سناریو با بار کم میتوان از رابط گرافیکی استفاده کرد؛ اجرای اصلی تست بار بهتر است غیرگرافیکی باشد تا سربار نمایش نتایج کاهش یابد.
مدیریت سناریوها و نتایج تست با تستریل
نصب JMeter مشکل اجرای تست را حل میکند، اما تیم QA همچنان باید مشخص کند هر سناریو به کدام نیازمندی مربوط است، در چه ریلیزی اجرا شده و نتیجه آن چه بوده است. TestRail جایگزین موتور تولید بار JMeter نیست؛ کاربرد مرتبط آن، مدیریت تستکیسها، اجراها و ردیابی نتایج در فرایند کیفیت است.
برای نمونه، تیمی که کارایی فرایند ثبت سفارش را بررسی میکند، میتواند سناریو و معیار پذیرش را در تستکیس ثبت کند، اجرای مربوط به ریلیز را در Test Run یا Test Plan سازمان دهد و نتیجه ارزیابی گزارش JMeter را ثبت کند. این کار ارتباط نیازمندی، تست و ریلیز را روشنتر میکند.
تستریل تأمینکننده مستقل لایسنس رسمی TestRail و مجری استقرار آن در ایران است؛ مالکیت محصول متعلق به شرکت سازنده است. خدمات آن شامل تأمین لایسنس رسمی، استقرار Cloud یا Server، مهاجرت داده از اکسل یا ابزار قبلی، آموزش و پشتیبانی فارسی است. بر اساس مدل استقرار، دادهها میتوانند روی سرور سازمان یا ابر داخلی باقی بمانند.
اگر میخواهید سناریوها و نتایج تست از فایلهای پراکنده به فرایندی قابلپیگیری منتقل شوند، شروع کار با تستریل را بررسی کنید. از گزینه «مشاهده دمو» برای آشنایی با محیط و «درخواست برآورد» برای نیازسنجی استفاده کنید؛ پیشفاکتور مکتوب بر اساس مدل استقرار، تعداد کاربران و دوره لایسنس ارائه میشود.