Jmeter使用流程及簡單分析監控 (下)

Jmeter使用流程及簡單分析監控 (下)

來自專欄性能測試5 人贊了文章

啟動延遲:表示腳本延遲啟動的時間,在點擊啟動後,如果啟動時間已經到達,但是還沒有到啟動延遲的時間,那麼,啟動延遲將會覆蓋啟動時間,等到啟動延遲的時間到達後,再運行系統。

注意:如果我們需要用到調度器來設定持續時間,如果線程數不夠多到持續時間結束,我們就必須將循環次數勾選為永遠,特別地,如果線程組裡面有其他的循環,我們也需將該循環次數勾選為永遠(如我上面錄製的腳本中的Step1也是一個循環,需要將永遠勾選),否則,按我如上配置,將永遠去掉勾選,文本里填1,那麼無論你將持續時間啟動時間結束時間等設置多少,系統運行1000次後,將會停止不再運行。

b、關於HTTP請求

關於HTTP請求,我們錄製的腳本裡面就有,這裡就介紹一些常用的屬性。

如圖所示:

點擊HTTP請求,將會出現如下界面:

其中:

名稱:可以隨意取,我們可以根據錄製腳本的路徑來命名

注釋:可以對該界面做一個簡單介紹

伺服器名稱或IP:即我們的伺服器或者IP的地址,我因為是在本機上的項目,故填寫localhost,可以填寫127.0.0.1。

埠號:我用的是tomcat,自己設置的埠號為8086(tomcat默認為8080)

後面的超時定義可以不用填寫。

Implementation:這裡我們錄製時默認填寫為JAVA

協議填寫為:http

方法為:GET

Content encoding:編碼可以不用填寫

路徑:即頁面的路徑;下面的重定向等選擇可以根據需要勾選,這裡我們保持錄製不修改。

Parameters參數:即跟著路徑一起發送的參數及文件

下面的代理伺服器等可以忽略,按需要填寫。

c、參數化

如下面圖,我們為請求發送的參數來參數化

上述的例子為登錄的用例,登錄有兩個參數:EMAIL和DEVELOPER_PASSWORD,在實際測試中,當我們需要用到不同的用戶來登錄的時候,我們就可以用到參數化。

1)、我們新建一個文件,這裡我新建的是一個txt文件,命名為c.txt,裡面的內容為

web@qq.com,111111

col@qq.com,111111

mon@qq.com,111111

2)、在jmeter中的【選項】中選擇【函數助手對話框】,將會彈出如下對話框:

其中:

CSV file to get values from | *alias:要讀取的文件路徑,為絕對路徑

CSV文件列號| next| *alias:從第幾列開始讀取,注意第一列是0

如上圖所示,我們讀取的是c.txt裡面的第一列用戶名(如果要讀取第二列的密碼,只需將0改成1即可,往後類推),點擊【生成】按鈕即可生成函數,我們使用時即拷貝生成的函數字元串:${__CSVRead(E:c.txt,0)}。

其他函數後面介紹。

d、斷言驗證

在web測試中,有的時候,即使我們測試返回的response code為200,也不能保證該測試是正確的,這時候,我們可以用到響應斷言,通過對比響應的內容來判斷返回的頁面是否是我們確定要返回的頁面

選擇我們要判斷的頁面,點擊添加斷言----響應斷言,將會出現如下圖:

名稱:隨意,這裡我們不做改動

注釋:隨意

Apply to:這裡我們選擇默認值

要測試的響應欄位:這裡我們選擇響應的文本,即返回的頁面信息

模式匹配規則:這裡我們選擇包括,即響應的文本是否包括我們驗證的信息

要測試的模式:開發者名稱,即我們需要驗證,開發者名稱是否在響應文本中存在,也可以添加更多的欄位來驗證。

其他還有文件大小和響應時間等的斷言,後面介紹。

e、添加監聽器

