1. 程式人生 > 其它 >Jmeter連線資料庫進行增刪改查

Jmeter連線資料庫進行增刪改查

1 【JDBC Connection Configuration】

1.1 先新增【配置元件】——【JDBC Connection Configuration】

1.2【JDBC Connection Configuration】配置

Variable Name for created pool:變數名稱,之後【JDBC Request】中會用到

Max Number of Connections:最大連線數,比如10

DatabaseURL:連線地址,jdbc:mysql://localhost:3306/student_info?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=UTC

JDBC Driver class:驅動,選擇mysql

Username:資料庫使用者名稱,root

Password:資料庫密碼,123456

其他值預設即可

2 【JDBC Request】

2.1 新增【取樣器】——【JDBC Request】

2.2 【JDBC Request】配置——查詢學生資訊

Select Statement:

作者:麥芒
連結:https://www.imooc.com/article/21205
來源:慕課網

SQL語句:Select * from `student`;

執行結果:

2.3 執行驅動報錯解決辦法

將【mysql-connector-java-8.0.11.jar】放到Jmeter/lib/ext目錄下即可,

mysql-connector-java-8.0.11.jar下載地址:

連結:https://pan.baidu.com/s/1RN2Qd6Lv5kiMx9tAtniqBw
提取碼:idas

2.4 【JDBC Request】配置——修改學生資訊

例:將“江小白”的郵箱修改為[email protected]

SQL語句:UPDATE `student` SET email = '[email protected]' WHERE name = '江小白';

執行結果:

檢視資料庫中江小白的郵箱已修改:

2.5 【JDBC Request】配置——新增學生資訊

SQL語句:INSERT INTO `student`(`id`, `class_name`, `course_name`, `email`, `name`, `score`, `sex`, `student_id`) VALUES (12, '八年一班', '數學', '[email protected]', '李四', 95, 'girl', '010');

執行結果:

檢視資料庫已增加此條資料:

2.6 【JDBC Request】配置——刪除學生資訊

刪除資料庫中id為12的學生資訊:

執行結果:

檢視資料庫中id為12的學生已被刪除:

2.7 結合引數化批量新增學生

2.7.1 使用【計數器】實現id自增

Maximum Value:計數器使用long儲存的值,預設時為2^63-1,長時間壓測時一般不需要填

數字格式:可選格式,比如000,格式化為001,002;預設格式為Long.toString(),但是預設格式下,還是可以當作數字使用

引用名稱:用於在其它元素中引用該值

與每使用者獨立的跟蹤計數器(Track Counter Independently for each User):

(1)不勾選,則多執行緒測試時,執行緒2不會重置為從設定的起始值開始,會延續執行緒1的計數

(2)勾選,但不勾選“在每個執行緒組迭代上重置計數器”,則多執行緒測試時,執行緒2會重置為從設定的起始值開始,不會延續執行緒1的計數

(3)勾選,且勾選“在每個執行緒組迭代上重置計數器”,則單個執行緒每次迴圈時也會重置為設定的起始值

2.7.2 修改【JDBC Request—新增學生資訊】中的SQL

將修改【JDBC Request—新增學生資訊】中的SQL`id`欄位對應的值改為${userid},即引用計數器中設定的變數名

SQL改為:INSERT INTO `student`(`id`, `class_name`, `course_name`, `email`, `name`, `score`, `sex`, `student_id`) VALUES (${userid}, '八年一班', '數學', '[email protected]', '李四', 95, 'girl', '010');

2.7.3 設定執行緒數和迴圈次數

如,執行緒數:2,迴圈次數:3

2.7.4 執行結果對比

與每使用者獨立的跟蹤計數器(Track Counter Independently for each User):

(1)不勾選

如下圖所示,6個請求全部執行成功,且id從20到25

檢視資料庫中6個使用者全部新增成功:

(2)勾選,但不勾選“在每個執行緒組迭代上重置計數器”

如下圖所示,只有執行緒1的請求全部執行成功,執行緒2的請求全部執行失敗,執行緒1的id值為從20-22,執行緒2的id值也為從20-22 

檢視資料庫中只新增了3個使用者:

(3)勾選,且勾選“在每個執行緒組迭代上重置計數器”

如下圖所示,只有執行緒1的第1個請求執行成功,其他5個請求執行失敗,每次請求的id值都為20

檢視資料庫中,只成功新增了id為20的一條資料:

2.8 Query Type帶Prepared與不帶的區別

Query Type選擇“Update Statement”和“Prepared Update Statement”的區別:帶Prepared,SQL語句中可以帶引數,與下面的“Parameter values”和“Parameter types”連用。

比如上面批量插入的例子,可以用另一種方式:

SQL語句中引數用?號代替,然後在下面的“Parameter values”中傳入值,在“Parameter types”中傳入型別,多個變數以逗號分隔即可。實際效果與SQL中直接傳入${userid}一樣,但這種方式必須選擇為Prepared Update Statement才能執行成功,選擇Update Statement執行會報錯。如果在SQL中直接傳入${userid},則選擇“Update Statement”和“Prepared Update Statement”兩種方式皆可執行成功。