jmeter實現(xiàn)接口關(guān)聯(lián)的兩種方式(正則表達式提取器和json提取器)
一、前言
在開展接口測試或者是接口面試的過程中,我們會發(fā)現(xiàn)很多接口需要依賴前面的接口,需要我們動態(tài)從前面的接口返回中提取數(shù)據(jù),也就是我們通常說的關(guān)聯(lián)。
關(guān)聯(lián)通俗來講就是把上一次請求的返回內(nèi)容中的部分截取出來保存為參數(shù),用來傳遞給下一個請求使用。
二、使用正則表達式提取器實現(xiàn)接口關(guān)聯(lián)
正則表達式提取器,見名知意就是使用正則表達式的方法把我們需要提取的內(nèi)容通配出來。
原理:通過左右二邊不變的邊界來提取中間變的返回值
如上圖:需要提取access_token
{"access_token":"31_qz2HtPalsk5Ey1ToWJaZ6Kaojf8y-BhxTHEmuO111m8_Gc_77HRvMuG4ltbd9gHskqi0XAq8phQys9K8awso4iq-VSr0bArrd-zC-nY0Ltudp-HcPZV7y291YjLYoeJBHW2zhB7-lWYzeTsqFKOhAHANSW","expires_in":7200}
1、在需要獲得數(shù)據(jù)的請求“1.獲取access_token” 上右擊添加一個后置處理器-->正則表達式提取器
引用名稱:即下一個請求要引用的參數(shù)名稱,如填寫access_token,則可用${ access_token}引用它。
正則表達式:()括起來的部分就是要提取的。.代表任意字符,+表示一次或多次,*代表出現(xiàn)任意次。
模板:用$$引用起來,如果在正則表達式中有多個正則表達式,則可以是$2$,$3$等等,表示解析到的第幾個值給access_token。本處只有1個,所有使用$1$。
匹配數(shù)字:0代表隨機,-1代表所有,其余正整數(shù)代表將在檢查的內(nèi)容中,第幾個匹配的內(nèi)容提取出來。
2.在后面的接口中使用${ access_token}引用
3.使用調(diào)試取樣器檢查是否提取成功
添加調(diào)試取樣器-->運行測試-->通過查看結(jié)果樹里面的 調(diào)試取樣器 查看結(jié)果
如果你覺得此文對你有幫助,如果你對此文有任何疑問,如果你對軟件測試、接口測試、自動化測試、面試經(jīng)驗交流感興趣歡迎加入軟件測試技術(shù)群:695458161,群里發(fā)放的免費資料都是筆者十多年測試生涯的精華。還有同行大神一起交流技術(shù)哦。
三、使用json提取器實現(xiàn)接口關(guān)聯(lián)
?使用場合:接口關(guān)聯(lián),當前一個接口返回的數(shù)據(jù)類型為json格式的數(shù)據(jù),需要從返回的json數(shù)據(jù)中提取數(shù)據(jù)。
?
?可以將返回的值復制到 www.bejson.com-->json菜單-->json視圖-->json數(shù)據(jù)中,然后點擊試圖查看,如下圖:
json提取器的使用步驟
1.在需要獲得數(shù)據(jù)的請求“1.獲取access_token” 上右擊添加一個后置處理器-->JSON提取器
?
Name of created varialies:即下一個請求要引用的參數(shù)名稱,如填寫access_token,則可用${ access_token}引用它。
JSON Path? expressions:填寫jsonpath,格式:$. 節(jié)點名稱? ?根節(jié)點用 “.” 表示
Match Numbers:0代表隨機,-1代表所有,其余正整數(shù)代表將在檢查的內(nèi)容中,第幾個匹配的內(nèi)容提取出來。
Default Values:找不到時默認值,一般設(shè)置為NOT FOUND
Compute concatenation var(suffix_ALL):是否統(tǒng)計所有,即將匹配到的所有值保存,名為“變量名_ALL”
2.替換變量為${ 變量名}
?
3.使用 調(diào)試取樣器 檢查是否提取到了
?
四、擴展:返回復雜json數(shù)據(jù)的提取
如圖:{"tag":{"id":193,"name":"newdream20200324"}}
?JSON提取器配置如下:?$.tag.name
到此這篇關(guān)于jmeter實現(xiàn)接口關(guān)聯(lián)的兩種方式(正則表達式提取器和json提取器)的文章就介紹到這了,更多相關(guān)jmeter 接口關(guān)聯(lián)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MyBatisPlus中使用or()和and()遇到的問題及細節(jié)處理
這篇文章主要介紹了MyBatisPlus中使用or()和and()遇到的問題,本文通過多種寫法實例代碼相結(jié)合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08SpringBoot配置logback.xml 多環(huán)境的操作步驟
最近在研究springboot的日志,所以記錄一下,做一下總結(jié),今天重點給大家介紹SpringBoot配置logback.xml 多環(huán)境的操作步驟,要實現(xiàn)多環(huán)境的配置,主要是依賴于springboot的application.yml文件去實現(xiàn),感興趣的朋友跟隨小編一起看看吧2021-05-05SpringBoot+MyBatis+Redis實現(xiàn)分布式緩存
本文主要介紹了SpringBoot+MyBatis+Redis實現(xiàn)分布式緩存,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2024-01-01Java多態(tài)(動力節(jié)點Java學院整理)
多態(tài)是指允許不同類的對象對同一消息做出響應。即同一消息可以根據(jù)發(fā)送對象的不同而采用多種不同的行為方式。接下來通過本文給大家介紹java多態(tài)相關(guān)知識,感興趣的朋友一起學習吧2017-04-04Liquibase 在 Spring Boot 中的使用詳細介紹
Liquibase 提供了靈活的變更集機制,支持創(chuàng)建表、修改列、填充數(shù)據(jù)、回滾變更等多種操作,本文將通過多個豐富的示例,詳細講解如何在 Spring Boot項目中使用 Liquibase,感興趣的朋友跟隨小編一起看看吧2024-12-12SpringBoot集成內(nèi)存數(shù)據(jù)庫Sqlite的實踐
sqlite這樣的內(nèi)存數(shù)據(jù)庫,小巧可愛,做小型服務端演示程序,非常好用,本文主要介紹了SpringBoot集成Sqlite,具有一定的參考價值,感興趣的可以了解一下2021-09-09java使用CountDownLatch實現(xiàn)多線程協(xié)作
在多線程編程中,經(jīng)常需要實現(xiàn)一種機制來協(xié)調(diào)多個線程的執(zhí)行,以確保某些操作在所有線程完成后再進行,CountDownLatch?就是?Java?并發(fā)包中提供的一種同步工具,下面我們就來看看如何使用CountDownLatch實現(xiàn)多線程協(xié)作吧2023-11-11mybatis-plus無法通過logback-spring輸出的解決方法
本文主要介紹了mybatis-plus無法通過logback-spring輸出,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-11-11