معرفی ابزار Jmeter

سلامدر این پست میخواهیم ابزار Jmeter که یکی از محبوب ترین ابزار های load testing/stress testing هست را به شما معرفی کنیم و یک سناریوی ساده را تست کنیم . در این پست ابتدا سراغ نصب jmeter رفته و بعد از آن با محیط نرم افزار اشنایی کلی پیدا میکنیم و در اخر هم یک سناریو واقعی ساده را تست خواهیم کرد.معرفی jmeterاین ابزار یکی از محبوب ترین ابزار های load testing/ stress testing عه که زیرمجموعه بنیاد آپاچی و متن باز است. این ابزار با زبان جاوا توسعه داده شده و بر روی انواع سیستم عامل ها و پلتفرم های نرم افزاری قابل اجراست و میتوان با جستجو آن را در github پیدا و از بهبود های آن مطلع شد . با استفاده از این نرم افزار می‌توان سناریو هایی گوناکون تست بار و کارایی را با استفاده از گزینه های متنوع و سناریو های قابل شخصی سازی که نرم افزار در اختیار ما قرار می‌دهد اجرا نمود.این ابزار علاوه بر توانایی تست وب سایت ها ، میتواند انواع وب سرویس ها (SOAP,REST ) و LDAP,FTP,TCP و... را داشته باشد . از خصوصیات این ابزار میتوان به cross-platform بودن ، اجرا به صورت multi-thread ، سیستم کش قوی و قابلیت شخصی سازی بسیار بالای هسته اشاره کرد .نصب ابزار و راه اندازیاین ابزار یک ابزار جاوایی است که میتواند در تمامی سیستم های نرم افزاری که از جاوا پشتیبانی میکنند اجرا شود . لازم به ذکر است این نرم افزار جهت اجرا به نسخه جاوای ۸ یا بالاتر نیاز دارد .جهت نصب آن در سیستم عامل مک میتواند از homebrew استفاده کرد و با دستور زیر اقدام به نصب نرم افزار نمود. $ brew install jmeter همچنین در سیستم عامل ویندوز نیز می‌توان آخرین نسخه production برنامه را دانلود و با استفاده از فایل jmeter.bat در خط فرمان‌، افزار را اجرا کرد .در صورت اجرای این فایل محیط گرافیکی نرم افزار اجرا می‌گردد . همچنین در محیط مک میتوان در خط فرمان دستور jmeter را تایپ کرددر صورتی که جاوا نسخه ۸ یا بالاتر به صورت صحیح در سیستم نصب شده باشد ، در اجرای نرم افزار مشکلی وجود نخواهد داشت .اجرای ابزار در خط فرمان مک پس از اجرای نرم افزار در خط فرمان مک صفحه گرافیکی آن همانند تصویر زیر به اجرا در می‌آید. لازم به ذکر است همانطور که در تصویر بالا مشهود است ، از محیط GUI نباید به منظور تست بار استفاده کرد و محیط گرافیکی فقط به منظور طراحی تست ها و Debugging قابل استفاده است.محیط کاربری ابزار jmeterمحیط کاربری نرم افزار در تصویری که در بالا قابل مشاهده است محیط کاربری نرم افزار نشان داده شده است. در قسمت سمت چپ test plan یا نقشه تست مورد نظر قرار دارد که میتوان با شخصی سازی یا استفاده از template های آماده نرم افزار المان هایی را به آن اضافه کرد . ایکون دوم از سمت چپ که به رنگ سبز است و در تصویر بالا قابل مشاهده است ، شامل template های آماده نرم افزار جهت تست های مختلف است . با کلیک بر روی این دکمه template های اماده به جهت سهولت در طراحی نقشه تست نشان داده خواهد شد .گزینه های مختلف جهت انتخاب template برنامه در نوار ابزار بالا ، تعدادی گزینه دیگر وجود دارد که در نرم افزار های مشابه مرسوم هستند مانند دکمه کپی ، دکمه ذخیره سازی و... همچنین دکمه مثلث سبز رنگ به منظور اجرای نقشه تست است و نیز گزینه toggle به منظور غیر فعال کردن تمام المان های فعال و فعال کردن تمام المان های غیر فعال به کار می‌رود .در تصویر بالا زمان نشان داده شده ،زمان اجرای تست است . و عدد نشان داده شده کنار علامت خطر نشان دهنده هشدار هایی است که در حین تست به وجود امده است . . همچنین عدد ۰/۰ نشان دهنده تعداد thread های تعریف شده در برنامه و تعداد thread هایی است که در حال حاضر اجرا شده است. ایکون سمت راست نیز مربوط به صفحه مدیریت پلاگین های نرم افزار است .با راست کلیک بر روی نقشه تست میتوان انواع المان های مختلف را به نقشه تست اضافه کرد . جهت طولانی نشدن این نگاره از توضیحات بیشتر خودداری می‌شود . در صورت علاقه میتوانید از طریق این لینک به واکاوی انواع المان ها و نحوه کارکرد هر کدام بپردازید. نکته مهم در این نقشه تست این است که المان های تعریف شده به ترتیب تعریف ، اجرا می‌گردند و ترتیب در تعریف المان ها اهمیت دارد . به عنوان مثال اگر میخواهیم قبل از درخواست زدن به صفحه اصلی ، به صفحه ورود درخواست بزنیم ، میبایست المانی که مربوط به درخواست به صفحه لاگین است ، در درخت نقشه تست بالا تر است المانی باشد که مربوط به درخواست به صفحه اصلی است .اجرای یک سناریو تست حال برای اشنایی بیشتر با ابزار Jmeter میخواهیم یک سناریو تست تحت وب را پیاده سازی کنیم .سناریوی تست به این صورت است که میخواهیم تعدادی درخواست با ۵ کاربر (Thread) را با تاخیر یک ثانیه ای به وبسایت apache.org ارسال کنیم . برای این کار در قسمت template گزینه Building A Web Test Plan را انتخاب می‌کنیم . پس انتخاب این گزینه قسمت Test Plan به شکل تصویر زیر در می‌آید.همانطور که در تصویر بالا مشهود است زیر درخت Scenario 1 شامل درخواست های از پیش تعیین شده است . المان HTTP Request Defaults شامل درخواستی است که به صورت پیشفرض به وبسایت مورد نظر فرستاده می‌شود . HTTP cookie Manager شامل جزئیات کوکی هایی است که در درخواست ها فرستاده می‌شود .و همچنین HTTP Header Manager شامل جزئیات سرآیند درخواست هایی است که قرار است فرستاده شوند. و سه المان بعدی خود درخواست هایی است که به سمت هدف فرستاده می‌شوند .همچنین View Result Tree شامل جزئیات و نتایجی است که از ارسال درخواست ها به دست امده است .همانطور که در تصویر بالا مشخص است ، با کلیک بر روی Scenario پارامتر های کلی و پارامتر های مرتبط با Thread های برنامه و اینکه تست با چه تعداد کاربر انجام شود قابل مشاهده است . همچنین پارامتر Ramp-up معین می‌کند که ظرف مدت چند ثانیه سیستم به حداکثر Thread های تعریف شده خود برسد و همچنین پارامتر Duration معین می‌کند که تست چقدر طول بکشد .در بخش HTTP Request Defaults میتوان آدرس سرور به همراه پورت و پروتکلی که میخواهیم عملیات تست را بر روی انجام دهیم مشخص می‌شود . در این صفحه ادرس هدف را برابر با apache.org قرار می‌دهیم.در صفحه HTTP Request نیز اطلاعات درخواستی که قرار است به سمت سرور ارسال شود تکمیل می‌شود. در این قسمت میتوان متد ارسال‌، پورت ، پارامتر ها و پروتکل و همچنین مسیر درخواست را مشخص کرد. همچنین در زیر درخت Home Page گزینه Assertion را همانند تصویر زیر مقدار دهی می‌کنیم.در این قسمت تیک گزینه Response Code را فعال کرده و یک الگو که شامل عدد ۲۰۰ است را در ان قرار می‌دهیم . این به این معنا است که در بازدید از صفحه apache.org انتظار داریم Response Code برابر با ۲۰۰ را ببینیم . حال با کلیک بر روی مثلث سبز تست را اجرا می‌کنیم .با اجرا کردن تست ها و باز کردن منوی View Result Tree به تصویر زیر می‌رسیم. تیک سبز کنار صفحات به این معنی است که تست ها با موفقیت اجرا شده و Assertion مورد انتظار ما به درستی صحت سنجی شده است . همچنین میتوانیم انواع دیگری از گزارش ها را در این نرم افزار مشاهده نماییم . لازم به ذکر است ابزار Jmeter از یک Proxy داخلی بهره مند است که جهت تعیین پارامتر های مورد نیاز جهت تست سودمند است . در این مقاله سعی شد تا اشنایی کوتاهی با ابزار بسیار کاربردی Jmeter به دست امده باشد . امیدواریم این مقاله برای شما مفید واقع شده باشد .این مقاله تمرین درس اشکال زدایی دانشگاه شهید بهشتی است و جهت انتشار محتوای فارسی بیشتر به نگارش در امده است