تست عملکرد با استفاده از JMeter

نوشته شده توسط :
تست عملکرد با استفاده از JMeter

تست عملکرد برای تعیین اینکه آیا درخواست ارسالی به وب یا اپلیکیشن تحت تست توانایی مورد نیاز برای بار یا لود سنگین را تامین می کند، این نکته بسیار مهم است. نتیجه این تست می تواند برای تجزیه و تحلیل عملکرد کلی سرور تحت بار سنگین مفید باشد.

 

ابزار آزمون JMeter مزایای زیر را در تست عملکرد ارائه می دهد :
• JMeter می تواند برای تست عملکرد از هر دو منبع استاتیک مانند جاوا اسکریپت و HTML و همچنین منابع پویا مانند JSP، Servlets و AJAX استفاده شود.
• JMeter می تواند حداکثر تعداد کاربران همزمان که وب سایت شما بتواند اداره کند، کشف کند.
• JMeter انواع تجزیه و تحلیل گرافیکی از گزارش عملکرد را فراهم می کند.

 

تست عملکرد JMeter شامل موارد زیر است:

 تست بار (Load Testing): روشی برای مدل سازی استفاده همزمان با شبیه سازی دسترسی چند کاربر به سرویس های وب است.  تست استرس (Stress Testing): هر وب سرور دارای حداکثر ظرفیت بار است. هنگامی که بار فراتر از حد می رسد، سرور وب به آرامی پاسخ می دهد و خطاها را تولید می کند. هدف از تست استرس یافتن بار حداکثر که وب سرور می تواند اداره کند. 

 

 شکل زیر نشان می دهد که چگونه JMeter بار سنگین را شبیه سازی می کند:

 

 

ایجاد Test Plan برای تست عملکرد در Jmeter .

در این آموزش، ما یک تست عملکرد برای سایت Google.com با 1000 کاربر انجام می دهیم

قبل از تست عملکرد ، باید تعیین کنیم :

بار معمولی: میانگین تعداد کاربران از وب سایت شما بازدید می کند بار سنگین: حداکثر تعداد کاربران از وب سایت شما بازدید می کنند هدف شما در این آزمون چیست؟


در زیر نقشه راه این مثال عملی آمده است.

 

مرحله 1) اضافه کردن گروه موضوع (Thread Group)      اجرای برنامه  JMeter      انتخاب Test Plan      اضافه کردن گروه موضوعی(Thread Group)

راست کلیک بر روی Test Plan و اضافه کردن یک گروه جدید موضوع (Thread Group):

Add -> Threads (Users) -> Thread Group


      
    در کنترل پنل Thread Group ، قسمت Properties را به صورت زیر پر کنید:

 

Number of Threads: (تعداد کاربرانی که به وب سایت هدف متصل می شوند)=100 Loop Count : (مقدار زمان برای اجرای آزمون)=10 Ramp-Up Period : Ramp-Up Period مدت زمانی تا قبل از شروع کاربر بعدی تاخیر می یابد. برای مثال، اگر ما 100 کاربر و یک دوره 100 ثانيه Ramp-Up داشته باشیم، تاخیر بین کاربران برای شروع شودن 1 ثانیه است (100 کاربر / 100 ثانیه)= 100

 

در شکل زیر تفاوت Counts Thread و Loop Counts می توانید ببینید:

 

 

 

مرحله 2) اضافه کردن عناصر JMeter

در این قسمت عناصر مورد نیاز برای تست را در JMeter تعیین می کنیم.

 

HTTP request Default :

این عنصر را می توان با کلیک راست بر روی Group Thread و و انتخاب مسیر زیر اضافه نمود :

Add -> Config Element -> HTTP Request Defaults.

 

 

در قسمت کنترل پنل HTTP Request Defaults، نام وب سایت تحت آزمایش را وارد کنید

برای مثال : (http://www.google.com)

 

HTTP Request :

راست کلیک کنید Thread Group بر روی و انتخاب کنید از مسیر زیر :

Add -> Sampler -> HTTP Request.

 

 

در کنترل پنل HTTP Request ، فیلد Path نشان می دهد که کدام URL یا مسیر سرور Google از طریق درخواست شما ارسال می شود.

 

 

  به عنوان مثال، اگر شما در فیلد Path  مقدار "calendar" را وارد کنید. JMeter درخواستURL شما را به صورت http://www.google.com/calendar به سمت سرور Google ایجاد می کند.

 

 

اگر فیلد field را خالی نگه دارید، JMeter به مسیر درخواستی را به صورت URL request http://www.google.com را به سرور گوگل ایجاد می کند.

در این تست، فیلد field را خالی بگذارید تا JMeter درخواست URL را به http://www.google.com را به سرور Google ایجاد کند.

 

مرحله 3) اضافه کردن گراف نتیجه (Graph result) :

