1. 程式人生 > >開源性能測試工具JMeter快速入門(二)

開源性能測試工具JMeter快速入門(二)

代碼 取模 .bat -h 斷言 調度 測試 格式 needed


目錄

一、JMeter簡介

二、JMeter功能介紹

三、JMeter腳本

四、關於JMeter小提示




三、JMeter腳本


1.測試計劃

測試計劃是JMeter進行測試的起點 ,是其他JMeter測試元件的容器,每個測試場景/腳本都叫做一個測試計劃。

(1)名稱;與業務相關的名稱

(2)註釋:非必填

(3)用戶定義的變量,引用時直接用${變量名}即可,這裏的變量是全局變量,作用於整個測試計劃。

(4)獨立運行每個線程組:默認不勾選,即所有線程組並發啟動。勾選則順序執行所有線程組。

(5)

技術分享圖片

結束線程運行後,停止主線程。

(6)函數測試模式:默認不勾選 。勾選則記錄詳細請求,增加資源消耗,影響客戶端性能。

(7)

技術分享圖片

向類路徑(%JMeterHOME%\lib)中添加目錄及JAR包。


2.VUser及場景設計

JMeter的場景設計 及Vuser都是在線程組下設計的。

這裏線程-->Vuser(並發用戶數)

循環次數及調度器-->場景設計模塊

技術分享圖片

(1)線程屬性:

線程數

Ramp-Up Period:線程間的時間間隔

循環次數:請求的重復次數 。

Delay thread Creation until needed:延遲創建線程,直到需要創建時創建。

(2)調度器

持續時間:測試計劃持續時間,將覆蓋結束時間

啟動延遲:測試計劃延遲多少時間啟動,將覆蓋啟動時間。


3.使用Badboy進行腳本錄制

Badboy錄制較簡單,無需使用代理;但不能像JMeter代理可以錄制到URL相關的靜態文件及dwr請求。

錄制完成後導出為JMeter格式的,然後在JMeter中直接打開腳本就可以使用了。

技術分享圖片


4.參數化

(1)在測試計劃中使用“用戶定義變量”,

添加參數,然後找到需要參數化的腳本,將其值修改為:${key}即可

(2)使用自帶的隨機函數

JMeter中有函數助手,有多個內置函數,可以用相關函數進行參數化設置。

方法:打開函數助手 ,填寫min,max ,函數名稱,點擊“生成”,復制生成的隨機函數到需要參數化的地方 。


5.關聯

JMeter的關聯是基於正則和Xpath Extractor實現的。

(1)名稱、註釋、Apply to 默認即可。

(2)要檢查的響應字段 :表示在哪個地方提取正則表達式,一般選擇Body即可。

(3)引用名稱:其他地方引用提取值的變量名稱,引用方式為${變量名稱}

(4)正則表達式,提取的正則表達式主體

(5)模板,用$$引用起來,正則表達式的提取模式,值從1開始 ,值0對應的是整個匹配的表達式。

(6)默認值,若返回結果中無匹配的值,則變量的值采用默認值 。


6.檢查點

JMeter的檢查點是用斷言實現的,使用較多的是響應斷言 。如下添加斷言後,需要在相應的監聽器中添加“斷言結果”才能在執行後查看斷言結果是否正確。

(1)名稱、註釋、 Apply to 默認

(2)要測試的響應字段,文本、代碼均可

(3)模式匹配規則 :

匹配:需達到精確匹配

Equals:返回結果與指定結果一致

SubString:返回結果是指定結果的子串

否:不進行匹配

(4)要測試的模式,若設置多個斷言結果 ,則需要所有結果通過才成功 ,否則失敗


7.思考時間

JMeter的思考時間是用定時器實現的。默認時,JMeter發送請求是沒有時間間隔的。添加間隔是為了更真實模擬用戶請求,同時可以減少服務器壓力。無論定時器放在哪裏 ,它都會在Sampler前執行,若需要在某個位置暫停,,可加入Test Action。

定時器的作用域,若在線程組下添加多個定時器,則會累加作用於線程組內的所有Sampler,可以在單獨的Sampler中添加定時器。


8.集合點

JMeter中使用Synchronizing Timer實現集合點功能 ,模擬多用戶並發測試。

表示集合點夠多少個用戶才開始執行並發,在使用中發現最後一批線程數不夠時,JMeter會停止不動。


9.結果分析

技術分享圖片

運行性能場景時,開啟多個監聽器會消耗資源 。常用的有聚合報告 、圖形結果、監視器結果 等等。




四、關於JMeter小提示


1.盡量少用監聽器

2.盡量把相似的Sampler放在循環內, 使用變量修改這些Sampler,而不是重復添加Sampler

3.不要使用函數測試模式

4.以CSV格式輸出結果 ,盡量不用XML格式

5.只保存需要的數據結果

6.最好在調試腳本時使用斷言,運行腳本時禁用斷言 ,這樣有利於精準測試結果

7.查看結果樹和用表格查看結果監聽器最好在調試腳本時使用,不在負載測試期間使用

8.若需要測試大量數據,則可以提前準備好測試Data並放在數據文件中,避免浪費資源 。

9.對於大並發量的負載測試,盡量在多臺機器上運行多個非GUI JMeter實例,進行分布式測試。

10.若測試過程中報內存不足, 可以在jmeter的bin目錄下找到jmeter.bat來修改JVM內存設置,如修改為:HEAP="-Xms512m -Xmx512m"這樣可減小頻繁申請創建、銷毀內存引起的性能損耗開銷。


開源性能測試工具JMeter快速入門(二)