دوشنبه , ۱۰ اردیبهشت ۱۴۰۳

آموزش JMeter-قسمت چهارم: نصب و اجرای JMeter(بخش دوم)

Jmeter Tutorial
Jmeter Tutorial

JMeters Classpath

JMeter به طور خودکار کلاس‌ها را از Jarها در دایرکتوری‌های زیر پیدا می‌کند:

  • JMETER_HOME/lib: برای Utility Jarها استفاده می‌شود
  • JMETER_HOME/lib/ext: برای JMeter Componentها و پلاگین‌ها استفاده می‌شود

اگر شما JMeter Componentهای جدید توسعه یافته دارید، باید آنها را Jar کرده و این Jar را در دایرکرتوری JMeter lib/ext کپی نمایید. JMeter به طور خودکار JMeter Componentها را در هر Jar از اینجا پیدا می‌کند. lib/ext را برای Utility Jarها و Dependency Jarها را بوسیله پلاگین‌ها استفاده نکنید؛ این فقط برای JMeter Componentها و پلاگین‌ها طراحی شده است.

اگر شما نمی‌خواهید JMeter Plugin Jarها را در پوشه lib/ext قرار دهید، باید search_paths property را در jmeter.properties تعریف کنید.

Utility Jarها و Dependency Jarها(Libraryها و غیره) را می‌توان در دایرکتوری lib قرار داد.

اگر شما نمی‌خواهید این Jarها را در دایرکتوری lib بگذارید، باید user.classpath Property یا plugin_dependency_paths Property را در jmeter.properties تعریف کنید. در ادامه این تفاوت‌ها را می‌بینیم.

دیگر Jarها(مانند JDBC، JMS Implementation و سایر libraryهای پشتیبانی شده مورد نیاز بوسیله JMeter Code) باید در دایرکتوری lib قرار گیرند نه در پوشه lib/ext و یا به user.classpath اضافه شوند.

توجه داشته باشید: JMeter فقط فایل‌های Jar را پیدا خواهد کرد، نه zip. را.

شما همچنین می‌توانید Utility Jar Fileها را در JAVA_HOME/jre/lib/ext$ نصب کنید، و یا می‌توانید user.classpath را در jmeter.properties سِت کنید.

توجه داشته باشید که سِت کردن متغیر محیطی CLASSPATH تاثیری نخواهد داشت، چرا که JMeter با “java-jar” آغاز شده است و Java Command متغیر CLASSPATH و گزینه‌های classpath/-cp- را زمانیکه jar- استفاده می‌شود، در سکوت نادیده می‌گیرد.

توجه داشته باشید: چنین چیزی نه فقط برای JMeter بلکه برای تمام برنامه‌های جاوایی، رخ می‌دهد.

ایجاد Test Plan از Template

شما توانایی ایجاد یک طرح تست جدید از Template موجود دارید.

برای انجام این کار از منو File → Templates … یا آیکون Templates استفاده کنید.

JMeter Figure 4-1
JMeter Figure 4-1

سپس پوپاپ ظاهر می‌شود که می‌توانید یک Template را در میان لیست انتخاب کنید:

JMeter Figure 4-2
JMeter Figure 4-2

یک داکیومنت برای هر Template توضیح می‌دهد که وقتی یک Test Plan از TEmplate ایجاد می‌شود، چه کاری باید انجام شود.

استفاده از JMeter پشت یک Proxy