JMeter می تواند نتیجه تست را در قالب نمودار نشان دهد.

برای این موضوع با کلیک راست روی Test Plan و از مسیر زیر می توانید اقدام نمایید :

Add -> Listener -> Graph Results

 

 

مرحله 4) تست را اجرا کنید و نتیجه تست را ببینید :

در نوار ابزار برای شروع فرایند تست نرم افزار دکمه Run را فشار دهید (Ctrl + R) و نتایج تست را بر روی نمودار در زمان اجرا مشاهد نمایید.

تصویر زیر نمودار یک طرح آزمایشی را ارائه می دهد که ما 100 کاربران را که در وب سایت www.google.com دسترسی داشتند، شبیه سازی کردهایم.

 

 

 

در پایین تصویر بالا، آمار که یا رنگ ها نشان داده شده است:

سیاه: تعداد کل نمونه های فعلی ارسال شده است. آبی: میانگین کنونی نمونه های ارسال شده. قرمز: انحراف استاندارد فعلی. سبز: میزان تولیدی که نشان دهنده تعداد درخواست ها در هر دقیقه به سرور است.

 

 اجازه دهید عملکرد سرور گوگل را در شکل زیر تحلیل کند.

 

برای تجزیه و تحلیل عملکرد وب سرور تحت آزمون، شما باید بر روی 2 پارامتر تمرکز کنید

توان عملیاتی Throughput انحراف Deviation

کارآیی (توان عملیاتی Throughput) مهمترین پارامتر است. این نشان دهنده توانایی سرور برای بارگذاری لود سنگین است. هرچه تراکم بالاتر باشد، عملکرد سرور بهتر است.

در این تست، کارآیی (توان عملیاتی Throughput) سرور google 1491163بردقیقه است. این بدان معنی است که سرور گوگل می تواند 1491163 درخواست در دقیقه را انجام دهد. این مقدار مناسبی است بنابراین می توان نتیجه گرفت که سرور گوگل عملکرد خوبی دارد.


انحراف را با رنگ قرمز نشان داده شده است - این نشان دهنده انحراف از میانگین است. اگر کوچکتر باشد بهتر است.

اجازه دهید عملکرد سرور گوگل را به سرور دیگر مقایسه کنیم. این نتیجه تست عملکرد وب سایت http://www.yahoo.com/ (شما می توانید سایر وب سایت را نیز مورد تست قرار دهید.)

 

 

کارآیی (توان عملیاتی Throughput) وب سایت تحت تست http://www.yahoo.com 867.326 بردقیقه است. این بدین معنی است که این سرور 867.326 درخواست در هر دقیقه می تواند انجام دهد،و این مقدار کمتر از گوگل است.

انحراف آن 2689 می باشد، بسیار بالاتر از گوگل (577) است. بنابراین ما می توانیم عملکرد این وب سایت را کمتر از سرور گوگل تعیین کنیم.

 

 

نکته: مقادیر بالا به عوامل متعددی مانند بار سرور فعلی در گوگل، سرعت اینترنت شما، قدرت CPU شما و غیره بستگی دارد. از این رو، بسیار بعید است که شما نتایج مشابه بالا دریافت کنید. پس نترسید!

 

 

عیب یابی (Troubleshooting):

اگر در حین اجرای سناریوی فوق با مشکل مواجه شوید ... موارد زیر را انجام دهید:

بررسی کنید که آیا از طریق یک پروکسی به اینترنت متصل هستید. اگر بله، پروکسی را حذف کنید. یک نمونه جدید Jmeter باز کنید. PerformanceTestPlan.jmx را در Jmeter باز کنید. دابل کلیک کنید روی Thread Group -> Graph Resul تست را اجرا کنید.

 

 

* درسهای آموزش JMeter :

مقدمه ای بر JMETER

چگونه نصب JMETER در چند مرحله ساده

مرجع کامل اجزائ (ELEMENT ) در JMETER

کار با محیط JMETER (رابط کاربری)...

تست عملکرد با استفاده از JMETER