先說說利用jmeter生成數據的幾種方法:
1、CSV Data Set Config
這個元件被用來在參數化生成數據時使用,簡單高效,容易生成有序數;只需要新建excel,然後通過拖拽、複製黏貼等方式產生不同的數據,然後讀取調用即可。
但它也有不足之處,如下:
①如果數據庫中某些表的某些字段不允許重複(比如訂單號),那麼在完成一輪測試後,再次測試需要重新手動構造新的不重複的數據;
②excel只有數字格式纔可以通過拖拽生成增長數據;
③數據量過大時,容易被excel修改爲科學計數法;
PS:關於該元件以及參數化,請參考之前的博客:http://www.cnblogs.com/imyalost/p/6229355.html
2、${_Random}
${_Random}是jmeter函數助手裏面自帶的一個函數,作用是返回指定的最大值和最小值之間的一個隨機數。
缺點:數值可能會重複出現;
PS:關於jmeter函數助手,請參考之前的博客:http://www.cnblogs.com/imyalost/p/6802173.html
如果需要引用的數據量較大,且要求不能重複或者需要自增,那麼可以使用計數器來實現。
計數器(counter):允許用戶創建一個在線程組之內都可以被引用的計數器。
計數器允許用戶配置一個起點,一個最大值,增量數,循環到最大值,然後重新開始,繼續這樣,直到測試結束。計數器使用long存儲的值,所取的範圍是2^63——2^63-1.
1、啓動jmeter,添加線程組,右鍵添加配置元件——計數器
計數器界面如下:
啓動(start):給定計數器的起始值、初始值,第一次迭代時,會把該值賦給計數器
PS:英文版是Start,Jmeter的中文語言將Start翻譯成了“啓動”,有些歧義
遞增(Increment):每次迭代後,給計數器增加的值
最大值(Maximum):計數器的最大值,如果超過最大值,重新設置爲初始值(Start),默認的最大值爲Long.MAX_VALUE,2^63-1(如果持續壓測,建議最好不要設置最大值)
Number format:可選格式,比如000,格式化爲001,002;默認格式爲Long.toString(),但是默認格式下,還是可以當作數字使用
引用名稱(Reference Name):用於控制在其它元素中引用該值,形式:$(reference_name}
與每用戶獨立的跟蹤計數器(Track Counter Independently for each User):全局的計數器,如果不勾選,即全局的,比如用戶#1 獲取值爲1,用戶#2獲取值還是爲1;
如果勾選,即獨立的,則每個用戶有自己的值:比如用戶#1 獲取值爲1,用戶#2獲取值爲2。
每次迭代復原計數器(Reset counter on each Thread Group Iteration):可選,僅勾選與每用戶獨立的跟蹤計數器時可用;
如果勾選,則每次線程組迭代,都會重置計數器的值,當線程組是在一個循環控制器內時比較有用。
2、具體過程
①計數器設置
②取樣器設置
③結果樹請求內容
從上圖可以看出,計數器成功的生成了我們所需的值。