jmeter學(xué)習(xí)指南之參數(shù)化CSVDataSetConfig

今天大家一起來學(xué)習(xí)一下參數(shù)化的一個(gè)重要工具,我們?cè)趯懩_本時(shí),經(jīng)常要用到參數(shù)化,而實(shí)現(xiàn)參數(shù)化最常用的方法之一就是使用CSV Data Set Config元件,使用方便,功能強(qiáng)大。

創(chuàng)新互聯(lián)建站"三網(wǎng)合一"的企業(yè)建站思路。企業(yè)可建設(shè)擁有電腦版、微信版、手機(jī)版的企業(yè)網(wǎng)站。實(shí)現(xiàn)跨屏營(yíng)銷,產(chǎn)品發(fā)布一步更新,電腦網(wǎng)絡(luò)+移動(dòng)網(wǎng)絡(luò)一網(wǎng)打盡,滿足企業(yè)的營(yíng)銷需求!創(chuàng)新互聯(lián)建站具備承接各種類型的成都做網(wǎng)站、網(wǎng)站建設(shè)項(xiàng)目的能力。經(jīng)過10年的努力的開拓,為不同行業(yè)的企事業(yè)單位提供了優(yōu)質(zhì)的服務(wù),并獲得了客戶的一致好評(píng)。


簡(jiǎn)單的使用方法估計(jì)大家都會(huì),或者說很容易就會(huì)了,但是,如果說是比較復(fù)雜的配置,估計(jì)就有很多人會(huì)被繞暈了(我剛開始也經(jīng)常暈~),今天咱們就詳細(xì)看看,怎么才能不暈!哈哈

首先來看一眼長(zhǎng)啥樣,相信大家都比較熟悉
jmeter學(xué)習(xí)指南之參數(shù)化CSV Data Set Config

jmeter學(xué)習(xí)指南之參數(shù)化CSV Data Set Config
該元件的作用:
從文件中讀取變量值,用于變量的參數(shù)化,可設(shè)置多種讀取方式。

各填寫項(xiàng)說明:

1、名稱、注釋:元件的名稱及注釋,可自定義

2、Config the CSV Data Source:配置數(shù)據(jù)源

1)Filename:csv文件的名稱

注意:這里要包括文件的路徑,在4.0版本中可以點(diǎn)擊右側(cè)的瀏覽按鈕選擇文件,會(huì)自動(dòng)帶上文件的絕對(duì)路徑;
另外,當(dāng)csv文件在jmeter的bin目錄或腳本目錄時(shí),只需給出文件名即可;
使用相對(duì)路徑時(shí),jmeter默認(rèn)先去bin目錄下查找,然后去腳本目錄下查找;


2)File encoding:csv文件編碼

默認(rèn)使用當(dāng)前操作系統(tǒng)的編碼格式;
如果文件中包含中文亂碼時(shí),可嘗試utf-8、gbk等;


3)Variable Names(comma-delimited):

csv文件中各列的名字(有多列時(shí),用英文逗號(hào)隔開列名);
名字順序要與內(nèi)容對(duì)應(yīng),這個(gè)變量名稱是在其他處被引用的,所以為必填項(xiàng)。


4)Delimiter(use “t” for tab):csv文件中的分隔符(用”t”代替tab鍵)

一般情況下,分隔符為英文逗號(hào),保持默認(rèn)就行
5)Allow quoted data?:是否允許數(shù)據(jù)內(nèi)容加引號(hào)

6)Recycle on EOF?:

到了文件尾是否循環(huán),True—繼續(xù)從文件第一行開始讀取,F(xiàn)alse—不再循環(huán);
此項(xiàng)與下一項(xiàng)的設(shè)置為互斥關(guān)系,即true-false,或false-true;


7)Stop thread on EOF?:

到了文件尾是否停止線程,True—停止,F(xiàn)alse—不停止;
注意:當(dāng)Recycle on EOF設(shè)置為True時(shí),此項(xiàng)設(shè)置無效。


8)Sharing mode:共享模式

All threads –所有線程,此元件作用范圍內(nèi)的所有線程共享csv數(shù)據(jù),每個(gè)線程依次讀取csv數(shù)據(jù),互不重復(fù);
Current thread group—當(dāng)前線程組,在此元件作用范圍內(nèi),以線程組為單位,每個(gè)線程組內(nèi)的線程共享csv數(shù)據(jù),依次讀取數(shù)據(jù),互不重復(fù);
Current thread—當(dāng)前線程,在此元件作用范圍內(nèi),每次循環(huán)中所有線程取值一樣;
 
下面重點(diǎn)分析一下Allow quoted data和Sharing mode:

1、Allow quoted data?:是否允許帶雙引號(hào)的數(shù)據(jù)