我們做性能測試的時候,經常需要各種數據來驗證我們的測試結果,Jmeter裡面也提供了相關的功能,這裡主要說一下Aggregate Report聚合報告。

點擊添加---監聽器,選擇:查看結果樹,和聚合報告,如果需要看到斷言信息也可以選擇斷言結果,將設置的一切保存之後,然後點擊啟動,系統將會運行,將結果在監聽器中表現出來。

四、分析結果 1、查看結果樹

如圖所示:成功的為綠色,失敗則顯示為紅色。如果測試的結果太多,你只需要看到錯誤的頁面,則勾選【僅日誌錯誤】

2、聚合報告(Aggregate Report)

其中:

Label:標籤,即我們上面的請求名稱

#Samples:本次場景中一共發出了多少個請求

Average:平均響應時間

Median:中位數,也就是50%的用戶的響應時間

90%Line:表示90%的用戶的響應時間,如果最小值和最大值相差很大的話,我們一般選擇這個作為最終測試結果

Min:最小響應時間

Max:最大響應時間

Error%:出錯率,本次測試中出現錯誤的請求的數量/請求的總數

Throughput:吞吐量

KB/sec:每秒從伺服器端接受到的數據量

五、監控內存及CPU等

很多時候,我們測試性能都需要查看內存和CPU等信息來判斷系統瓶頸,關於CPU和內存的監控,Jmeter並沒有很好的支持,很多時候,我們都只能通過系統的資源監控器來觀察,一閃而過不會記錄下來,很不方便。幸好google開發了一款專門監控的Jmeter插件,彌補了Jmeter這方面的不足,下面就來介紹一些這款插件——JMeterPlugins,目前我用的是0.5.6版本。

1、JMeterPlugins的下載地址

地址:code.google.com/p/jmete,選擇需要的版本,下載

2、JMeterPlugins的配置使用

將下載的文件解壓,得到如下目錄:

將JMeterPlugins.jar包複製到Jmeter的lib目錄下面的ext目錄下面,重新啟動Jmeter,我們點擊添加就可以看到出現了很多的jp@gc-開頭的文件.

這裡監控內存我們使用的是:jp@gc - PerfMon Metrics Collectot

在使用之前,我們需要運行/serverAgent/startAgent.bat這個文件,我們需要將serverAgent目錄及下面的文件複製到我們測試的伺服器上,然後點擊打開(我這裡是本機,直接在本機上面打開這個應用系統即可),它的默認埠為4444。

一切準備好後,點擊啟動,即可得到如下圖:

你就可以得到系統運行時,你所需要的常用的性能值了。

六、監控內存及CPU等(jconsole)

最近逛論壇的時候,發現了一個比較好的監控內存CPU等的小工具,本著開源小工具多多益善的原則,記錄一下。

打開這個小工具的步驟很簡單,如果你已經配置好了Jmeter運行的環境,那麼你也就不用去做其他的配置,直接 點擊:開始——》運行——》輸入cmd——》然後在出現的命令行界面輸入「jconsole」即可彈出一個【java監視和管理控制台】

將會彈出如下界面:

這裡我們選擇本地進程,並點擊一下sun.tools.jconsole.JConsole這一行,然後點擊連接,就可以查看我們的內存和CPU的使用情況了。

當然,我們要得到伺服器的內存使用等信息,也可以選擇 本地進程下面的遠程進程,在文本框中輸入我們需要測試的伺服器的IP地址:埠,然後在下面輸入用戶名和密碼,點擊連接,看看會出現什麼情況。


推薦閱讀:

性能測試新手常犯錯誤總結(一):找不到測試點,不知為何而測
核心實驗:Selenium IDE->測試Agileone的公告管理
面試官:你是怎麼測試介面測試的?
運行自動化測試demo的前期配置一
使用UI Automator實現Android UI的自動化測試

TAG:jmeter | 性能測試 | 自動化測試 |