前言
jmeter中有很多元件,可能一開始我們并不知道如何使用,但不需要著急哗脖,可以根據我們的需要去找對應的元件闸盔。下面介紹幾個我常用到的元件。
定時器--Synchronizing Timer
這個定時器的作用土浸,其實是和loadrunner作用類似罪针,就是:阻塞線程,直到指定的線程數量到達后黄伊,再一起釋放泪酱,可以瞬間產生很大的壓力。
一般是在并發(fā)的時候还最,會通過這個元件墓阀,來達到瞬間產生壓力的目的。</pre>
如果希望這個定時器作用于全部的請求拓轻,則將這個定時器放在所有請求的上方斯撮,和請求是同一級; 如果希望這個定時器作用于某一個請求時扶叉,則可以將此定時器放在這個請求的下一級勿锅。
image
image
Synchronizing Timer 中主要有兩個參數:
Number of Simulated Users to Group by:模擬用戶的數量,即指定同時釋放的線程數數量;
Timeout in milliseconds:超時時間枣氧,即超時多少毫秒后同時釋放指定的線程數
壓測比例--Throughput Controller
吞吐量控制器昵济,看這個名字感覺是和吞吐量有關系的缚陷,其實并沒有蟋定。
我們可以通過這個元件來設置壓測比例绸罗,比如設置請求首頁的人數為50%、設置請求商品詳情接口的人數為30%酪劫、正則登錄的人有20%吞鸭。
吞吐量控制器,需要放在請求的上一級覆糟,即添加了吞吐量控制器后刻剥,把對應的請求放在控制器的下一級。
image
image
image
Total Executions:設置運行次數 Percent Executions:設置運行比例(1~100之間) per user:勾選后表示設置的每個線程數均執(zhí)行一次滩字; 不勾選表示只執(zhí)行設置的次數透敌。
如下圖所示盯滚,設置線程數為2,循環(huán)次數2次
image
第一個吞吐量控制器按照次數設置酗电,設置運行次數為2次魄藕,沒有勾選per user
image
第二個吞吐量了控制器按照次數設置,設置運行次數為1撵术,勾選了per user背率,
實際運行次數為:設置的運行次數 * 線程中的循環(huán)次數=1*2=2次
image
第三個吞吐量控制器按照百分比設置,設置百分比為50%嫩与,沒有勾選per user寝姿;
實際運行次數為:線程數*循環(huán)次數*百分比 = 2*2*50% = 2
image
運行結果如下:
image
正則表達式
正則表達式,我經常用于提取上一個請求結果中的參數划滋,用于下一個請求的參數饵筑,如下:
添加正則表達式元件:
image
填寫正則表達式內容:
具體正則表達式的編寫,可以先了解一下正則表達式的一些基礎知識处坪; 上一個請求的響應結果根资,可以先運行一下腳本,在察看結果樹中看到響應的數據同窘。
image
運行結果玄帕,下一個請求中需要將此字段進行參數化:
請求中的參數,需要和正則表表達式中的變量名一致想邦。
image
可以在請求中看到裤纹,已經拿到對應的值(這里的重復數據可以忽略,因為在請求默認值中已經設置了tenantCode的參數值)
image
參數化-CSV Data Set Config
jmeter的test plan中丧没,支持如下4種參數化方式:
**函數助手:_CSVRead** **CSV Data Set Config:CSV數據控件** **User Defined Variables:用戶定義的變量** **User Variables:用戶參數**
參數化我一般是用 CSV Data Set Config:CSV數據控件
image
CSV Data Set Config 中鹰椒,各個參數的 含義如下:
關于各個參數的含義,大家可下去后自行查找文件呕童,以下為簡單的介紹說明:
Filename:F:\jmeter\csvtest.dat文件名漆际,保存參數化數據的文件目錄,可選擇相對或者絕對路徑(建議填寫相對路徑拉庵,避免腳本遷移時需要修改路徑);
File encoding:UTF-8灿椅,F:\jmeter\csvtest.dat文件的編碼格式套蒂,在保存時保存編碼格式為UTF-8即可;
Variable Names(comma-delimited):對對應參數文件每列的變量名钞支,類似excel文件的文件頭,起到標示作用操刀,同時也是后續(xù)引用的標識符烁挟,建議采用有意義的英文標示;
(如:有幾列參數,在這里面就寫幾個參數名稱骨坑,每個名稱中間用分隔符分割撼嗓,這里的 user,pwd柬采,可以被利用變量名來引用:{user},{pwd};
Delimitet:參數文件分隔符,用來在“Variable Names”中分隔參數且警,與參數文件中的分隔符保持一致即可;
Allow quote data:是否允許引用數據粉捻,默認false,選項選為“true”的時候對全角字符的處理出現亂碼 ;
Recycle on EOF斑芜?:是否循環(huán)讀取參數文件內容肩刃;
--- 因為CSV Data Set Config一次讀入一行,分割后存入若干變量中交給一個線程杏头,如果線程數超過文本的記錄行數盈包,那么可以選擇從頭再次讀入;
△ Ture:為true時,當已讀取完參數文件內的測試用例數據醇王,還需繼續(xù)獲取用例數據時呢燥,此時會循環(huán)讀取參數文件數據(即:讀取文件到結尾時,再重頭讀取文件);
△False:為false時寓娩,若已至文件末尾叛氨,則不再繼續(xù)讀取測試數據;通常在“線程組線程數* 線程組循環(huán)次數>參數文件行數”時根暑,選用false(即:讀取文件到結尾時力试,停止讀取文件);
Stop thread on EOF?:當Recycle on EOF為False時(讀取文件到結尾),停止進程排嫌,當Recycle on EOF為True時畸裳,此項無意義;
△若為ture,則在讀取到參數文件行末尾時淳地,終止參數文件讀取線程怖糊;
△若為false,此時線程繼續(xù)讀取颇象,但會請求錯誤伍伤,因此時讀取的數據為EOF;
Sharing mode:共享模式,即參數文件的作用域遣钳,有以下幾種方式:
△All threads:當前測試計劃中的所有線程中的所有的線程都有效扰魂,默認;
△Current thread group:當前線程組中的線程有效;
△Current thread:當前線程有效;
image
注意:
1、參數化文件中蕴茴,最后不要有空行劝评;
2、參數化文件中倦淀,不需要出現數據項名稱蒋畜,比如:
image
image
參數化后,將參數直接在請求中使用即可撞叽,如下:
image
以上就是本次分享的全部內容姻成。