JMeter چیست؟ + نصب و استفاده از نرمافزار JMeter
در این مقاله میخوانید
امروزه، فرایند ساخت و توسعه نرمافزار بسیار پرهزینه شده است؛ بههمیندلیل، تست نرمافزارها پیش از ورود رسمی به بازار، یکی از اولویتهای اصلی شرکتها و به عنصری جداییناپذیر از فرایند تولید آنها تبدیل شده است. دراینبین، نرمافزار JMeter یکی از بهترین ابزار برای تست برنامهها و اپلیکیشنهاست. در این مقاله از آموزش وب سرور بلاگ پارس پک، بهطورمفصل درباره JMeter صحبت خواهیم کرد؛ پس تا پایان با ما همراه باشید.
JMeter چیست؟
JMeter یکی از نرمافزارهای منبعباز و محبوب شرکت Apache است. این ابزار با زبان جاوا توسعه پیدا کرده است و در لینوکس و مک و ویندوز بهراحتی کار میکند. از این ابزار برای تست بار (Load Testing) و بررسی عملکرد نرمافزارها استفاده میشود. JMeter در ابتدا برای تست وباپلیکیشنها طراحی شده بود؛ ولی در مسیر توسعه برای بررسی سایر عملکردها بهبود پیدا کرده است.
خرید سرور از پارس پک
از این مقاله میتوانید برای مدیریت سرورهای خود استفاده کنید و اگر قصد خرید سرور پارس پک را دارید، میتوانید با کارشناسان فروش ما در ارتباط باشید. همچنین، میتوانید جهت کسب اطلاعات بیشتر به لینک زیر مراجعه کنید.
JMeter چکار میکند؟
از ابزار JMeter میتوان برای وباپلیکیشنهای پویا و استاتیک استفاده کرد. همچنین، با ایجاد شبیهسازی اِعمال بار سنگین روی یک سرور یا گروهی از سرورها و شبکهها، علاوهبر تست کلی میتوان عملکرد را در مقدار بارهای مختلف بررسی کرد.
مزایای JMeter چیست؟
- قابلیت انجام و بررسی تست روی انواع برنامهها و سرورها و پروتکلها مانند:
- Web – HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, …)
- SOAP / REST Web Services
- FTP
- Database via JDBC
- LDAP
- Message-oriented middleware (MOM) via JMS
- Mail – SMTP(S), POP3(S) and IMAP(S)
- Native commands or shell scripts
- TCP
- Java Objects
- قابلیت انجام تست IDE با تمام ویژگیها (از تست سریع طرح گرفته تا تولید و رفع خطاهای احتمالی)
- قابلیت CLI یا خط فرمان که امکان تست برای هر برنامه سازگار با جاوا را فراهم میکند
- ارائه گزارش کامل HTML
- امکان استخراج داده از اکثر فرمتهای محبوب نظیر HTML و JSON و XML یا هر فرمت متنی
- منبعباز و کاملاً بر بستر جاوا طراحی شده است
- قابلیت Full Multi-Threading (شبیهسازی استفاده چند کاربر بهصورت همزمان)
- امکان ذخیرهسازی و تجزیهوتحلیل آفلاین و اجرای مجدد نتایج تست
مقاله زیر مرور مفصلی بر وبسرور آپاچی و مقایسه آن با دیگر وبسرورهاست. آن را از دست ندهید.
مراحل نصب JMeter
درادامه، مراحل نصب این نرمافزار را گامبهگام بیان میکنیم.
گام اول: نصب جاوا
باتوجهبه اینکه JMeter برنامهای است که با زبان جاوا نوشته شده، برای استفاده از آن باید از نرمافزار JVM نسخه ۸ و جدیدتر استفاده کنید.
جدیدترین نسخه برنامه Java SE Development Kit را میتوانید نصب کنید. ازطریق خط فرمان، نصب موفق جاوا را بررسی کنید. درصورتیکه برنامه یادشده بهدرستی نصب شده باشد، این صفحه را خواهید دید:
گام دوم: دانلود JMeter
جدیدترین نسخه موجود در وبسایت این نرمافزار، نسخه ۵.۵ است که میتوانید هر جفتی که تمایل دارید، دانلود کنید.
گام سوم: نصب JMeter
نصب JMeter بسیار ساده است. کافی است فایل را در پوشه مدنظرتان از حالت فشرده خارج و فایل نصبی را را اجرا کنید. اگر از ویندوز استفاده میکنید، فقط کافی است فایل /bin/jmeter.bat را برای دسترسی به JMeter اجرا کنید.
بعد از آشنایی با نحوه نصب JMeter، بهسراغ قسمتهای مختلف این ابزار کاربردی میرویم.
عناصر JMeter
به هر جز از اجزای JMeter یک عنصر (Element) میگویند که هرکدام نیز برای هدف خاصی طراحی شدهاند. برخی از عناصر اصلی JMeter عبارتاند از: ۱. Thread Group؛ ۲. Samplers؛ ۳. Listeners؛ ۴. Configuration.
Thread Group .۱
به مجموعهای از Threadها میگویند که هرکدام نشاندهنده یک کاربر در برنامه تحتتست هستند. این عنصر با استفاده از شبیهسازی درخواستهای کاربر را مانند درخواست واقعی به سرور نشان میدهد.
این بخش به شما اجازه میدهد تعداد کاربران را مشخص کنید تا تست دقیقتری تجربه کنید. برای مثال، با تنظیم صد Thread نرمافزار هم صد کاربر را شبیهسازی میکند.
Samplers .۲
JMeter برای انجام تست از پروتکلهای مختلف مانند HTTP و FTP و JDBC پشتیبانی میکند. این گروهها درخواستهای کاربر (FTP ،HTTP و…) به سرور را شبیهسازی میکنند. درواقع، Thread Group به نمونهگیرها برای انتخاب نوع درخواستهایی (HTTP و FTP) که باید انجام شوند، کمک میکنند.
- درخواست FTP: برای تست عملکرد روی سرور FTP، میتوانید از نمونهگیر درخواست FTP در نرمافزار JMeter استفاده کنید. این کنترلر به شما اجازه میدهد یک درخواست آپلود یا دانلود به سرور FTP ارسال کنید.
- درخواست HTTP: با استفاده از این کنترلر در نرمافزار JMeter، میتوانید یک درخواست HTTP/HTTPS به وب سرور مدنظر ارسال کنید.
- درخواست JDBC: تست عملکرد پایگاه داده با این کنترلر اجرا میشود. این کار را با ارسال یک درخواست JDBC به پایگاه داده میتوان انجام داد.
- سمپلر BSF: این سمپلر امکان نوشتن نمونهای را با استفاده از زبان برنامهنویسی BSF فراهم میکند.
- سمپلر Access Log: با استفاده از این سمپلر، علاوهبر ایجاد درخواست HTTP، میتوانید با دسترسی به Logها آنها را بخوانید.
- سمپلر SMTP: برای ارسال ایمیل با پروتکل SMTP، از این سمپلر میتوان استفاده کرد.
Listeners .۴
این عناصر میتوانند نتایج اجرای تست را نشان و آنها را در قالبهای مختلف مانند نمودار، جدول، درختی یا فایل log ارائه دهند.
در این عنصر:
- زمانهای پاسخ سرور در گراف بهنمایش گذاشته میشوند.
- نمایش بهصورت درختی، درخواست کاربر را در قالب فرمت HTTP نمایش میدهد.
- خلاصهای از نتیجه تست را میتوان در قالب جدول مشاهده کرد.
- فایل لاگ نیز همان خلاصه نتایج را بهصورت فایل متنی ارائه میدهد.
Configuration .۵
با استفاده از این عنصر میتوان پیشفرضها و متغیرهایی را برای استفادههای بعدی تعیین کرد؛ ازجمله:
- داده پیکربندیشده CSV: با استفاده از این مجموعداده، میتوان پارامترهای مختلف یک فایل متنی را خواند. همچنین، برای خواندن خطوط تقسیمبندی به متغیرها استفاده میشود.
- مدیریت کوکی HTTP: کوکی HTTP مانند کاربرد کوکی در صفحات وب است. اگر درخواست HTTP حاوی کوکی باشد، این قسمت اطلاعات کوکی را برای استفادههای مجدد ذخیره میکند.
- پیشفرض درخواست HTTP: این عنصر به شما امکان میدهد مقادیر پیشفرضی را تنظیم کنید که کنترلکنندههای درخواست HTTP شما استفاده میکنند.
- عنصر پیکربندی ورود: عنصر پیکربندی ورود به شما امکان میدهد تنظیمات نام کاربری و رمزعبور را در نمونهگیرها اضافه یا لغو کنید.
آموزش کامل نصب و کانفیگ وبسرور آپاچی در لینوکس را در مقاله زیر بخوانید.
دو قسمت اصلی نرمافزار JMeter
نرم افزار JMeter از دو بخش اصلی تشکیل شده است:
- Test Plan
- Workbench
درادامه، هریک از این بخشها را توضیح میدهیم.
Test Plan .۱ چیست؟
یکی از مراحل مهم و ضروری راهاندازی هر نرمافزاری تست عملکرد آن است. در این تست، بررسی میشود که نرمافزار زیر فشار چه واکنشی نشان میدهد: به کار خود ادامه میدهد یا دچار مشکل میشود. رویهمرفته، میتوان گفت که Test Plan برای بررسی سرعت، قابلیت اطمینان، زمان پاسخدهی و میزان مصرف منابع انجام میشود. هدف نهایی این تست شناسایی و حل مشکلات احتمالی هنگام استفاده از نرمافزار است. نرمافزار JMeter جایی است که عناصر موردنیاز برای تست را اضافه میکنیم. تمام عناصر (ThreadGroup و Timers) و تنظیمات مربوط به آنها برای انجام تست مانند تصویر زیر ذخیره میشوند.
Workbench .۲ چیست؟
مکانی برای ذخیره موقت عناصر تست است و نرمافزار JMeter محتویات آن را ذخیره نمیکند.
سه معیار مهم در تست عملکرد
- تست سرعت: اینکه زمان پاسخدهی مطابق با پیشبینیهاست یا خیر؟
- توانایی پاسخدهی به درخواستها: حداکثر توانایی به درخواستهای کاربر چقدر است؟
- پایداری: برنامه چه میزان فشار را میتواند تحمل کند؟
چرا باید تست عملکرد را انجام دهیم؟
این تست برای شناسایی و رفع گلوگاههای (Bottlenecks) عملکردی نرمافزار استفاده میشود. درواقع، بهجای شناسایی مشکلات، تمام آنها را کاملاً رفع میکند. با انجام تست JMeter، توسعهدهندگان میتوانند قبل از ارائه به بازار و دریافت بازخورد منفی کاربران، ابعاد مختلف نرمافزار را بررسی و مشکلات احتمالی را حل کنند.
شش نوع تست عملکرد
۱. تست بار (Load Testing)
تست یک برنامه در حالت عادی و در حالتی است که بیشترین فشار روی نرمافزار قرار دارد. در این مرحله، عملکرد براساس زمان پاسخدهی و پایداری در حالتهای مختلف سنجیده میشود.
۲. تست حجم (Volume Testing)
در این تست، حجم زیادی اطلاعات وارد پایگاه داده و عملکرد نرمافزار دررابطهبا توانایی دریافت حجم داده بررسی میشود.
۳. تست استرس (Stress Testing)
با انجام این تست، میتوان مقدار تحمل بار هر سرور را اندازهگیری کرد.
۴. تست ظرفیت (Capacity Testing)
این تست باتوجهبه پیشبینی توسعهدهنده از میزان استفاده حداکثری از نرمافزار انجام میشود.
۵. تست اطمینان (Reliability Testing)
با انجام این تست، متوجه میشویم که نرمافزار پس از تحمل فشار زیاد به حالت عادی کارکرد خود برمیگردد یا خیر و بهطورمیانگین چقدر طول میکشد تا این فرایند انجام شود.
۶. تست مقیاسپذیری (Scalability Testing)
با این تست مشخص میشود که احتمال توسعه نرمافزار بعد از عرضه به بازار چقدر است.
چگونه عناصر را اضافه کنیم؟
اساسیترین دستور برای انجام تست نرمافزار افزودن عناصر است؛ زیرا بدون این عناصر نرمافزار JMeter نمیتواند تست را اجرا کند. هر برنامه تست شامل عناصری همچون Listeners و Samplers است. شما میتوانید با کلیکراست روی Test Plan و انتخاب عنصر جدید از قسمت Add، عناصر جدید را بسازید. فرض کنید دو عنصر Java Request Default و BeanShell Assertion را میخواهید اضافه کنید:
- Right click Test Plan -> Add -> Assertion-> Bean Shell Assertion
- Right click Test Plan -> Add -> Config Element -> Java Request Default
همچنین، عناصر بدون کاربرد را میتوانید حذف کنید. بهعنوان مثال، برای حذف عنصر HTTP Request Defaults این مسیر را ادامه دهید:
- Right click HTTP Request Defaults -> Remove-> Yes
بارگذاری و ذخیره عناصر
۱. چطور فایل JMX را ایجاد کنیم؟
برای نمونه، عنصری به نام BeanShell Assertion را قبلاً اضافه کردهایم و حالا میخواهیم ذخیره کنیم.
Right click BeanShell Assertion -> select Save Selection As
در کادر نمایشدادهشده، روی دکمه Save کلیک کنید. نام پیشفرض فایل BeanShell Assertion.jmx است که درصورت تمایل، میتوانید نامهای دیگری را انتخاب کنید. این عناصر با پسوند jmx (مخفف Java Management Extensions) است.
۲. چطور فایل JMX را اجرا کنیم؟
آپلود عناصری که ازقبل ایجاد شدهاند، باعث صرفهجویی در زمان برای ایجاد و پیکربندی عناصر جدید میشوند. اگر عنصری به نام Java Request Default در قسمت Test Plan داشته باشیم، برای
Right-click Java Request Defaults-> select Merge-> select BeanShell Assertion.jmx.
و این فایل به Test Plan اضافه میشود.
اگر میخواهید با نحوه کار و تفاوت عملکرد وب سرورها با یکدیگر بیشتر آشنا شوید، مقاله زیر را از دست ندهید.
نحوه پیکربندی عناصر
برای این منظور، باید در ابتدا عنصر مدنظر را از زیرمجموعه Test Plan در سمت چپ نرمافزار انتخاب و درادامه با بازشدن صفحه جدید در سمت راست، تنظیمات پیکربندی را وارد کنید.
۱. نحوه ذخیره Test Plan
قبل از اجرای تست، باید Test Plan را ذخیره کنید تا از خطاهای غیرمنتظره در هنگام اجرای تست جلوگیری شود. برای این کار کافی است:
- روی File کلیک و سپس گزینه Save Test Plan as را انتخاب کنید.
- نام فایل را انتخاب و روی دکمه Save کلیک کنید.
توجه کنید که ذخیره Test Plan با ذخیره برنامه متفاوت است. درحالیکه Test Plan از یک یا چند عنصر ساخته شده است و با ذخیره آن تمام این عناصر ذخیره میشوند، ذخیره عنصر بهعنوان جزء اساسی نرمافزار JMeter، تنها به خودش مربوط میشود.
۲. ترکیب چند Test Plan
با ادغام چند Test Plan، میتوان طرح تست ترکیبی ساخت. فرض کنید فایلی به نام Test_Fragment.jmx در Test Plan دارید که آن را با Test Plan قبلی میتوانید ادغام کنید. برای انجام این کار، کافی است روی Test Plan کلیکراست و بعد از کلیک روی Merge، فایل Test_Fragment.jmx را انتخاب کنید. حالا تمام عناصر موجود در این فایل به Test Plan قبلی اضافه شده است.
۳. نحوه اجرای Test Plan
برای اجرای Test Plan، روی دکمه استارت در قسمت منو کلیک یا از کلیدهای ترکیبی Control + R استفاده کنید. موقعی که نرمافزار JMeter در حال اجراست، کادر سبزرنگ کوچکی در سمت راست نوار منو دیده میشود.
با تقسیم تعداد Threadهای فعال به تعداد کل آنها، عددی بهدست میآید که در سمت چپ کادر سبزرنگ دیده میشود. برای توقف تست، روی دکمه Stop کلیک یا از میانبر Ctrl + استفاده کنید.
جمعبندی
در این مطلب از آموزش برنامه نویسی، JMeter را معرفی کردیم و نحوه کار و اجرای تستها را توضیح دادیم. همانطورکه متوجه شدید، JMeter یکی از ابزارهای محبوب و پرکاربرد در بین توسعهدهندگان برای سنجیدن عملکرد درست نرمافزارهاست. امیدواریم با استفاده از این ابزار تجربه بهتری از توسعه نرمافزارها کسب کنید.
سؤالات متداول
۱. ابزار JMeter چه کاربردهایی دارد؟
Apache JMeter بهعنوان برنامه جاوا منبعباز برای تست تحمل فشار و سنجش عملکرد نرمافزار طراحی شده است. این ابزار در ابتدا برای تست برنامههای وب طراحی شده بود؛ ولی درادامه توسعه یافت و به ابزاری قدرتمند برای تست نرمافزار تبدیل شد.
۲. JMeter چیست و چگونه کار میکند؟
Apache JMeter ابزار تستی است که برای تجزیهوتحلیل و اندازهگیری عملکرد خدمات و محصولات نرمافزاری مختلف بهکار گرفته میشود. از این نرمافزارِ مبتنیبر جاوا برای تست برنامههای وب یا FTP استفاده میکنند.
۳. آیا JMeter ابزاری خودکار است؟
بله، تعداد زیادی ابزار تست خودکار برای بررسی و تست عملکرد نرمافزارها وجود دارد که Apache JMeter یکی از ابزارهای برتر برای انجام این کار است.
۴. کدام زبان در JMeter استفاده میشود؟
از زبان Groovy بهعنوان زبان برنامهنویسی JMeter استفاده میشود. Groovy ثابت کرده است که ازنظر عملکرد، زبانی قدرتمند و درعینحال سبک است و تأثیر زیادی بر بهبود نرمافزار JMeter میگذارد.
۵. آیا نرمافزار JMeter به کدنویسی نیاز دارد؟
یکی از مزایای مهم JMeter این است که به داشتن مهارت کدنویسی نیازی ندارد.
۶. یادگیری JMeter چقدر طول میکشد؟
مانند هر مهارت دیگری، سرعت یادگیری JMeter به زمان و تلاش شما بستگی دارد. بهطورمیانگین اگر در هفته ۵ ساعت وقت بگذارید، عناصر اساسی موردنیاز برای اجرای تست را میتوانید یاد بگیرید.