在本章中,我們將討論有關(guān)如何創(chuàng)建使用 JMeter 測(cè)試計(jì)劃,監(jiān)控Web服務(wù)器。利用監(jiān)視器測(cè)試是:
• 監(jiān)視器是有用的壓力測(cè)試和系統(tǒng)管理。
• 用于壓力測(cè)試,監(jiān)視器服務(wù)器性能提供了額外的信息。
• 監(jiān)視器可以更容易地看到在客戶端服務(wù)器的性能和響應(yīng)時(shí)間之間的關(guān)系.
• 系統(tǒng)管理工具,顯示器提供了一個(gè)簡(jiǎn)單的方法來(lái)從一個(gè)控制臺(tái)監(jiān)視器多臺(tái)服務(wù)器.
我們將需要一個(gè)Tomcat 5或以上版本進(jìn)行監(jiān)測(cè)。對(duì)于我們的測(cè)試目的,將監(jiān)視Tomcat 7.0.42 服務(wù)器。可以測(cè)試任何servlet容器支持JMX(Java管理擴(kuò)展)。讓我們寫一個(gè)測(cè)試案例監(jiān)視器Tomcat 服務(wù)器。但在此之前,讓我們先來(lái)設(shè)立 tomcat 服務(wù)器。
我們先從“打開(kāi)”Tomcat服務(wù)狀態(tài)。要做到這一點(diǎn),編輯的配置文件用戶<TOMCAT_HOME>/conf/tomcat-users.xml. 此文件包含一個(gè)tomcat的用戶部分(評(píng)論)如下:
<tomcat-users>
<!--
<role rolename="tomcat"/>
<role rolename="role1"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
-->
</tomcat-users>
我們需要改變這部分,添加管理員的角色,manager,manager-gui和分配用戶“admin”。修訂后的文件如下:
<tomcat-users>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="admin" password="admin" roles="manager-gui,manager-script,manager-jmx,manager-status"/>
</tomcat-users>
現(xiàn)在啟動(dòng) tomcat 服務(wù)器 <TOMCAT_HOME>/bin/startup.sh 在Linux平臺(tái) 下,<TOMCAT_HOME> /bin/startup.bat 在Window. 一旦啟動(dòng),檢查Tomcat 監(jiān)管工作進(jìn)入下面的鏈接(在瀏覽器中打開(kāi)):
http://localhost:8080/manager/status?XML=true
驗(yàn)證窗口出現(xiàn)在瀏覽器中,進(jìn)入tomcat 登錄名和密碼相關(guān)(在我們的案例中,它是admin)。然后,瀏覽器顯示Tomcat作為下面的執(zhí)行狀態(tài):
從上面的圖片中,我們可以注意幾件事情:
• 在URL中,XML = true(注意區(qū)分大小寫)注意,可以清晰地顯示JMeter 運(yùn)作需要監(jiān)視 Tomcat。
• 另外請(qǐng)注意,默認(rèn)有兩個(gè)連接器。加上Apache httpd 的mod_jk 前端模塊,這是常用的 HTTP 連接器通過(guò)端口 8080 連接器直接訪問(wèn)到 Tomcat 的AJP連接器。
讓我們監(jiān)視器Tomcat服務(wù)器通過(guò)編寫測(cè)試計(jì)劃如下:
通過(guò)點(diǎn)擊啟動(dòng)JMeter的窗口 /home/manisha/apache-jmeter-2.9/bin/jmeter.sh. 點(diǎn)擊測(cè)試計(jì)劃節(jié)點(diǎn)上。如解釋在下一步添加一個(gè)線程組。
添加一個(gè)線程組。右鍵單擊Test Plan > Add > Threads(Users) > Thread Group. 根據(jù)測(cè)試計(jì)劃節(jié)點(diǎn)將添加線程組。改變永遠(yuǎn)循環(huán)計(jì)數(shù)(或大量),以便產(chǎn)生足夠的樣本。
添加了HTTP授權(quán)管理到線程組元素 Add > Config element > HTTP Authorization Manager. 此元素管理認(rèn)證要求瀏覽器中看到Tomcat服務(wù)器的狀態(tài)。選擇HTTP Authorization Manager 并編輯以下細(xì)節(jié):
• Username : admin 管理員(取決于tomcat-users.xml文件中的配置)
• Password : admin(取決于配置tomcat-users.xml文件)
• 其他字段都留空。
現(xiàn)在,我們已經(jīng)定義了我們的用戶,它是時(shí)間來(lái)定義,他們將要執(zhí)行的任務(wù)。我們將增加HTTP請(qǐng)求元素。點(diǎn)擊鼠標(biāo)右鍵得到添加菜單,然后選擇Add > Sampler > HTTP Request. 然后,選擇HTTP請(qǐng)求樹(shù)中的元素,并在下面的圖片編輯以下屬性:
這個(gè)元素中輸入下列詳細(xì)信息:
• Name : 服務(wù)器狀態(tài)
• Server Name or IP : localhost
• Port : 8080
• Path : /manager/status
• Parameters : 添加請(qǐng)求參數(shù)名為“XML”大寫。給它一個(gè)小寫 “true” 值。
• Optional Tasks : 檢查采樣底部的“監(jiān)視器”。
要定期要求服務(wù)器狀態(tài),添加的常量元素,這將使每個(gè)請(qǐng)求之間的時(shí)間間隔定時(shí)器。這個(gè)線程組中添加一個(gè)計(jì)時(shí)器 Add > Timer > Constant Timer.
輸入5000毫秒在線程的延遲框中。在一般情況下,使用短的間隔超過(guò)5秒將添加到服務(wù)器的壓力。搞清楚什么是可接受的間隔,在生產(chǎn)環(huán)境中部署監(jiān)視器。
需要添加到測(cè)試計(jì)劃中的最后一個(gè)元素是一個(gè)監(jiān)聽(tīng)器。我們將兩種類型的監(jiān)聽(tīng)器。結(jié)果存儲(chǔ)在一個(gè)文件中的第二個(gè)顯示的圖形視圖中的結(jié)果。
選擇線程組元素,并添加一個(gè)簡(jiǎn)單的數(shù)據(jù)寫入器監(jiān)聽(tīng) Add > Listener > Simple Data Writer.下一步,指定輸出文件的目錄和文件名(在我們的案例中為 /home/manisha/work/sample.csv)
讓我們添加另一個(gè)監(jiān)聽(tīng)器,通過(guò)選擇測(cè)試計(jì)劃元件 Add > Listener > Monitor Results.
現(xiàn)在保存的以上測(cè)試計(jì)劃 monitor_test.jmx 。執(zhí)行本測(cè)試計(jì)劃使用 Run > Start 選項(xiàng).
結(jié)果將被保存在 /home/manisha/work/sample.csv 的文件。在下面的圖片,你還可以看到一個(gè)圖形化的結(jié)果的監(jiān)測(cè)結(jié)果監(jiān)聽(tīng)
請(qǐng)注意圖中有字幕圖形的兩側(cè)上。在左邊是%,右邊是dead/healthy。如果記憶線尖峰迅速下降,這可能表明內(nèi)存顛簸。在這些情況下,與Borland Optimizeit 的 JProbe的分析應(yīng)用程序。希望看到的是一個(gè)普通的負(fù)載,內(nèi)存和線程模式。任何不穩(wěn)定的行為通常表明表現(xiàn)欠佳或某種形式的錯(cuò)誤。