此項(xiàng)實(shí)際是控制csv文件中的雙引號(hào)是否為有效字符;
如果數(shù)據(jù)帶有雙引號(hào)且此項(xiàng)設(shè)置TRUE,則會(huì)自動(dòng)去掉數(shù)據(jù)中的引號(hào)使能夠正常讀取數(shù)據(jù),且即使引號(hào)之間的內(nèi)容包含有分隔符時(shí),仍作為一個(gè)整體而不進(jìn)行分隔;
如果數(shù)據(jù)帶有引號(hào)且此項(xiàng)設(shè)置為FALSE,則讀取數(shù)據(jù)報(bào)錯(cuò);
如果希望雙引號(hào)字段中間再包含雙引號(hào),則需要加兩個(gè)雙引號(hào)來代表單個(gè)雙引號(hào)。(啊啊啊,太拗口了?。。。?br/>如下圖所示,此項(xiàng)設(shè)置為true時(shí),"2,3"-->2,3;"4""5"-->4"5
jmeter學(xué)習(xí)指南之參數(shù)化CSV Data Set Config
2、Sharing mode:共享模式

(1)All threads:針對(duì)所有線程組的所有線程,每個(gè)線程取值不一樣,依次取csv文件中的下一行。

假如說有線程1到線程n (n>1),線程1取了一次值后,線程2取值時(shí),取到的是csv文件中的下一行,即與線程1取的不是同一行。不管是單個(gè)線程組還是多個(gè)線程組,每個(gè)線程都是依次取下一行。需要注意的是,當(dāng)一個(gè)線程組中有多個(gè)請(qǐng)求時(shí),對(duì)于每個(gè)線程來說,在一次循環(huán)中每個(gè)請(qǐng)求的取值是一樣的。

下面舉例說明:

          A、設(shè)置線程組1、2、3分別為1并發(fā)、1次循環(huán),且各線程組按順序執(zhí)行:
jmeter學(xué)習(xí)指南之參數(shù)化CSV Data Set Config

     B、設(shè)置線程組1、2、3分別為1并發(fā)、2次循環(huán),且各線程組按順序執(zhí)行:
jmeter學(xué)習(xí)指南之參數(shù)化CSV Data Set Config

 C、設(shè)置線程組1、2、3分別為2并發(fā)、1次循環(huán),且各線程組按順序執(zhí)行:
jmeter學(xué)習(xí)指南之參數(shù)化CSV Data Set Config
     大家可以仔細(xì)比較一下上圖和上上圖的區(qū)別,乍一看貌似是一樣的,但是實(shí)際卻是不同的線程,怎么區(qū)分不同線程呢?

    可以使用一個(gè)函數(shù)來判斷:

     ${__BeanShell(ctx.getThread().getThreadName().toString())}

    這個(gè)函數(shù)可以輸出類似這樣的內(nèi)容:“線程組1 1-2“,前面是當(dāng)前線程組的名稱-線程組1,后面是線程組id,然后是線程id,現(xiàn)在再比較上面兩圖中,發(fā)現(xiàn)是線程id不一樣。

    總體來說就是,在All Threads模式下,并發(fā)數(shù)和循環(huán)數(shù)都會(huì)讀取不同的csv數(shù)據(jù),但是同一線程組內(nèi)的多個(gè)sampler總是取相同的值。

(2)Current thread group:當(dāng)前線程組,

    取值情況是:以線程組為單位,每個(gè)線程組內(nèi)的線程都會(huì)從第1行開始取值并依次往下進(jìn)行取值。

    舉例如下:

    A、設(shè)置線程組1、2均為2并發(fā)、1循環(huán):
jmeter學(xué)習(xí)指南之參數(shù)化CSV Data Set Config
   (3)Current thread:當(dāng)前線程。

       取值情況是:每個(gè)線程都會(huì)從第1行開始取值并依次往下進(jìn)行取值,在同一次循環(huán)中所有的線程取值一樣。

      舉例如下:

          A、設(shè)置線程組1、2均為2并發(fā)、1循環(huán):
jmeter學(xué)習(xí)指南之參數(shù)化CSV Data Set Config
   上面兩個(gè)圖看起來好像是一樣的呀?再仔細(xì)看一下,后面的test參數(shù)取值是不同的。

為什么不同呢?本來想認(rèn)真的解釋一番,但是組織了很久的語言,還是感覺沒說清楚。

這一塊的邏輯是“只可意會(huì),不可言傳”,必須要靠自己親自實(shí)驗(yàn),慢慢體會(huì)才行。

最后,給大家一個(gè)小作業(yè):

如何通過設(shè)置Sharing moder的方法來實(shí)現(xiàn)多個(gè)sampler中的參數(shù)可以依次不重復(fù)的取同一個(gè)csv文件中的值?

jmeter視頻:https://edu.51cto.com/course/14305.html

網(wǎng)頁名稱:jmeter學(xué)習(xí)指南之參數(shù)化CSVDataSetConfig
分享網(wǎng)址:http://muchs.cn/article22/pgojcc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、品牌網(wǎng)站建設(shè)、網(wǎng)站排名、App開發(fā)外貿(mào)建站、網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)