實操jmeter連數據庫並使用數據庫中的數據實現小批量併發

jmeter連數據庫並使用數據庫中的數據實現小批量併發

覆盤一下週五遇到的問題,用jmeter的jdbc請求連接數據,並記錄一下jmeter實現併發。

jmeter連接數據庫

1、在jmeter中創建線程組,這裏不詳細說明

2、在該線程組下面,添加jdbc連接配置的配置元件
在這裏插入圖片描述
備註:
database url:jdbc:mysql://127.0.0.1/tinyshop?serverTimezone=UTC
jdbc driver class:com.mysql.jdbc.Driver
3、添加jdbc請求
在這裏插入圖片描述
備註:
sql語句:select name,password from tiny_user
在這裏插入圖片描述
到這裏,我們就使用jmeter連接數據庫,取到了tiny_user表中的name,password字段的所有數據,下面我們繼續使用jmeter使用從數據庫中取到的數據,進行登錄接口的併發。

4、我這裏最終實現的jmeter腳本結構如下:
在這裏插入圖片描述
先介紹一下,我這裏登錄接口併發的背景,我這裏登錄接口涉及到兩個,第一個要先獲取登錄的token,第二使用該token登錄相應的賬號。所以在jmeter中,我們需要添加一個cookie manager(cookie管理器來保持會話不斷開)。

再分析一下我們的場景,假設我們這裏做10個用戶登錄的小併發,那麼我們就要從數據庫中取10個賬號和密碼,在下面的登錄接口對這些賬號進行引用。

怎樣可以引用到這10個賬號呢?可想而知,我們可以在裏面添加一個循環控制器,在我們的取出的10個數據中去循環引用,但是需要考慮到的是我們每次循環的時候,我們最終引用到的變量名是類似於${name_N},這裏的N又是不同的,所以我們還需要使用到jmeter中的嵌套函數:__V(有點抽象,可以看下面的圖理解)

線程組設置:
在這裏插入圖片描述

請求默認值配置元件詳細設置:
在這裏插入圖片描述
cookie管理器配置元件只需要添加,不需要配置參數

這個是上面說過的jdbc連接配置:
在這裏插入圖片描述

jdbc請求詳細設置,這裏取10條賬戶數據做併發,所以在sql語句上加了limit 10:
在這裏插入圖片描述

獲取登錄token接口:
在這裏插入圖片描述
爲了方便理解循環控制器,我這裏又加了一個debug sampler(調式取樣器),想看到前面取到的變量,可以在調試取樣器中看到,如下:

可以看到從數據庫中取到的10個name值,jmeter中自動命名成了name_N的形式,並且我們可以看到 name_# 就是我們取到的name值的個數
在這裏插入圖片描述
所以我們的循環控制器的詳細設置如下:
在這裏插入圖片描述

循環控制器下面還有一個計數器,因爲是嵌套調用,這裏需要一個計數器:
在這裏插入圖片描述
登錄接口中參數的嵌套調用:
在這裏插入圖片描述
同步定時器(集合點)詳細設置:
(同步定時器設置的是10個請求同步,所以前面的線程數爲10,只要大於等於10的都可以)

在這裏插入圖片描述

執行該腳本,在以表查看結果中我們就可以看到,10個登錄請求的時間是一樣的,這裏就實現了10個登錄請求的併發
在這裏插入圖片描述

好了,到這裏就在jmeter中實現了從數據庫中獲取數據,並且,使用該數據來實現併發的操作!

備註:可以在最後添加一個aggregate report聚合報告

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章