JMeter處理jdbc請求后的響應結果


JMeter如果進行JDBC請求,請求后的響應結果如何給下一個請求用(也就是傳說中的關聯),於是研究了一下,下面將學習的成果做個記錄:

 

1.添加 "JDBC Connection Configuration"里面用來配置一些數據庫連接的信息

 

2.添加一個“CSV Data Set Config”,用來在后續的JDBC請求中select語句中where條件參數化使用

 

3.添加JDBC請求

 

4.請求測試可以發現jdbc請求已經成果,並能在響應數據中看到返回的結果

 

5.那么接下來的問題就來了,如果我的下一個請求,需要JDBC中的請求,那我該怎么得到JDBC中的響應數據呢?

在JMETER中可以使用“正則表達式提取 器”來實現,那么怎么來實現呢,需要在jdbc請求后面添加一個后置的“正則表達式提取器”(表達式中的關鍵部分是   ([^"]+)    ),添加的表達式如下

 

6.為了驗證是否能正確取得jdbc中的響應結果數據,模擬添加了一個簡單的http請求

 

7.http請求的“查看結果樹”中可以看到成功的取得的user_id的信息

 

多說幾句,如果SQL語句寫成  select 'user_id='|| '"' ||  user_id ||'"'  from sys_user b where b.USER_ID='13707'的形式,則可以通過下面的正則表達式來取到user_id=后面的內容,正則表達式為:user_id=" (.+?)"

總結:

1.正則表達式看來是需要好好學習一下了;

2.目前認為如果是取得jdbc的響應結果,是否通過beanshell來實現會更方便呢,可以自己寫個java程序做個封裝,來取得每次返回的結果。

在JMeter中使用Mysql的CONCAT提取測試數據

測試過程中,有時候需要通過查詢數據庫來獲得想要的數據信息,但是使用JmeterJdbc請求查詢出來的數據,

使用正則表達式提取時,非常不方便,這個時候,可以使用一些函數,將查詢結果轉換為方便提取的格式,然后使用正則表達式提取。

 

以下例子是使用MysqlCONCAT函數

1.select CONCAT('"name":',name,'') from `test`.`user`

 正則表達是:"name":(.*)

2.select CONCAT('num=',count(1),'') from `test`.`user`

 正則表達是:num=(.*)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM