Jmeter進階技能-數據庫信息,傳遞參數


由於項目的緣由,假設咱們要實現以下要求:從數據庫的用戶表裏獲取用戶信息,並做爲參數所有傳遞給登陸請求,分別完成登陸操做。java

01Jmeter鏈接數據庫mysql

一、添加JDBC Connection Configurationsql

(右鍵測試計劃-->配置元件-->JDBC Connection Configuration)數據庫

二、配置數據庫鏈接信息,其中

DataBase URL: oop

jdbc:mysql://192.168.88.130:3306/dataname?useUnicode=true&characterEncoding=utf-8測試

1)192.168.88.130:3306爲數據庫的地址和端口號;dataname爲數據庫名編碼

2)useUnicode=true&characterEncoding=utf-8 指定字符的編碼解碼格式utf-8spa

JDBC Driver Class :
線程

com.mysql.jdbc.Driver 此爲mysql數據庫的驅動3d

Username: 數據庫的登陸用戶名

Password: 數據庫的密碼

 

 

三、導入mysql驅動包

下載好mysql的驅動包(mysql-connector-java-5.1.7-bin.jar),

放到jmeter的lib目錄下

選中測試計劃,添加mysql驅動包

 

 

02添加Jdbc請求

 

添加jdbc請求並設置變量

一、添加線程組-->右鍵線程組-->添加jdbc request,並作好設置

二、添加Debug PostProcessor用於查看變量phone值的獲取,添加查看結果樹並運行;獲得如下結果。
說明jmeter發起的jdbc請求及變量設置正常

 

 

03循環讀取庫的用戶信息

實現循環讀取庫的用戶信息,並傳遞到下一個登陸請求

接下來就要思考怎麼將查庫獲得的用戶手機號,做爲參數傳遞給下一個登陸請求。

這裏須要引用到 ForEach控制器

一、添加ForEach控制器(右鍵線程組-->邏輯控制器-->ForEach控制器),並先嘗試以下設置

 

輸入變量的前綴:phone;

從以前的jdbc request設置的變量得知,咱們要取的值爲phone_一、phone_二、phone_3......,因此這裏輸入phone

Start index for loop:0;

變量循環啓動的索引,第一個元素起始索引+1

End index for loop:6;

變量循環結束的索引。

因此這裏是取值phone_一、phone_二、...、phone_6

輸出的變量名稱:t_phone;

用於替換循環下的請求的變量

二、在ForEach控制器下添加登陸請求,並進行變量引用

 

三、運行後,查看結果,成功從庫裏獲取了前6個用戶手機號,並分別成功登陸

 

 

以上這種處理須要自行查庫獲知總共有多少個用戶,再去設置ForEach控制器的End index for loop值(設置爲用戶總數),就能夠將庫裏全部用戶進行參數傳值登陸了;

 

問題:能不能jmeter自動去獲知數據庫表的用戶數,而後去循環取值進行登陸呢?

 

固然能夠,先用jdbc request查出用戶數,再直接對ForEach控制器的End index for loop值進行設置就ok了

 

實操:

a、添加一個jdbc請求,查詢用戶表的用戶總數,並設置變量count
b、設置ForEach控制器的End index for loop值

 

c、運行,查看結果成功

 

本文由檸檬班土豆老師原創

相關文章
相關標籤/搜索