آشنایی با Jmeter

این ابزار یکی از حرفه ای ترین ابزارهای تست هست که سه تا از مشخصات نرم افزارهای محبوب من رو داره:اول اینکه Opensource هستدوم اینکه رایگان هستسوم هم توی سیستم عامل های مختلف قابل نصب و اجرا هستJmeter چیستاکثر مواقعی که وب سرور راه اندازی می کنم، یک بار با Jmeter سرور رو تست می گیرم تا بدونم که چند تا کاربر همزمان میتونن سایت رو ببینند.با Jmeter ما می تونیم پروتکل های زیاد از جمله HTTP، SMTP ، LDAP و FTP رو تست کنیم، حتی می تونیم با JDBC یک سرور دیتابیس رو تست کنیم.لیست listener های Jmeterاجزاء Jmeter تصمیم گرفتم بخاطر وابستگی زیادی که قسمت های مختلف Jmeter بهم دارن، دو قسمت اصلی یعنی Test plan و thread group رو انتها معرفی کنم که مفاهیم رو بهتر متوجه بشیم. Samplers از سمپلرها برای این که ریکوئست بزنیم به سرور مقصد استفاده می کنیم ، که بالاتر توضیح دادم میتونیم ریکوئست های مختلف بزنیم.سمپلری که برای ارسال درخواست HTTP استفاده می کنیم اسمش هم به همین نام هست HTTP RequestListenersبا استفاده از Listener ها،‌نتیجه کل جوابهایی که از سرور گرفتیم رو میتونیم مشاهده کنیم.بهمون کمک میکنه به شکل های مختلف خروجی رو ترسیم کنیم و یک گزارش خوب از سرور داشته باشیم.انواع Listener هاکارآمد ترین Listener ها برای من این سه تا هستن:- View Results Tree- Summary Report- Graph ResultsAssertionsاز Assertions ها برای این استفاده می کنیم که مطمئن بشیم Response برگشتی از سرور درست هست یا نهکه بر اساس همین قسمت، توی Samplers میتونیم اطلاعات دقیق تری داشته باشیم.بیشترین استفاده رو از Response Assertion داشتم که میتونه اجزاء مختلف ریسپانس برگشتی از سرور مقصد رو چک کنه و بر اساس اون بهمون بگه که هر ریکوئست ما به سرور جواب درستی گرفته یا نهفیلدهایی مثل Response code که وقتی Sampler ما http request باشه این Response code میشه یکی از همون http response code های معروف (۲۰۰و۴۰۴و۵۰۰و...)یکی از دیگه از Assertion های خوبی که داریم هم Duration Assertion هست، که مدت زمانی که یک سرور پاسخ میدهد رو به عنوان فاکتور تایید صحت کارکرد استفاده می کنهمثلا سرور API من نیاز هست حداکثر ۲ ثانیه جواب به کاربر بدهد و بیشتر از ۲ ثانیه رسما هیچ کارایی ندارد.پس از Duration Assertion استفاده می کنم و مقدار Duration in miliseconds رو ۲۰۰۰ میلی ثانیه می دم.تصویری از Response Assertion Timerاز تایمر برای تاخیر انداختن بین Sampler ها استفاده میشه انواع مختلفی هم داره مثل Constant timer که یک تایم ثابت بین هر ریکوئست وقفه میندازه یا Gaussian Random Timer که یک زمان شانسی برای وقفه بین هر Request در نظر میگیرهانواع تایمرها در JmeterThread groupمهمترین قسمت تست ما همین Thread group هست، که نقطه شروع تست هم محسوب می شود.توی این قسمت میتونیم تعداد Thread ها که همون کاربرهای مجازی هستند رو تعریف کنیم، شیب اضافه شدن کاربرها و تعداد دفعاتی که تست اجرا بشه رو تعریف کنیم.تمام Controller ها و Sampler ها باید زیر thread group باشند.بقیه المنت ها مثل Listener ها میتونن مستقیما زیر Test Plan تعریف بشوند.Test Planهمونطور که از اسمش معلوم هست پلن تست رو توی این قسمت طراحی می کنیم، درواقع تمام مراحل تست که باید JMeter انجام بده، تمام مواردی که قبلا معرفی کردم باید داخل Test Plan تعریف بشه.تنظیمات مربوط به Test Planاگر توی کل تست نیاز باشه از کتابخانه ها یا متغییرهای مختلفی استفاده کنیم توی Test Plan باید اضافشون بکنیم.یک گزینه مهم که توی Test Plan هست استفاده از حالت Functional Test mode هست، توی این حالت دیتای مربوط به ریسپانس ها و سمپلرها ذخیره میشه که از نظر پرفورمنس سرعت کمتری نسبت به حالت عادی داره. اطلاعات کاملتر درباره تست پلن رو توی این صفحه های سایت آپاچی ببینید:build-test-plan.htmltest_plan.htmlلطفا اگر چیزی جا افتاده بود یا نیازی بود چیزی رو بیشتر توضیح بدم و نظر خاصی داشتید حتما کامنت بذاریدممنونم