一 函數助手
${__RandomString(11,123456789,)} 可以直接復制引用
二 CSV參數化
CSV數據文件配置用於從文件中讀取行,可以是csv文件或者txt文件,並將它們拆分為變量。它非常適合處理大量變量,對於使用“隨機”和唯一值的測試也很有作用。
默認情況下,文件只打開一次,每個線程將使用文件中的不同行。但是,行傳遞給線程的順序取決於它們執行的順序
CSV數據文件設置參數解析
- 名稱:自己命名即可。
- 注釋:自己命名即可,可以為空。
- 文件名:選擇文件的路徑,點擊瀏覽選擇文件的絕對路徑即可。如果在linux服務器上,最好選擇相對路徑,把CSV文件和腳本放在同一個目錄下。
- 文件編碼:默認為ANSI(ASCII碼的拓展),可以選擇為UTF-8
- 變量名稱:CSV文件中的數值存放在變量中,供后續引用。變量可以多個,用英文逗號隔開,變量分別讀取CSV文件中的列。
- 忽略首行:如果CSV文件中設置了首行的字段,比如“用戶名”等,這些字段不是要使用的數據,那么就可以選擇忽略首行。
- 分隔符:默認是逗號,比如txt文件中,設置多個值,用英文逗號隔開。
- 是否允許帶引號:默認False
- 遇到文件結束符再次循環?:默認Ture,代表繼續從文件的第一行循環讀取數據,False表示不再循環。
- 遇到文件結束符停止線程?:默認False,Ture表示停止線程。
- 線程共享模式:默認【所有現場】
實例 以不同賬號登錄xiaoqiangshop
新建一個TXT文檔 寫入不同的賬號密碼
打開CSV數據文件設置,引入剛建立文檔 ,設置好變量名稱
在腳本中通過 ${} 分別引用賬號和密碼
三 CSV隨機參數化
在性能測試中,我們要實現這樣一個場景,模擬不同的人購買不同的商品。我們前面講的CSV參數化,是安裝表格的順序進行讀取數據,如果是隨機讀取表格的數據,我們模擬的行為就會更真實一些。
需要用到的插件:Random CSV Data Set Config
步驟:
- 在JMeter中打開插件管理器
- 選擇可用插件
- 搜索Random CSV
- 找到插件Random CSV Data Set Config 選中進行應用,然后重啟JMeter
1、下載插件,下兩個:
下載地址:https://jmeter-plugins.org/downloads/old/
下載界面如下:
還有一個插件:
下載一個jmeter的插件管理工具:http://jmeter-plugins.org/get/
把兩個插件下載好之后,放在JMeter的安裝目錄lib/ext 下,然后重啟JMeter。
2、搜索插件
選擇可用插件,搜索random,選中Random CSV Data Set Config,右下角點擊應用重啟JMeter即可。
打開Random CSV Data Set Config元件:線程組>配置元件
配置元件中的組件,一般放在測試計划下
參數說明:
- Filename(文件名):文件的路徑,直接選擇文件的絕對路徑就行,也可以寫相對路徑。
- 文件編碼:讀取文件的編碼,默認選擇UTF-8就行。
- 分隔符:默認逗號,在txt文件中,寫兩列的時候可以用逗號隔開。
- 變量名稱:引用csv配置文件中的數據,指定變量名,意思是把csv的數據讀出來,放在變量中,其他請求可以引用。
- 隨機順序:這個是這個插件的重點,選中則會隨機讀取csv中的數據,如果不選中則會順序讀取csv中的數據。
- 遇到文件結束符再次循環:勾選上循環完csv中的數據后,則會繼續循環,一般都是要選中。
- 第一行是csv標題:如果csv文件中第一行是字段,那么勾選上則不會讀取第一行的數據。
- 每個線程的獨立列表:每個線程都通過他們自己去讀取配置文件,當使用隨機順序(第5項),每個線程都將運行自己的隨機序列,而不是所有線程都經過相同的變量順序。
- 測試讀取csv文件:在使用之前,可以先測試讀取csv的值,看看是否正確。
四 , jmeter亂碼解決方法
一、新增的時候出現亂碼
方法一:
添加HTTP請求時在Content encoding后填入編碼:utf-8
看一下結果:沒有亂碼了
方法二:
在請求中加一個BeanShell前置處理器,在script中加入:
prev.setDataEncoding("utf-8"); 目的是修改響應數據編碼格式為utf-8
方法三
修改JMeter的配置文件
進入JMeter安裝目錄的bin目錄下,找到jmeter.properties文件
找到sampleresult.default.encoding這個參數,此行默認是注釋的。把注釋去掉,把ISO-8859-1改成utf-8,保存,重啟JMeter。
還有一種情況是響應出現亂碼,響應出現亂碼解決辦法也是修改JMeter的配置文件,還有就是加一個BeanShell后置處理器,在script中加入腳本:prev.setDataEncoding("utf-8");
最新版本對於編碼格式會好一些,因為習慣了用4.0版本,亂碼的時候就直接改為5.2版本,響應就不會出現亂碼了。
接口的響應格式為JSON的時候,在查看結果中選擇JSON Path Tester模式,顯示就沒問題了。