有些情況下我們需要讀取平台中的用戶作為參數,比如用戶ID作為參數進行壓力測試,我們可以使用CSV文件,如果這樣做,需要每一次
都構造文件,比較麻煩。如果可以查詢數據庫,將查出的數據作為參數循環傳入的話就很方便了,JMETER 可以很方便的實現這個。
下面就介紹一下做法:
為了簡單實現:
我實現的目標是:
1.從數據庫讀出數據。
2.把這些數據循環寫到文件中。
1.配置驅動

在測試計划處選取jar文件,這里我選擇mysql的驅動程序。
2.配置 JDBC連接池
紅框表示連接池名稱,之后的執行查詢操作需要使用到這個連接池名稱。

3.配置一個jdbc request 查詢用戶並把用戶id作為變量存儲到用戶上下文變量中。

1.填寫數據庫連接池名稱。
2.填寫需要執行的SQL語句,我們查詢數用戶表的ID作為參數。
3.Variable names 填寫變量名前綴。
實際的變量存儲 是 變量前綴名 +_ + 索引
用戶可以通過索引獲取變量,下文還有介紹,比如上面的定義,我們可以通過代碼 獲取這個變量,比如 vars.get("uuid_" + index)。
4.獲取用戶總數並放入變量中。
我們通過獲取用戶的總數,這個的作用是我們可以獲取這個變量數據,決定之后循環的次數。

我們獲取用戶的總數,並用來控制下一步循環的次數。
5.執行循環獲取用戶的ID數據作為參數
控制循環的次數,這里通過變量表達式獲取用戶的總數,應為用戶的總數只有一個值,所以可以通過 count_1 來獲取這個值。

增加計數器,用來讀取變量。計數器從1開始,每次迭代增加1。

讀取變量
增加一個beanshell取樣器。

這個作用是:
1.讀取計數器
2.通過變量讀取之前的用戶id 數據。
3.將讀取的數據寫入到文件中。
我們執行后,查看生成的文件。

這個文件和數據庫的數據一致,這樣就實現類讀取數據的數據實現參數化。
上面的例子中,我們可以通過 變量前綴加 索引獲取結果,還有一種方法也是可以獲取變量的。
我們可以使用:
Result Variable name 來做。
上面修改如下:

Result Variable name 填寫ids

計數器從0開始。

關鍵的代碼如下:
vars.get("ids").get(index).get("id_").toString();
我們可以使用調試采樣器,來顯示上下文的變量數據,使用非常方便。

效果如下:

有了調試器,我們可以很方便的查看上下文的變量。
