參數(shù)化釋義
什么是參數(shù)化?從字面上去理解的話,就是事先準(zhǔn)備好數(shù)據(jù)(廣義上來說,可以是具體的數(shù)據(jù)值,也可以是數(shù)據(jù)生成規(guī)則),而非在腳本中寫死,腳本執(zhí)行時從準(zhǔn)備好的數(shù)據(jù)中取值。
參數(shù)化:是自動化測試腳本的一種常用技巧,可將腳本中的某些輸入使用參數(shù)來代替,如登錄時利用GET/POST請求方式傳遞參數(shù)的場景,在腳本運(yùn)行時指定參數(shù)的取值范圍和規(guī)則。
腳本在運(yùn)行時,根據(jù)需要選取不同的參數(shù)值作為輸入,該方式稱為數(shù)據(jù)驅(qū)動測試(Data Driven Test),而參數(shù)的取值范圍被稱為數(shù)據(jù)池(Data Pool)。
在JMeter里我們可以通過配置元件來完成參數(shù)化實(shí)現(xiàn)某一場景運(yùn)行
參數(shù)化實(shí)現(xiàn)
1.CSV Data Set Config(CSV數(shù)據(jù)文件設(shè)置)
CSV可以從指定的文件中逐行提取文本內(nèi)容,根據(jù)所設(shè)置的分割符拆解本行內(nèi)容并自動關(guān)聯(lián)內(nèi)容與變量名,取樣器可以引用這些變量
CSV使用:線程組右鍵→添加→配置元件→CSV Data Set Config

各項(xiàng)參數(shù)詳解如下:
名稱 腳本顯示的這個元件的描述性名稱
文件名 待讀取文件的名稱??梢詫懭虢^對路徑,也可以寫入相對路徑(相對于Jmeter bin目錄),如果直接寫文件名,則該文件要放在bin目錄中。對于分布式測試,主機(jī)和遠(yuǎn)程機(jī)中相應(yīng)目錄下應(yīng)該有相同的CSV文件
文件編碼 文件讀取時的編碼格式,不填則使用操作系統(tǒng)的編碼格式
變量名稱 多個變量名之間必須用間隔符分割。如果該項(xiàng)為空,則文件首行會被讀取并解析為列名列表
是否忽略首行 如果CSV文件中沒有表頭,則選擇false
分割符 將一行數(shù)據(jù)分割成多個變量,默認(rèn)為逗號,也可以使用“\t”.如果一行數(shù)據(jù)分割后的值比變量名稱中定義的變量 少,這些變量將保留以前的值(如果有值的話)
是否允許使用雙引號 允許的話,變量將可以在雙引號內(nèi),并且這些變量名可以包含分割符
線程共享模式
線程共享模式,是指多個線程對文件數(shù)據(jù)取值順序模式,JMeter提供了3種模式:
所有線程?如果腳本有多個線程組,在這種模式下,各線程組的所有線程也要依次唯一順序取值。例如,腳本有2個線程組,各有2個線程,文件內(nèi)有5行數(shù)據(jù),腳本運(yùn)行時,將如下圖一樣循環(huán)往復(fù)取值:

當(dāng)前線程組 各個線程組之間隔離,線程組內(nèi)的線程順序唯一取值。

當(dāng)前線程。這種模式下,每個線程獨(dú)立,順序唯一取值。

上面寫的線程共享模式多看兩遍其實(shí)就懂了 我就不演示了
這里我寫一個CSV用來驗(yàn)證一下 JMeter里的參數(shù)化使用
用WPS寫一個CSV(當(dāng)然你用notepad++也行 我是個人習(xí)慣)

在JMeter里添加CSV(CSV要放在你要使用的腳本前面)
寫好變量名稱(我這里用的是user pwd)

登錄腳本里的消息體數(shù)據(jù)里的內(nèi)容也要換成剛剛設(shè)置的變量名稱 (你要用 參數(shù)傳值就該參數(shù)里的)

改一下線程發(fā)一下試試(我只提前注冊了4個賬號 所以這里也只用了4個線程數(shù) 發(fā)的時候用管理員賬戶關(guān)閉發(fā)帖時的圖片驗(yàn)證碼)

看下結(jié)果


OK用戶數(shù)據(jù)被讀取到了 發(fā)帖成功
補(bǔ)一其他幾種參數(shù)化方法:
2.用戶參數(shù):
創(chuàng)建方式:HTTP請求上右鍵→添加→前置處理器(Pre processors)–>用戶參數(shù)。
通過添加變量(user pwd)→添加用戶

發(fā)一下試試


ok(沒test5用戶- -忘了 請忽略)
3.用戶定義的變量
創(chuàng)建方式:線程組上右鍵→配置元件→用戶定義的變量
【用戶定義的變量】一般并非用來做HTTP請求參數(shù)化,而是用來定義全局變量,比如參數(shù)化文件路徑、host、url等。
【用戶定義的變量】創(chuàng)建在【線程組】上,則在線程組內(nèi)生效,如果創(chuàng)建在【Test Plan】上,則對所有線程組生效。

4.隨機(jī)數(shù)
創(chuàng)建方式:工具→函數(shù)助手對話框→選擇一個功能→Random
這個腳本用不上 我網(wǎng)上找個圖給大家瞅一下吧


運(yùn)行腳本,察看結(jié)果樹,可以看到效果:

這種方式適用于值在一定區(qū)間無規(guī)律隨機(jī)取值的變量參數(shù)化,例如價格、數(shù)量等,并不適用于有較強(qiáng)規(guī)則的變量進(jìn)行參數(shù)化,例如手機(jī)號。