一.jmeter進行參數化
方式1:通過CSV data set config
1.add-config element-CSV data set config
其中,
filename:參數化檔案的絕對路徑
file encoding:指明編碼格式,讀取檔案時的編碼格式;預設為ANSI
Variable Names :變量名稱。多個變量名之間必須用分隔符分隔。如果該項為空,則檔案首行會被讀取并解析為列名清單
Ignore first line:是否忽略首行?如果csv檔案中沒有表頭,則選擇false
Delimiter:分隔符。将一行資料分隔成多個變量,預設為逗号,也可以使用“\t”。如果一行資料分隔後的值比Vairable Names中定義的變量少,這些變量将保留以前的值(如果有值的話)
Allow quoted data?:是否允許變量使用雙引号?允許的話,變量将可以括在雙引号内,并且這些變量名可以包含分隔符
Recycle on EOF?:遇到檔案結束符是否再次循環?預設為 true
Stop thread on EOF?:遇到檔案結束符是否停止線程?預設為 true
Sharing mode:線程共享模式。1、All threads(預設):一個線程組内,各個線程(使用者)唯一順序取值;2、current thread:一個線程組内,各個線程(使用者)各自順序取值;3、線程組各自獨立,但每個線程組内各個線程(使用者)唯一順序取值;
2.設定線程組
1S内發起4個線程(循環一次)
3.請求接口引用CSV生成的變量
4.執行請求,檢視結果樹
方式2:通過function helper(函數助手)
1.點選函數助手
2.在彈出面闆選擇CSVread
需要填寫兩行:
第一行是參數化檔案的位置,同方式1
第二行是你需要參數化的列,注意下标從0開始
随後點選generate & copy to clipboard
在左側會生成參數表達式,并自動複制
3.用這個參數表達式替換請求參數
4.執行HTTP請求,如圖所示成功執行但是請求參數中文出現亂碼
二.方式2請求出現亂碼問題解決
1.參數化檔案編碼是utf-8,推測應該是jmeter讀取是按照别的格式
分别采用了設定接口請求頭為utf-8,
修改bin下的配置檔案并重新開機:jmeter.properties,
添加BeanShell Sampler/BeanShell PostProcessor,在Script處填寫如下代碼:prev.setDataEncoding(“utf-8”);
但是都沒有用…
因為方式1的file encoding預設是ANSI,推測函數助手讀取預設也是這個編碼
2.記事本方式打開CSV檔案,選擇另存為,編碼選擇ANSI
替換原檔案儲存即可
3.重新執行HTTP請求,亂碼問題解決
注:
但是這種方式會導緻方式1出現亂碼,因為方式1中我們設定的是通過utf-8格式去讀取
參考文章:
https://zhuanlan.zhihu.com/p/112955910
https://blog.csdn.net/mu_wind/article/details/108225919