JMeter处理jdbc请求后的响应结果
JMeter如果進(jìn)行JDBC請(qǐng)求,請(qǐng)求后的響應(yīng)結(jié)果如何給下一個(gè)請(qǐng)求用(也就是傳說(shuō)中的關(guān)聯(lián)),于是研究了一下,下面將學(xué)習(xí)的成果做個(gè)記錄:
?
1.添加 "JDBC Connection Configuration"里面用來(lái)配置一些數(shù)據(jù)庫(kù)連接的信息
?
2.添加一個(gè)“CSV Data Set Config”,用來(lái)在后續(xù)的JDBC請(qǐng)求中select語(yǔ)句中where條件參數(shù)化使用
?
3.添加JDBC請(qǐng)求
?
4.請(qǐng)求測(cè)試可以發(fā)現(xiàn)jdbc請(qǐng)求已經(jīng)成果,并能在響應(yīng)數(shù)據(jù)中看到返回的結(jié)果
?
5.那么接下來(lái)的問(wèn)題就來(lái)了,如果我的下一個(gè)請(qǐng)求,需要JDBC中的請(qǐng)求,那我該怎么得到JDBC中的響應(yīng)數(shù)據(jù)呢?
在JMETER中可以使用“正則表達(dá)式提取 器”來(lái)實(shí)現(xiàn),那么怎么來(lái)實(shí)現(xiàn)呢,需要在jdbc請(qǐng)求后面添加一個(gè)后置的“正則表達(dá)式提取器”(表達(dá)式中的關(guān)鍵部分是?? ([^"]+)??? ),添加的表達(dá)式如下
?
6.為了驗(yàn)證是否能正確取得jdbc中的響應(yīng)結(jié)果數(shù)據(jù),模擬添加了一個(gè)簡(jiǎn)單的http請(qǐng)求
?
7.http請(qǐng)求的“查看結(jié)果樹(shù)”中可以看到成功的取得的user_id的信息
?
多說(shuō)幾句,如果SQL語(yǔ)句寫(xiě)成? select 'user_id='|| '"' ||? user_id ||'"'? from sys_user b where b.USER_ID='13707'的形式,則可以通過(guò)下面的正則表達(dá)式來(lái)取到user_id=后面的內(nèi)容,正則表達(dá)式為:user_id=" (.+?)"
總結(jié):
1.正則表達(dá)式看來(lái)是需要好好學(xué)習(xí)一下了;
2.目前認(rèn)為如果是取得jdbc的響應(yīng)結(jié)果,是否通過(guò)beanshell來(lái)實(shí)現(xiàn)會(huì)更方便呢,可以自己寫(xiě)個(gè)java程序做個(gè)封裝,來(lái)取得每次返回的結(jié)果。
在JMeter中使用Mysql的CONCAT提取測(cè)試數(shù)據(jù)
在測(cè)試過(guò)程中,有時(shí)候需要通過(guò)查詢(xún)數(shù)據(jù)庫(kù)來(lái)獲得想要的數(shù)據(jù)信息,但是使用Jmeter的Jdbc請(qǐng)求查詢(xún)出來(lái)的數(shù)據(jù),
使用正則表達(dá)式提取時(shí),非常不方便,這個(gè)時(shí)候,可以使用一些函數(shù),將查詢(xún)結(jié)果轉(zhuǎn)換為方便提取的格式,然后使用正則表達(dá)式提取。
?
以下例子是使用Mysql的CONCAT函數(shù)
1.select CONCAT('"name":',name,'') from `test`.`user`
?正則表達(dá)是:"name":(.*)
2.select CONCAT('num=',count(1),'') from `test`.`user`
?正則表達(dá)是:num=(.*)
轉(zhuǎn)載于:https://www.cnblogs.com/qmfsun/p/5912532.html
總結(jié)
以上是生活随笔為你收集整理的JMeter处理jdbc请求后的响应结果的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。