جمعه , ۱۰ فروردین ۱۴۰۳

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

Jmeter Tutorial
Jmeter Tutorial

Server Mode

برای Distributed Testing(تست توزیع شده)، JMeter را روی Remot Nodeها در Server Mode اجرا(Run) نموده، و سپس این Server(ها) را از طریق GUI کنترل نمایید. علاوه بر این شما می‌توانید از Non-GUI Mode برای اجرای Remote Testها استفاده نمایید. جهت آغاز این Server(ها) باید [jmeter-server[.bat را روی هر Server Host اجرا(Run) نمایید.

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

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

مثال:

jmeter-server -H my.proxy.server -P 8000

اگر می‌خواهید این Server بعد از اجرای یک تست منفرد عملیات Exit را انجام دهد، در این صورت باید یک JMeter Property را بدین صورت سِت نمایید: server.exitaftertest=true.

برای اجرای تست از این Client در GUI-Mode، از دستور زیر استفاده کنید:

jmeter -n -t testplan.jmx -r [-Gprop=val] [-Gglobal.properties] [-X]

  • G: برای تعریف Propertyهای JMeter استفاده می‌شود تا آنها را در Serverها سِت نماید.
  • X: به معنی خروج از سرورها در پایان تست است.
  • Rserver1,server2: می‌توان از این به جای r- استفاده نمود تا یک لیست از سرورها برای شروع ارائه دهد. این پارامتر remote_hosts را Override(لغو) می‌کند، اما Property خاصی را تعریف نمی‌کند.

اگر jmeterengine.remote.system.exit Property با مقدار true تنظیم شود(که البته پیشفرض آن false است)، در اینصورت JMeter پس از متوقف کردن RMI در پایان تست، (۰)System.exit را فراخوانی می‌کند. به طور چنین چیزی ضرورت ندارد.

لغو(Overriding) کردن Propertyها از طریق Command Line

خصوصیات جاوا سیستم و خواص JMeter را می توان به طور مستقیم بر روی خط فرمان (به جای اصلاح jmeter.properties) به طور مستقیم لغو کرد. برای انجام این کار، از گزینه های زیر استفاده کنید:

  • [D[prop_name]=[prop_name: یک مقدار java system property تعریف می‌کند.
  • [J[prop_name]=[prop_name: یک local JMeter property تعریف می‌کند.
  • [G[prop_name]=[prop_name: یک JMeter property برای ارسال به تمام Remote Serverها تعریف می‌کند.
  • [G[propertyfile-: یک فایل مشتمل بر JMeter Propertyها تعریف می‌کند تا به Remote Serverها ارسال شوند.
  • [L[category]=[priority: تنظیمات Log کردن را لغو(Override) کرده، و یک Category ویژه برای سطح اولویت ارائه شده تنظیم می‌کند.

همچنین L flag را می‌توان برای سِت کردن Root Logging Level بدون Category name استفاده نمود.

مثال:

jmeter -Duser.dir=/home/mstover/jmeter_stuff \
-Jremote_hosts=127.0.0.1 -Ljmeter.engine=DEBUG

jmeter -LDEBUG

توجه داشته باشید: Command Line Propertyها در اوایل راه اندازی پردازش می‌شوند، اما بعد از لاگ کردن سیستم ستاپ می‌گردد.

پیام‌های Error و لاگ کردن

توجه داشته باشید: از نسخه ۳٫۲، ابزار JMeter پیکربندی از Property Fileها مانند jmeter.properties را بسیار کمرنگ‌تر کرده است، و به جای آن این کار را از طریق Apache Log4j 2 configuration file(دقت داشته باشید log4j2.xml در پوشه‌ای JMeter است که به صورت پیشفرض لانچ شده است) انجام می‌دهد. علاوه بر این از نسخه ۳٫۲ به بعد، هر کدی از جمله JMeter و پلاگین‌ها باید برای ترک Logها از SLF4J Library استفاده کنند.

در اینجا یک مثال از فایل log4j2.xml ارائه شده است که هم Log Appenderها و هم Loggerها را برای هر Category تعریف می‌کند.

<Configuration status=”WARN” packages=”org.apache.jmeter.gui.logging”>

<Appenders>

<!– The main log file appender to jmeter.log in the directory from which JMeter was launched, by default. –>
<File name=”jmeter-log” fileName=”${sys:jmeter.logfile:-jmeter.log}” append=”false”>
<PatternLayout>
<pattern>%d %p %c{1.}: %m%n</pattern>
</PatternLayout>
</File>

<!– Log appender for GUI Log Viewer. See below. –>
<GuiLogEvent name=”gui-log-event”>
<PatternLayout>
<pattern>%d %p %c{1.}: %m%n</pattern>
</PatternLayout>
</GuiLogEvent>

</Appenders>

<Loggers>

<!– Root logger –>
<Root level=”info”>
<AppenderRef ref=”jmeter-log” />
<AppenderRef ref=”gui-log-event” />
</Root>

<!– SNIP –>

<!–
# Apache HttpClient logging examples
–>
<!– # Enable header wire + context logging – Best for Debugging –>
<!–
<Logger name=”org.apache.http” level=”debug” />
<Logger name=”org.apache.http.wire” level=”error” />
–>

<!– SNIP –>

</Loggers>

</Configuration>

بنابراین، اگر می‌خواهید سطح log را برای org.apache.http Category تغییر دهید Level را برای Instance دیباگ کنید، می‌توانبد قبل از لانچ JMeter، به سادگی logger element را در فایل log4j2.xml اضافه(Add) کنید.

 <Loggers>
<!– SNIP –>
<Logger name=”org.apache.http” level=”debug” />
<!– SNIP –>
</Loggers>

در رابطه با جزئیات بیشتر در مورد چگونگی پیکربندی فایل log4j2.xml، در آینده صحبت خواهیم کرد.

Log Level برای Categoryهای ویژه یا Root Logger می‌تواند به طور مستقیم بر روی Command Line(به جای اصلاح log4j2.xml) نیز لغو(Override) شود. برای انجام این کار، از گزینه‌های زیر استفاده کنید:

  • [L[category]=[priority: که یک Logging Setting را Override کرده و یک Category ویژه برای Priority Level ارئه شده تعریف می‌کند. از نسخه ۳٫۲، توصیه می‌شود که از نام کامل Category استفاده کنید(به عنوان مثال org.apache.jmeter یا com.example.foo)، اما اگر نام Category با jmeter یا .jorphan، org.apache آغاز شود به صورت داخلی به ابتدای نام Category ورودی برای ساخت یک نام کامل Category اضافه می‌شود.

مثال:

jmeter -Ljmeter.engine=DEBUG

jmeter -Lorg.apache.jmeter.engine=DEBUG

jmeter -Lcom.example.foo=DEBUG

jmeter -LDEBUG

 

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

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

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

Selenium

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

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

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

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