اگر شما از پشت یک Firewall/Proxy Server تست را انجام می‌دهید، ممکن است مجبور شوید JMeter را با Firewall/Proxy Server Hostname و شماره پورت آماده کنید. برای انجام این کار، فایل [jmeter[.bat را از یک Command Line با پارامترهای زیر اجرا کنید:

  • [H[string: به جای String باید Proxy Server Hostname یا IP Address قرار گیرد.
  • [P[string: به جای String باید Proxy Server Port قرار گیرد.
  • [N[string: به جای String باید Nonproxy Hosts قرار گیرد. مثلا apache.org|localhost.*
  • [u[string: به جای String باید در صورت نیاز Username برای Proxy Authentication قرار گیرد.
  • [a[string: به جای String باید در صورت نیاز Password برای Proxy Authentication قرار گیرد.

مثال

jmeter -H my.proxy.server -P 8000 -u username -a password -N localhost

شما همچنین می توانید از proxyHost، –proxyPort، –username و password– به عنوان نام پارامتر استفاده کنید.

توجه داشته باشید: پارامترهای ارائه شده در Command Line ممکن است برای سایر کاربران در سیستم قابل مشاهده باشد.

اگر Proxy Host و Proxy Port ارائه شوند، در این صورت JMeter طیق لیست ذیل System Propertyها را سِت می‌کند:

  • http.proxyHost
  • http.proxyPort
  • https.proxyHost
  • https.proxyPort

اگر یک Nonproxy Host List ارائه شده باشد، در این صورت JMeter طیق لیست ذیل System Propertyها را سِت می‌کند:

  • http.nonProxyHosts
  • https.nonProxyHosts

بنابراین اگر نمی‌خواهید پروکسی‌های HTTP و HTTPS را سِت کنید، می‌توانید به جای استفاده از پارامترهای Command Line، ویژگی‌های(Property) مرتبط در system.properties را تعریف کنید.

Proxy Settingها را نیز می‌توان با استفاده از HTTP Request Defaults یا عناصر HTTP Request Sampler در یک Test Plan تعریف کرد.

توجه داشته باشید: JMeter همچنین Proxy Server داخلی خود را دارد، یعنی HTTP(S) Test Script Recorder. این Proxy Server فقط برای Record کردن HTTP Browser Session یا HTTPS Browser Session استفاده می‌شود. چنین چیزی نباید با Proxy Settingها که در بالا توضیح داده شد، اشتباه گرفته شوند. این Proxy Settingها در زمانیکه JMeter یک HTTP Request یا HTTPS Request می‌سازد استفاده می‌شود.

(Non-GUI Mode(Command Line mode

برای Load Testing، شما باید JMeter را در این حالت(بدون GUI) اجرا کنید، تا نتایج مطلوبی را از آن دریافت کنید. برای انجام این کار، از Command Optionهای زیر استفاده کنید:

  • n-: این مشخص می‌کند که JMeter برای اجرا در حالت Non-GUI است.
  • [t[string: به جای String باید نام JMX Fileای که این Test Plan را شامل می‌شود، قرار گیرد.
  • [l[string: به جای String باید نام JTL File برای لاگ کردن نتایج نمونه، قرار گیرد.
  • [j[string: به جای String باید نام JMeter که Log File را اجرا می‌کند، قرار گیرد.
  • r-: تست‌ها را در سرورهایی که بوسیله یک JMeter Property  به نام “remote_hosts” مشخص شده‌اند، اجرا می‌کند.
  • [R[string: به جای String باید لیست Remote Serverها قرار گیرد. به این ترتیب تست در Remote Serverهای مشخص شده اجرا می‌شود.
  • [g[string: به جای String باید مسیر برای CSV File قرار گیرد. فقط داشبورد مربوط به Report را تولید می‌کند.
  • e-: پس از Load Test، داشبوردِ Report را تولید می‌کند.
  • o-: فولدری را ایجاد می‌کند که در آن Report Dashboard بعد از Load Test ایجاد می‌شود. فولدر نباید از قبل وجود داشته باشد یا خالی باشد.

همچنین این اسکریپت به شما اجازه می‌دهد اطلاعات اختیاری مربوط به Firewall/Proxy Server را مشخص کنید:

  • [H[string: به جای String باید Proxy ServerHostname یا IP Address قرار گیرد
  • [P[string: به جای String باید Proxy Server Port قرار گیرد

مثال

jmeter -n -t my_test.jmx -l log.jtl -H my.proxy.server -P 8000

اگر jmeterengine.stopfail.system.exit Property به درستی(پیش فرض نادرست است) سِت شود، در اینصورت JMeter اگر نتواند تمام Threadها را متوقف کند (System.exit(1 را فراخوانی می‌کند. معمولا چنین چیزی لازم نیست.

 

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

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

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

Selenium

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

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

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

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