Jmeter之DB

1.?配置(jmeter jdbc connection configuration)

使用對應的數(shù)據(jù)庫需將數(shù)據(jù)庫對應的jar包拷貝到Jmeter\lib\ext,然后重啟Jmeter否則導入的jar包不會生效。

1.1 測試計劃-添加-配置元件-JDBCConnection Configuration

1.2 配置

1.2.1?mysql配置

Jmeter?Mysql配置

若要sqlQuery需要查詢多個sql時Database,URL后面需要拼接allowMultiQueries=true,見下圖

sqlQuery查詢多個SQL配置

1.2.2 oracle配置

Jmeter Mysql配置

1.2.3 sqlServer配置

Jmeter Mysql配置

可以參考:https://blog.csdn.net/sunwangdian/article/details/50737270

1.2.4 MongoDB配置

請參考:https://www.cnblogs.com/yangxia-test/p/4023905.html

2.操作(JDBC PreProcessor)

JDBC配置請求

2.1?Sampler> JDBC Request

Sampler可以向數(shù)據(jù)庫發(fā)送一個jdbc請求(sql語句),并獲取返回的數(shù)據(jù)庫數(shù)據(jù)進行操作。需要與JDBC Connection Configuration配置原件(配置數(shù)據(jù)庫連接的相關屬性,如連接名、密碼等)一起使用。

?? JDBC Request的Variable Name(連接池的變量名稱)要與JDBC

Connection Configuration的Variable Name保持一致;否則連接DB失敗。

2.1.1?QueryType選擇

1)Select Statement:執(zhí)行第一條查詢語句。

2)Updata Statement:執(zhí)行第一條更新語句,包括(insert,updata,delete)。

3)Callable Statement:執(zhí)行多條sql語句。

4) Prepared Select Statement:執(zhí)行一條帶參數(shù)的查詢語句。

5) Prepared Updata Statement:執(zhí)行一條帶參數(shù)的更新語句,包括(insert,updata)。

6) Commit:將未存儲的sql語句結果寫入數(shù)據(jù)庫表。

7) Rollback:撤銷指定sql語句的過程。

8) AutoCommit(true):無論何種情況,都自動提交將結果寫入,結束當前事務開始下一個事務。

2.1.2 JDBC Request 參數(shù)說明:

1) Parameter values:參數(shù)值

2)Parameter types:參數(shù)類型

Parameter valus與Parameter types使用方法圖? ??

3) Variable names:保存sql語句返回結果的變量名

Variable names配置

?使用方法請參考:https://blog.csdn.net/foreverlemon/article/details/73792775

4) Result variable name:創(chuàng)建一個對象變量,保存所有返回的結果

?Result variable name

使用方法請參考:https://www.cnblogs.com/licl11092/p/6862010.html

5) Query timeout:查詢超時時間

6) Handle result set:定義如何處理由callable statements語句返回的結果

2.1.3 Sql query與參數(shù)說明使用參數(shù);

在JDBC Request的input框中都可以使用參數(shù),參數(shù)引用方式${test}。

JDBC Request參數(shù)引用參考圖

2.2?前置處理器>JDBC PreProcessor/后置處理器>JDBC PostProcessor

JDBC PreProcessor在sampler?執(zhí)行前操作數(shù)據(jù)庫,JDBC PostProcessor在sampler?執(zhí)行后操作數(shù)據(jù)庫;與JDBC Request作用范圍不一樣,其它使用方法都相同。

3.??獲取DB查詢結果

3.1?Variable names方式獲取

3.1.1?Variable?names的配置

Variable?names的配置

3.1.2?結果獲取

Variable?names查詢結果數(shù)據(jù)獲取

1)采用變量的方式引用,引用方法${a_1}表示引用a列的第一條記錄,${a_#}表是查詢結果的總數(shù)量;

2)在BeanShell中處理

在BeanShell中獲取變更指定值與總數(shù)量;

String a = vars.get("a_#"),表示獲取總數(shù)量;

String a1 = vars.get("a_1"),表示獲取指定值;

3.2?Result variable name方式獲取

3.2.1?Result?variable name配置

Result?variable name配置

3.2.2?結果獲取

Result?variable name結果獲取

//======Result variable name===

//獲取counts

intcounts = vars.getObject("resultObject").size();

//將結果值返回給指定變量

varafResult = vars.getObject("resultObject");

//獲取第1行,uuid的值默認從0開始

varuuid1=afResult.get(0).get("uuid").toString();

//將獲取的結果put給jmeter,用于sampler,斷言調用參數(shù);

vars.put("appBuildHistoryId",uuid1+"");

log.info("===counts:====???"+counts+"???====appBuildHistoryId:??"+uuid1);

4.?接口參數(shù)與斷言引用DB查詢結果數(shù)據(jù);

4.1?使用范圍

sampler?與斷言中都可以使用,作用域與元件作用域及執(zhí)行順序有關系。

注:可以把思維發(fā)散一下,將put給jmeter的參數(shù)都可以理解為一個變量,同Jmeter獲取變理的方式一樣處理,除了受作用域及執(zhí)行順序影響其它都相同。

4.2 引用實例

1)在sampler參數(shù)中引用

在sampler參數(shù)中引用

2)在sampler請求中使用

在sampler請求中使用

3)在beanshell中使用

在beanshell中使用
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容