JMeter也有像LR中的參數(shù)化,本篇就來介紹下JMeter的參數(shù)化如何去實(shí)現(xiàn)。
參數(shù)化:錄制腳本中有登錄操作,需要輸入用戶名和密碼,假如系統(tǒng)不允許相同的用戶名和密碼同時(shí)登錄,或者想更好的模擬多個(gè)用戶來登錄系統(tǒng)。
這個(gè)時(shí)候就需要對(duì)用戶名和密碼進(jìn)行參數(shù)化,使每個(gè)虛擬用戶都使用不同的用戶名和密碼進(jìn)行訪問。
一、準(zhǔn)備腳本,測(cè)試數(shù)據(jù)
1、錄制一個(gè)腳本(可以用badboy工具錄制),在jmeter中打開,找到有用戶名和密碼的頁面。如下:
2、我們需要“參數(shù)化”的數(shù)據(jù),用記事本寫了五個(gè)用戶名和密碼,保存為.dat格式的文件,編碼問題在使用CSV Data Set Config參數(shù)化時(shí)要求的比較嚴(yán)格,記事本另存為修改編碼UTF-8.注意用戶名和密碼是一一對(duì)應(yīng)的,中間用戶逗號(hào)(,)隔開。
我將這個(gè)文件放在了我的( C:\JmeterWorkSpace\t.dat ?)路徑下。
二、參數(shù)化
這里介紹兩種參數(shù)化的方式:函數(shù)助手,CSV Data Set Config。
1、借助函數(shù)助手的方式
a、點(diǎn)擊菜單欄“選項(xiàng)”---->函數(shù)助手對(duì)話框,看下圖:CSV文件列號(hào)是從0開始的,第一列0、第二列1、第三列2、依次類推。。
b、復(fù)制生成的參數(shù)化函數(shù),打開登陸請(qǐng)求頁面,在右則的參數(shù)化中找到我們要參數(shù)化的字段,這里對(duì)用戶名和密碼做參數(shù)化,第一列是用戶名,列號(hào)為0;第二列是密碼,列號(hào)為1;修改函數(shù)中對(duì)應(yīng)的參數(shù)化字段列號(hào)就可以啦。
好了,現(xiàn)在我們的參數(shù)化設(shè)置完成,在腳本的時(shí)候,會(huì)調(diào)用我們C:\JmeterWorkSpace盤下面的t.dat文件,第一列是用戶,第二列是密碼。
2、借助jmeter中的配置元件(CSV Data Set Config)
a、選中線程組,點(diǎn)擊右鍵,添加-配置元件-CSV Data Set Config
說明:
Filename ---?參數(shù)項(xiàng)文件
File Encoding ---?文件的編碼,設(shè)置為UTF-8
Vaiable Names ---?文件中各列所表示的參數(shù)項(xiàng);各參數(shù)項(xiàng)之間利用逗號(hào)分隔;參數(shù)項(xiàng)的名稱應(yīng)該與HTTP Request中的參數(shù)項(xiàng)一致。
Delimiter ---?如文件中使用的是逗號(hào)分隔,則填寫逗號(hào);如使用的是TAB,則填寫\t;(如果此文本文件為CSV格式的,默認(rèn)用英文逗號(hào)分隔)
Recycle on EOF? ---?True=當(dāng)讀取文件到結(jié)尾時(shí),再重頭讀取文件
False=當(dāng)讀取文件到結(jié)尾時(shí),停止讀取文件
Stop thread on EOF? ---?當(dāng)Recycle on EOF為False時(shí),當(dāng)讀取文件到結(jié)尾時(shí),停止進(jìn)程,當(dāng)Recycle on EOF為True時(shí),此項(xiàng)無意義
備注說明:這里我用通俗的語言大概講一下Recycle on EOF與Stop thread on EOF結(jié)果的關(guān)聯(lián)
Recycle on EOF :到了文件尾處,是否循環(huán)讀取參數(shù),選項(xiàng):true和false
Stop thread on EOF:到了文件尾處,是否停止線程,選項(xiàng):true和false
當(dāng)Recycle on EOF 選擇true時(shí),Stop thread on EOF選擇true和false無任何意義,通俗的講,在前面控制了不停的循環(huán)讀取,后面再來讓stop或run沒有任何意義
當(dāng)Recycle on EOF 選擇flase時(shí),Stop thread on EOF選擇true,線程4個(gè),參數(shù)3個(gè),那么只會(huì)請(qǐng)求3次
當(dāng)Recycle on EOF 選擇flase時(shí),Stop thread on EOF選擇flase,線程4個(gè),參數(shù)3個(gè),那么會(huì)請(qǐng)求4次,但第4次沒有參數(shù)可取,不讓循環(huán),所以第4次請(qǐng)求錯(cuò)誤
事例下載:demo
b、使用剛才定義好的變量
至此,兩種參數(shù)化的方法就介紹完了。
需要說明一下:函數(shù)助手方法要比CSV控件方法參數(shù)化功能要弱,推薦使用CSV控件方法。
再看看與loadrunner參數(shù)化不一樣的:
1、 jmeter參數(shù)文件的第一行沒有列名稱
2、 這里要注意的是參數(shù)文件的編碼,可以使用記事本另存為就可以修改該編碼(編碼問題在使用CSV Data Set Config參數(shù)化時(shí)要求的比較嚴(yán)格)
3、 Jmeter的參數(shù)化設(shè)置沒有LoadRunner做的出色,它是依賴于線程設(shè)置的(只有CSV Data Set Config參數(shù)化方法才有)
分類:JMeter