jmeter實(shí)現(xiàn)接口關(guān)聯(lián)的兩種方式(正則表達(dá)式提取器和json提取器)
一、前言
在開(kāi)展接口測(cè)試或者是接口面試的過(guò)程中,我們會(huì)發(fā)現(xiàn)很多接口需要依賴前面的接口,需要我們動(dòng)態(tài)從前面的接口返回中提取數(shù)據(jù),也就是我們通常說(shuō)的關(guān)聯(lián)。
關(guān)聯(lián)通俗來(lái)講就是把上一次請(qǐng)求的返回內(nèi)容中的部分截取出來(lái)保存為參數(shù),用來(lái)傳遞給下一個(gè)請(qǐng)求使用。
二、使用正則表達(dá)式提取器實(shí)現(xiàn)接口關(guān)聯(lián)
正則表達(dá)式提取器,見(jiàn)名知意就是使用正則表達(dá)式的方法把我們需要提取的內(nèi)容通配出來(lái)。
原理:通過(guò)左右二邊不變的邊界來(lái)提取中間變的返回值
如上圖:需要提取access_token
{"access_token":"31_qz2HtPalsk5Ey1ToWJaZ6Kaojf8y-BhxTHEmuO111m8_Gc_77HRvMuG4ltbd9gHskqi0XAq8phQys9K8awso4iq-VSr0bArrd-zC-nY0Ltudp-HcPZV7y291YjLYoeJBHW2zhB7-lWYzeTsqFKOhAHANSW","expires_in":7200}
1、在需要獲得數(shù)據(jù)的請(qǐng)求“1.獲取access_token” 上右擊添加一個(gè)后置處理器-->正則表達(dá)式提取器
引用名稱:即下一個(gè)請(qǐng)求要引用的參數(shù)名稱,如填寫(xiě)access_token,則可用${ access_token}引用它。
正則表達(dá)式:()括起來(lái)的部分就是要提取的。.代表任意字符,+表示一次或多次,*代表出現(xiàn)任意次。
模板:用$$引用起來(lái),如果在正則表達(dá)式中有多個(gè)正則表達(dá)式,則可以是$2$,$3$等等,表示解析到的第幾個(gè)值給access_token。本處只有1個(gè),所有使用$1$。
匹配數(shù)字:0代表隨機(jī),-1代表所有,其余正整數(shù)代表將在檢查的內(nèi)容中,第幾個(gè)匹配的內(nèi)容提取出來(lái)。
2.在后面的接口中使用${ access_token}引用
3.使用調(diào)試取樣器檢查是否提取成功
添加調(diào)試取樣器-->運(yùn)行測(cè)試-->通過(guò)查看結(jié)果樹(shù)里面的 調(diào)試取樣器 查看結(jié)果
如果你覺(jué)得此文對(duì)你有幫助,如果你對(duì)此文有任何疑問(wèn),如果你對(duì)軟件測(cè)試、接口測(cè)試、自動(dòng)化測(cè)試、面試經(jīng)驗(yàn)交流感興趣歡迎加入軟件測(cè)試技術(shù)群:695458161,群里發(fā)放的免費(fèi)資料都是筆者十多年測(cè)試生涯的精華。還有同行大神一起交流技術(shù)哦。
三、使用json提取器實(shí)現(xiàn)接口關(guān)聯(lián)
?使用場(chǎng)合:接口關(guān)聯(lián),當(dāng)前一個(gè)接口返回的數(shù)據(jù)類型為json格式的數(shù)據(jù),需要從返回的json數(shù)據(jù)中提取數(shù)據(jù)。
?
?可以將返回的值復(fù)制到 www.bejson.com-->json菜單-->json視圖-->json數(shù)據(jù)中,然后點(diǎn)擊試圖查看,如下圖:
json提取器的使用步驟
1.在需要獲得數(shù)據(jù)的請(qǐng)求“1.獲取access_token” 上右擊添加一個(gè)后置處理器-->JSON提取器
?
Name of created varialies:即下一個(gè)請(qǐng)求要引用的參數(shù)名稱,如填寫(xiě)access_token,則可用${ access_token}引用它。
JSON Path? expressions:填寫(xiě)jsonpath,格式:$. 節(jié)點(diǎn)名稱? ?根節(jié)點(diǎn)用 “.” 表示
Match Numbers:0代表隨機(jī),-1代表所有,其余正整數(shù)代表將在檢查的內(nèi)容中,第幾個(gè)匹配的內(nèi)容提取出來(lái)。
Default Values:找不到時(shí)默認(rèn)值,一般設(shè)置為NOT FOUND
Compute concatenation var(suffix_ALL):是否統(tǒng)計(jì)所有,即將匹配到的所有值保存,名為“變量名_ALL”
2.替換變量為${ 變量名}
?
3.使用 調(diào)試取樣器 檢查是否提取到了
?
四、擴(kuò)展:返回復(fù)雜json數(shù)據(jù)的提取
如圖:{"tag":{"id":193,"name":"newdream20200324"}}
?JSON提取器配置如下:?$.tag.name
到此這篇關(guān)于jmeter實(shí)現(xiàn)接口關(guān)聯(lián)的兩種方式(正則表達(dá)式提取器和json提取器)的文章就介紹到這了,更多相關(guān)jmeter 接口關(guān)聯(lián)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring基于ProxyFactoryBean創(chuàng)建AOP代理
這篇文章主要介紹了Spring基于ProxyFactoryBean創(chuàng)建AOP代理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10Java ArrayList.toArray(T[]) 方法的參數(shù)類型是 T 而不是 E的原因分析
這篇文章主要介紹了Java ArrayList.toArray(T[]) 方法的參數(shù)類型是 T 而不是 E的原因分析的相關(guān)資料,需要的朋友可以參考下2016-04-04Java數(shù)據(jù)類型Integer與int的區(qū)別詳細(xì)解析
這篇文章主要介紹了Java數(shù)據(jù)類型Integer與int的區(qū)別詳細(xì)解析,Ingeter是int的包裝類,int的初值為0,Ingeter的初值為null,int和integer(無(wú)論new否)比,都為true,因?yàn)闀?huì)把Integer自動(dòng)拆箱為int再去比,需要的朋友可以參考下2023-12-12idea如何debug看springsecurity的過(guò)濾器順序
這篇文章主要介紹了idea如何debug看springsecurity的過(guò)濾器順序,文中通過(guò)圖文結(jié)合的方式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-04-04springboot應(yīng)用中使用過(guò)濾器的過(guò)程詳解
過(guò)濾器通常用于實(shí)現(xiàn)跨切面的功能,例如身份驗(yàn)證、日志記錄、請(qǐng)求和響應(yīng)的修改、性能監(jiān)控等,這篇文章主要介紹了springboot應(yīng)用中使用過(guò)濾器,需要的朋友可以參考下2023-06-06