جمعه , ۷ اردیبهشت ۱۴۰۳

آموزش JMeter-قسمت دهم: Test Plan و Tread Groupها

Jmeter Tutorial
Jmeter Tutorial

 ما طی این پست و چند پست آتی به تشریح بخش‌های مختلف یک Test Plan خواهیم پرداخت. می‌توانید دسته‌بندی تمام بخش‌ها را از اینجا ببینید.

یک تست حداقلی شامل یک Test Plan، یک Test Group و یک یا چند Sampler است.

Test Plan

 Test Plan Object دارای یک چکباکس به نام “Functional Testing” است. اگر انتخاب شده باشد، باعث می‌شود که JMeter داده‌های بازگشت شده از سرور برای هر Sample رکورد شود. اگر شما یک فایل را در Test Listener خود انتخاب کرده‌اید، این داده‌ها روی فایل نوشته خواهد شد. اگر شما یک اجرای کوچک را برای حصول اطمینان از اینکه JMeter به درستی پیکربندی شده است انجام دهید، و سرور شما نیز نتایج مورد انتظار را بازگشت دهد، چنین چیزی می‌تواند مفید واقع شود. نتیجه این است که فایل به سرعت بزرگ خواهد شد، و Performance  مربوط به JMeter به شمکل خواهد افتاد. اگر شما در حال انجام تست استرس هستید، این گزینه باید خاموش باشد(به طور پیش فرض خاموش است).

اگر داده‌ها را روی فایل رکورد نکنید، انتخاب یا عدم انتخاب این این گزینه هیچ تفاوتی ندارد.

شما همچنین می‌توانید از دکمه Configuration بر روی Listener استفاده کنید تا بر اساس تصمیم بگیرید که کدام فیلدها ذخیره شوند.

Tread Group

عناصر Thread Group نقطه شروع هر Test Planای هستند. تمام Controllerها(که در پست بعدی به این موضوع خواهیم پرداخت) و Sampleها باید ذیل یک Thread Group باشند. عناصر دیگر، به عنوان مثال Listenerها ممکن است به طور مستقیم ذیل یک Test Plan قرار داده شوند، در این صورت آنها به تمام Thread Groupها اعمال خواهند شد. همانطور که از نامش بر می‌آید، این عنصر Thread Group(یعنی Controller) تعداد موضوعاتی را که JMeter برای اجرای تست خود استفاده می‌کند، کنترل می‌کند. این کنترل‌ها برای یک Thread Group به شما امکان می‌دهد:

  • تعداد Threadها را تنظیم کنید
  • Ramp-up Period را تنظیم کنید
  • تعداد دفعات را برای اجرای تست تنظیم کنید

هر Thread، اجرای Test Plan را به صورت کاملا مستقل از دیگر Threadهای تست انجام خواهد داد. Threadهای چندگانه برای شبیه‌سازی اتصالات همزمان(Concurrent Connections) به برنامه سرور(Server Application) شما استفاده می‌شود.

Ramp-up Period به JMeter می‌گوید که چقدر طول می‌کشد تا Ramp-up را به تعداد کامل Threadها انتخاب کند. اگر ده Thread استفاده شود و Ramp-up Period نیز ۱۰۰ ثانیه باشد، در اینصورت JMeter، صد ثانیه زمان برای دریافت تمام ده Thread مذبور و اجرای آنها زمان لازم دارد. هر Thread دقیقا ۱۰ ثانیه(۱۰۰/۱۰) پس از آغاز Thread قبلی شروع خواهد شد. اگر سی Thread و یک Ramp-up Period به مدت ۱۲۰ ثانیه وجود داشته باشد، اجرای هر Thread به صورت پیسته به مدت ۴ ثانیه به تأخیر خواهد افتاد.

Ramp-up باید به اندازه کافی بلند باشد تا از شروع Work-Load(بارکاری) بسیار بزرگ در آغاز تست جلوگیری کند. علاوه بر این باید به اندازه کافی کوتاه باشد که آخرین Threadها قبل از اینکه اولین Thread پایان یابد، اجرا شوند(مگر اینکه کسی بخواهد این اتفاق بیفتد).

با “Ramp-up= تعداد Threadها” شروع کنید، و به تناسب نیاز آنرا بالا و پایین کنید.

به طور پیش فرض، Thread Group از طریق عناصر خود به صورت یک حلقه پیکربندی می‌شود.

Thread Group همچنین یک Scheduler(زمانبند) فراهم می‌کند. چک‌باکسی که در پایین پنل Thread Group است را کلیک کنید تا بدین ترتیب فیلدهای اضافی را فعال/غیرفعال نمایید. با استفاده از این فیلدها شما قادر خواهید بود مدت(Duration) تست، تاخیر راه‌اندازی(Startup Delay)، و زمان‌های آغاز و پایان اجرا را وارد نمایید. شما می‌توانید (Duration (seconds و (Startup Delay (seconds را برای کنترل طول مدت هر Thread Group پیکربندی کرده و پس از چند ثانیه آن شروع می‌شود. هنگامی که تست آغاز می‌شود، JMeter قبل از آغاز Threadهای Thread Group به اندازه ثانیه‌های مندرج برای (Startup Delay (seconds منتظر خواهد ماند، و سپس بر اساس زمان (Startup Delay (seconds اجرا را انجام خواهد داد. توجه داشته باشید که این ۲ گزینه گزینه Start Time و End time را از درجه اعتبار ساقط کرده و غیرفعال می‌کنند.

به عنوان یک امکان(اگر چه به دلیل عدم انعطاف توصیه نمی‌شود) شما می‌توانید از دو فیلد دیگر Start time و End time نیز استفاده کنید. هنگامی که تست آغاز می‌شود، JMeter تا زمانیکه Start-time به دست آید، صبر می‌کند. در پایان هر سیکل، JMeter بررسی می‌کند که آیا End-time سر رسیده است یا خیر، و اگر چنین باشد، اجرا متوقف می‌شود، در غیر این صورت تست تا زمانیکه محدودیت تکرار(Iteration Limit) سر برسد ادامه خواهد یافت.

 

قسمت‌های بعدی به محض آماده شدن علاوه بر اینکه در صفحه Home وبسایت اطلاعرسانی خواهد شد، به صورت دسته‌بندی شده از اینجا نیز در دسترس است.

ابوالفضل خواجه دیزجی

همچنین ببینید

Selenium

آموزش Selenium-قسمت هفدهم: Mouse Click Event و Keyboard Event و موضوع Action Class در Selenium WebDriver

در این بخش، ما رویداد کیبورد(Keyboard Event) و ماوس(Mouse Event) را در Selenium Webdriver آموزش …

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *