Jmeter配置元件——CSV DataSet Config引數化
在聊CSV DataSet Config配置元件前,先來討論下為何要引數化?
比如在做效能測試過程中, 一般我們需要模擬多個使用者進行操作, 為了滿足實際場景, 模擬真實的使用者行為, 我們需要做到模擬的使用者帳號或其它資訊都是不同的, 這時我們就需要用到引數化。 Jmeter中, 配置元件可以解決此問題。
前言
Jmeter配置元件可以用來進行引數化、 初始化預設值和變數、 儲存伺服器的響應資訊以及配置連結資料庫等。 JMeter引數化一般使用配置元件中的CSV DataSet Config或者JDBC ConnectionConfiguration來進行引數化。今天,先來使用CSV DataSet Config進行引數化。
CSV Data Set Config元件:
該元件可以用來讀取csv或dat檔案的資料,然後通過設定把讀取到的資料關聯到Jmeter中的變數儲存,csv檔案可以使用execl表格工具去進行編輯。分兩種檔案來講解:txt檔案和csv檔案。
基礎配置
介面欄位說明:
名稱、註釋與之前元件一樣可以隨意設定。
Filename:指儲存資訊的檔案目錄,可以相對或者絕對路徑,相對路徑從Jmeter的啟動目錄(***/bin)路徑。
File Encoding:檔案編碼,預設為ANSI,建議設定為utf-8,防止遇見亂碼情況。
Variable Names:引數名稱,每個名稱中間用分隔符分割,分隔符使用下面的“Delimitet”中定義的,預設用逗號隔開,與引數檔案的引數對應。如果設定的引數名稱多於引數檔案中的引數,多餘的引數取不到值;反之引數檔案中的引數將沒有引數對應。
Delimitet:定義分隔符,用於分隔檔案中的引數,及上述Variable Names中定義的引數名稱。
Allow Quoated data?:是否允許引用資料,設定為True ,設定檔案中的引數值都必須用引號引起來,False則不需要
Recycle on EOF ?:遇到檔案結束符時,是否從頭開始迴圈讀入,設定為True,則從頭開始繼續迴圈
Stop Thread on EOF ?:當Recycle on EOF 設定為False並且Stop Thread on EOF為True,則讀完csv檔案中的記錄後, 停止執行
Sharing Mode:引數檔案共享模式,有三個設定,說明如下:
All threads:引數檔案對所有執行緒共享,包含同一測試計劃中的不同執行緒組。
Current thread group:只對當前執行緒組中的執行緒共享。
Current thread:僅當前執行緒獲取。
介面如下圖所示:
配置元件新增路徑如下所示:
引數化
我們已經基本瞭解了該配置元件,那就來實踐一番。
引數化一:csv檔案
如何配置csv檔案?
新建一個xls檔案,再另存為csv檔案即可。
這個很簡單,我們主要是來看如何引用csv檔案,而達到引數化的效果。
①配置介面
我們先來看配置介面,如下所示:
需要注意的是,file encoding檔案編碼填寫的是GB2312,不是utf-8,需要格外注意,不然就會出現亂碼的現象,如下所示:
②準備csv檔案
檔案內容填寫如下:
③引入引數化
我們在配置介面填寫的變數名為keyword,所以引入到介面中,也用該變數名,如下所示:
④檢視引數化結果
執行指令碼,檢視結果,如下所示:
介面每次請求,關鍵字都是不同的,就達到了引數化的效果。
引數化二:txt檔案
我們瞭解csv引數化之後,對於txt檔案引數化,都是類似配置。我們新建一個txt文字檔案,輸入內容並儲存即可。
①配置介面
配置介面如下:
②注意點
file encoding檔案編碼填寫的是utf-8,不是GB2312。需要格外注意的是,文字檔案儲存時,預設為ANSI格式檔案,即可介面配置為utf-8,但還是會出現亂碼的現象,如下所示:
配置為utf-8,還是會亂碼,解決辦法為:將txt檔案另存為重新儲存,選擇檔案格式為utf-8儲存即可。
③準備txt檔案
內容輸入如下圖所示:
④引入引數化
我們在配置介面填寫的變數名為keyword,所以引入到介面中,也用該變數名,如下所示:
⑤檢視引數化結果
執行指令碼,檢視結果,如下所示:
總結
無論是用csv檔案還是txt檔案進行引數化,配置方式都類似。需要注意的就是,檔案編碼的格式問題,配置錯了,就會導致亂碼的情況。配置項中,如果引數化檔案第一行填寫了引數名稱,配置的時候,則需要忽略第一行。
本文僅代表作者觀點,系作者@溫一壺清酒發表。
歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。
文章出處:http://www.cnblogs.com/hong-fithing/