jmeter如何參數(shù)化?我們使用jmeter在進(jìn)行測(cè)試的時(shí)候,測(cè)試數(shù)據(jù)是一項(xiàng)重要的準(zhǔn)備工作,每次迭代的數(shù)據(jù)當(dāng)不一樣的時(shí)候,需要進(jìn)行參數(shù)化,從參數(shù)化的文件中來(lái)讀取測(cè)試數(shù)據(jù)。那么,你知道jmeter如何進(jìn)行參數(shù)化嗎?接下來(lái)小編就給大家總結(jié)了Jmeter參數(shù)化設(shè)置的5種方法,主要詳細(xì)介紹的是用Csv Data配置元件來(lái)進(jìn)行參數(shù)化,對(duì)于Jmeter參數(shù)化設(shè)置不太了解到的小伙伴一定要仔細(xì)看哦?。?/p>
用Jmeter測(cè)試時(shí)包含兩種情況的參數(shù),一種是在url中,一種是請(qǐng)求中需要發(fā)送的參數(shù)。
URL中的參數(shù),如:http://blog.da-fang.com/index.php/2010/06/01/jmeter參數(shù)/,其中“2010/06/01/jmeter參數(shù)”為url參數(shù)。
請(qǐng)求中的參數(shù),此處只能舉例get請(qǐng)求,如:http://blog.da-fang.com/?category=Web,其中“category”是參數(shù)名,“Web”是它的值。
對(duì)于post請(qǐng)求,用jmeter錄制后,可以在請(qǐng)求的“同請(qǐng)求一起發(fā)送參數(shù)”和“同請(qǐng)求一起發(fā)送文件”中找到。
參數(shù)化Jmeter腳本時(shí),使用參數(shù)的地方書(shū)寫(xiě)格式為$
對(duì)于URL“http://blog.da-fang.com/index.php/2010/06/01/jmeter參數(shù)/”,在Jmeter的http請(qǐng)求中blog.da-fang.com填寫(xiě)在“服務(wù)器名稱(chēng)或IP”中;/index.php/$/填寫(xiě)在“路徑”中。
對(duì)于請(qǐng)求中的參數(shù)http://blog.da-fang.com/?category=Web,在Jmeter的http請(qǐng)求中blog.da-fang.com填寫(xiě)在“服務(wù)器名稱(chēng)或IP”中;/填寫(xiě)在“路徑”中;參數(shù)名稱(chēng)category填寫(xiě)在“同請(qǐng)求一起發(fā)送參數(shù)”的“名稱(chēng)”中,參數(shù)值$填寫(xiě)在對(duì)應(yīng)的“值”中。
Jmeter參數(shù)化設(shè)置的5種方法:
1. 用Jmeter中的函數(shù)獲取參數(shù)值,__Random,__threadNum,__CSVRead,__StringFromFile,具體調(diào)用方法如下:
${__Random(,,)},$,${__CSVRead(,)},${__StringFromFile(,,,)}。
參看Jmeter函數(shù)的使用,通過(guò)菜單“選項(xiàng)”->“函數(shù)助手對(duì)話(huà)框”,即可在“函數(shù)助手”彈出框上找到Jmeter的函數(shù)。
其中${__Random(,,)}方法的第一個(gè)參數(shù)為隨機(jī)數(shù)的下限,第二個(gè)參數(shù)為隨機(jī)數(shù)的上限,第三個(gè)參數(shù)為儲(chǔ)存隨機(jī)數(shù)的變量名;${__CSVRead(,)}方法中第一個(gè)參數(shù)是文件名,第二個(gè)參數(shù)是文件中的列(列數(shù)從0開(kāi)始);${__StringFromFile(,,,)}方法中第一個(gè)參數(shù)是文件名,${__StringFromFile(,,,)}方法中沒(méi)有指定讀取文件中的哪一列的參數(shù),所以${__StringFromFile(,,,)}只能讀取包含一列的文件。
2.用戶(hù)定義的變量
2.1 添加“配置元件”->“用戶(hù)定義的變量”
2.2 “名稱(chēng)”中輸入變量名稱(chēng),此處以登錄為例,定義兩個(gè)變量username和password。“值”中可以直接輸入值,也可以通過(guò)Jmeter的函數(shù)__CSVRead,__StringFromFile從csv或dat文件中讀取,還可以通過(guò)前綴加隨機(jī)數(shù)的方法設(shè)置參數(shù)。
當(dāng)參數(shù)值是某個(gè)前綴加一個(gè)數(shù)字時(shí),可以用前綴名加${__Random(,,)}或$的方法設(shè)置參數(shù)值。如進(jìn)行登錄測(cè)試之前,先準(zhǔn)備了用戶(hù)名為perf_0到perf_1000的用戶(hù),那么用戶(hù)名就可以設(shè)為perf_{__Random(0,1000,)}。
當(dāng)參數(shù)值沒(méi)有規(guī)律的且量不太大時(shí),可以通過(guò)${__CSVRead(,)},${__StringFromFile(,,,)}從文件中讀取,如將用戶(hù)名和密碼保存在user.csv文件中,user.csv的內(nèi)容如下:
oriana,123456
admin,admin
dandan,123456
因?yàn)閡ser.csv文件中有兩列數(shù)據(jù),所以只能用${__CSVRead(,)}函數(shù),username參數(shù)后的值設(shè)為${__CSVRead(user.csv,0)},password參數(shù)后的值設(shè)為${__CSVRead(user.csv,1)}。
3. 從csv文件中讀?。ㄓ肅sv Data配置元件來(lái)進(jìn)行參數(shù)化)
當(dāng)參數(shù)的值沒(méi)有規(guī)律且量不太大時(shí),可以用這種方法。
具體做法如下:
1、打開(kāi)jmeter圖形界面工具,打開(kāi)之前的腳本。
2、右鍵【添加】-【配置元件】-【Csv Data Set Config】
3、這個(gè)配置元件可以允許從你輸入的路徑來(lái)讀取文件,然后根據(jù)分隔符獲取到數(shù)據(jù)。
4、如下圖,輸入的數(shù)據(jù)。
講解:
a,名稱(chēng)和注釋不需要過(guò)多解釋?zhuān)约憾x。
b,Filename:參數(shù)化文件的讀取位置。這個(gè)路徑可以是絕對(duì)路徑也是可以相對(duì)路徑。在分布式測(cè)試中,還是利用相對(duì)路徑比較方便,因?yàn)橛械臋C(jī)器可能安裝路徑不一樣。
c,File Encoding:編碼格式,選擇utf-8
d,Variable Names:變量名稱(chēng)。這里定義的變量名稱(chēng),后面就可以直接用來(lái)引用了。(多個(gè)變量名稱(chēng)以逗號(hào)隔開(kāi)。例如username,passwd。參數(shù)化文件中同樣有對(duì)應(yīng)的兩列數(shù)據(jù)。)
e,Ignore first line:忽略第一行數(shù)據(jù)。(類(lèi)似loadrunner中第一行數(shù)據(jù)是變量名稱(chēng),如果你的配置文件中為了記憶第一行也是變量名,可以選擇是忽略這行數(shù)據(jù))
f,Delimiter:分隔符,默認(rèn)逗號(hào)。
g,Allow quoted data:是非選項(xiàng),是否允許變量中間有分隔符,這里最好先默認(rèn)false,數(shù)據(jù)中間最好不要有分隔符。
h,Recycle on EOF和Stop thread on EOF按需設(shè)置。是否循環(huán),到結(jié)尾是否停止測(cè)試。我這里設(shè)置了True和False
i,Sharing mode:先選擇所有的線(xiàn)程都可以利用此參數(shù)化。
5、準(zhǔn)備測(cè)試數(shù)據(jù)。這里只是簡(jiǎn)單的寫(xiě)了幾個(gè)數(shù)據(jù)來(lái)演示效果。
6、在請(qǐng)求中引用該變量。
引用方法是 ${} ;其中{}內(nèi)寫(xiě)入?yún)?shù)化中的變量。
注:在parameter中加入一些多余的參數(shù)沒(méi)有問(wèn)題,故在訪問(wèn)百度的請(qǐng)求后面隨意加了一個(gè)參數(shù)。
7、修改循環(huán)次數(shù)。這里設(shè)置6次,是因?yàn)閰?shù)里面有5個(gè)數(shù)據(jù),測(cè)試一下數(shù)據(jù)取完之后的效果。
8、點(diǎn)擊運(yùn)行,查看結(jié)果樹(shù)。
可以看到共發(fā)送了6次請(qǐng)求,而且請(qǐng)求參數(shù)中已經(jīng)獲取了變量的數(shù)據(jù)。
9、打開(kāi)第二個(gè)請(qǐng)求??梢钥吹降诙€(gè)請(qǐng)求的參數(shù)里面變量值為data-b。
順序讀取的。
10、找到最后一個(gè)請(qǐng)求,點(diǎn)開(kāi)查看。
請(qǐng)求參數(shù)中searchid是data-a,說(shuō)明數(shù)據(jù)是從頭開(kāi)始取的,也就是數(shù)據(jù)是遍歷后循環(huán)的。
參數(shù)化完成了。
4.從數(shù)據(jù)庫(kù)中獲取
當(dāng)參數(shù)的值沒(méi)有規(guī)律且量比較大時(shí),可以選用這種方法。
具體做法如下:
4.1 下載MySQL JDBC “http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.12.zip/from/http://ftp.jaist.ac.jp/pub/mysql/”
4.2 解壓下載的zip包后,將其中的mysql-connector-java-5.1.12-bin.jar放到Jmeter的lib目錄下
4.3 添加“配置元件”->“JDBC Connection Configuration”,設(shè)置下列參數(shù):
Database URL:jdbc:mysql://host:port/db(如jdbc:mysql://localhost:3306/testlink
JDBC Driver class:com.mysql.jdbc.Driver
username:連接數(shù)據(jù)庫(kù)的用戶(hù)名(如root)
password:連接數(shù)據(jù)庫(kù)的密碼
4.4 添加“Sampler”->“JDBC Request”,在SQL Query中輸入查詢(xún)語(yǔ)句,如下:
SELECT CONCAT (“[",
GROUP_CONCAT(
CONCAT("{username:'",login,"'"),
CONCAT("{password:'",password),"'}"),"]“) AS json FROM users
4.5 在4.4中的JDBC請(qǐng)求中添加“后置處理器”->“正則表達(dá)式提取器”,以提取3.4中的用戶(hù)名和密碼為例設(shè)置正則表達(dá)式提取器的參數(shù):
引用名稱(chēng):user
正則表達(dá)式:username:’(.+?)’/{password:’(.+?)’
模板:$1$$2$
使用時(shí),user_g1即為用戶(hù)名,user_g2即為對(duì)應(yīng)用戶(hù)名的密碼;更多正則表達(dá)式提取方法參見(jiàn)Jmeter正則表達(dá)式提取器
5.用正則表達(dá)式從前面請(qǐng)求的響應(yīng)數(shù)據(jù)中提取,具體操作見(jiàn)Jmeter正則表達(dá)式提取器
教程結(jié)束,以上就是關(guān)于jmeter如何參數(shù)化?Jmeter參數(shù)化設(shè)置的5種方法步驟,希望對(duì)大家有所幫助!更多jmeter相關(guān)教程,請(qǐng)繼續(xù)關(guān)注武林網(wǎng)網(wǎng)站。
相關(guān)教程推薦:
Windows下安裝jmeter圖文教程
jmeter內(nèi)存溢出怎么辦?調(diào)整jmeter占用內(nèi)存解決內(nèi)存溢出的方法介紹
新聞熱點(diǎn)
疑難解答
圖片精選