接章節(二)JMeter學習-參數化?繼續操作;
第一章. 參數化時參數文件讀取
新建CSV Data SetConfig
第二章.配置csv? data set config
圖2
1、Filename:文件名,指保存信息的文件目錄,可以相對或者絕對路徑(當csv文件在bin目錄下時,只需給出文件名即可);
2、File Encoding:文件編碼,默認為ANSI;不填寫也可以;
3、Variable Names:參數名稱(有幾個參數,在這里面就寫幾個參數名稱,每個名稱中間用分隔符分割,分隔符使用下面的“Delimitet”中定義的;
4、Delimitet:定義分隔符,用于分隔文件中的參數,及上述Variable Names中定義的參數名稱(如果此文本文件為CSV格式的,默認用英文逗號分隔);
5、Allow Quoated data: True --設置文件中的參數值都必須用"引號"引起來,False則不需要;
6、Recycle on EOF:到了文檔尾處,是否從頭開始循環讀入,選項:true 和 false;
注:程序從CSV Data Set Config文件中,每次讀取一行,每次讀取的參數僅供一個線程使用(類似Loadrunner里面的參數唯一值功能),如果線程數超過文本的記錄行數,那么可以選擇True (從頭再次讀取);
7、Stop Thread on EOF:到了文檔尾處,是否停止線程,選項:true 和 false;
注:這里我用通俗的語言大概講一下Recycle on EOF與Stop thread on EOF結果的關聯:
?當Recycle on EOF 選擇true時,Stop thread on EOF選擇true和false無任何意義,通俗的講,在前面控制了不停的循環讀取,后面再來讓stop或run沒有任何意義;
?當Recycle on EOF 選擇flase時,Stop thread on EOF選擇true :? 線程4個,參數3個,那么只會請求3次;
?當Recycle on EOF 選擇flase時,Stop thread on EOF選擇flase,線程4個,參數3個,那么會請求4次,但第4次沒有參數可取,不讓循環,所以第4次請求錯誤;
8、Sharing Mode:設置是否線程共享
? All threads(所有線程):測試計劃中所有線程,假如說有線程1到線程n (n>1),線程1取了一次值后,線程2取值時,取到的是csv文件中的下一行,即與線程1取的不是同一行。
? Current thread group(當前線程組):假設有線程組A、線程組B,A組內有線程A1到線程An,線程組B內有線程B1到線程Bn。取值情況是:線程A1取到了第1行,線程A2取第2行,現在B1取第1行,線程B2取第2行。
? Current thread(當前線程):假設測試計劃內有線程1到線程n (n>1),則線程1取了第1行,線程2也取第1行。
第三章.傳參內容編輯
把我們需要“參數化”的數據,用記事本編寫參數化的數據:
1、保存為.dat格式的文件,編碼問題在使用CSV Data Set Config參數化時要求的比較嚴格,記事本另存為->修改編碼UTF-8;
2、若是對應的一條數據,中間用英文的逗號隔開;
3、每條數據都需要分行顯示;
4、把文件保存在某個路徑下,我們這里保存在D:\JMeter\xj.dat;
注:文件也可以保存為CSV格式;
第四章.在http請求填寫參數化內容
參數化,在需要參數化的值前加上&{參數化名稱},參數化的名稱對應csv? data set config中填寫Variable Names的值;
第五章.運行JMeter,查看結果
1、設置4條線程,每條線程循環1次,則會有四條結果;
2、可以在【請求】Tab查看傳不同的參數;