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提取測試數據
在測試過程中,有時候需要通過查詢數據庫來獲得想要的數據信息,但是使用Jmeter的Jdbc請求查詢出來的數據,
使用正則表達式提取時,非常不方便,這個時候,可以使用一些函數,將查詢結果轉換為方便提取的格式,然后使用正則表達式提取。
?
以下例子是使用Mysql的CONCAT函數
1.select CONCAT('"name":',name,'') from `test`.`user`
?正則表達是:"name":(.*)
2.select CONCAT('num=',count(1),'') from `test`.`user`
?正則表達是:num=(.*)
轉載于:https://www.cnblogs.com/qmfsun/p/5912532.html
總結
以上是生活随笔為你收集整理的JMeter处理jdbc请求后的响应结果的全部內容,希望文章能夠幫你解決所遇到的問題。