این ابزار یکی از حرفه ای ترین ابزارهای تست هست که سه تا از مشخصات نرم افزارهای محبوب من رو داره:

اکثر مواقعی که وب سرور راه اندازی می کنم، یک بار با Jmeter سرور رو تست می گیرم تا بدونم که چند تا کاربر همزمان میتونن سایت رو ببینند.
با Jmeter ما می تونیم پروتکل های زیاد از جمله HTTP، SMTP ، LDAP و FTP رو تست کنیم، حتی می تونیم با JDBC یک سرور دیتابیس رو تست کنیم.

تصمیم گرفتم بخاطر وابستگی زیادی که قسمت های مختلف Jmeter بهم دارن، دو قسمت اصلی یعنی Test plan و thread group رو انتها معرفی کنم که مفاهیم رو بهتر متوجه بشیم.
از سمپلرها برای این که ریکوئست بزنیم به سرور مقصد استفاده می کنیم ، که بالاتر توضیح دادم میتونیم ریکوئست های مختلف بزنیم.
سمپلری که برای ارسال درخواست HTTP استفاده می کنیم اسمش هم به همین نام هست HTTP Request
با استفاده از Listener ها،نتیجه کل جوابهایی که از سرور گرفتیم رو میتونیم مشاهده کنیم.
بهمون کمک میکنه به شکل های مختلف خروجی رو ترسیم کنیم و یک گزارش خوب از سرور داشته باشیم.

کارآمد ترین Listener ها برای من این سه تا هستن:
- View Results Tree
- Summary Report
- Graph Results
از Assertions ها برای این استفاده می کنیم که مطمئن بشیم Response برگشتی از سرور درست هست یا نه
که بر اساس همین قسمت، توی Samplers میتونیم اطلاعات دقیق تری داشته باشیم.
بیشترین استفاده رو از Response Assertion داشتم که میتونه اجزاء مختلف ریسپانس برگشتی از سرور مقصد رو چک کنه و بر اساس اون بهمون بگه که هر ریکوئست ما به سرور جواب درستی گرفته یا نه
فیلدهایی مثل Response code که وقتی Sampler ما http request باشه این Response code میشه یکی از همون http response code های معروف (۲۰۰و۴۰۴و۵۰۰و...)
یکی از دیگه از Assertion های خوبی که داریم هم Duration Assertion هست، که مدت زمانی که یک سرور پاسخ میدهد رو به عنوان فاکتور تایید صحت کارکرد استفاده می کنه
مثلا سرور API من نیاز هست حداکثر ۲ ثانیه جواب به کاربر بدهد و بیشتر از ۲ ثانیه رسما هیچ کارایی ندارد.
پس از Duration Assertion استفاده می کنم و مقدار Duration in miliseconds رو ۲۰۰۰ میلی ثانیه می دم.

از تایمر برای تاخیر انداختن بین Sampler ها استفاده میشه
انواع مختلفی هم داره مثل Constant timer که یک تایم ثابت بین هر ریکوئست وقفه میندازه یا Gaussian Random Timer که یک زمان شانسی برای وقفه بین هر Request در نظر میگیره

مهمترین قسمت تست ما همین Thread group هست، که نقطه شروع تست هم محسوب می شود.
توی این قسمت میتونیم تعداد Thread ها که همون کاربرهای مجازی هستند رو تعریف کنیم، شیب اضافه شدن کاربرها و تعداد دفعاتی که تست اجرا بشه رو تعریف کنیم.
تمام Controller ها و Sampler ها باید زیر thread group باشند.
بقیه المنت ها مثل Listener ها میتونن مستقیما زیر Test Plan تعریف بشوند.
همونطور که از اسمش معلوم هست پلن تست رو توی این قسمت طراحی می کنیم، درواقع تمام مراحل تست که باید JMeter انجام بده، تمام مواردی که قبلا معرفی کردم باید داخل Test Plan تعریف بشه.

اگر توی کل تست نیاز باشه از کتابخانه ها یا متغییرهای مختلفی استفاده کنیم توی Test Plan باید اضافشون بکنیم.
یک گزینه مهم که توی Test Plan هست استفاده از حالت Functional Test mode هست، توی این حالت دیتای مربوط به ریسپانس ها و سمپلرها ذخیره میشه که از نظر پرفورمنس سرعت کمتری نسبت به حالت عادی داره.
اطلاعات کاملتر درباره تست پلن رو توی این صفحه های سایت آپاچی ببینید:
لطفا اگر چیزی جا افتاده بود یا نیازی بود چیزی رو بیشتر توضیح بدم و نظر خاصی داشتید حتما کامنت بذارید
ممنونم