接口自動化入門 —— Jmeter實現在接口工具中關聯接口處理方案

1. JMeter 接口關聯處理的核心概念

接口關聯是指在多個接口請求之間共享數據,例如將一個接口的返回值作為另一個接口的輸入參數。常見的場景包括:

使用登錄接口返回的 Token 作為后續接口的認證信息。

將一個接口返回的 ID 作為另一個接口的請求參數。?

圖片

2. 實現接口關聯的步驟

2.1 創建測試計劃

打開 JMeter,創建一個新的測試計劃。

添加線程組(Thread Group),用于定義并發用戶數和循環次數。

2.2 添加 HTTP 請求

在線程組下添加 HTTP 請求(Sampler),配置接口的 URL、請求方法(GET/POST)、參數和請求頭。

如果接口需要特定的請求頭(如 Content-Type: application/json),可以通過 HTTP 信息頭管理器(HTTP Header Manager)進行設置。

2.3 提取接口返回值

使用 JSON 提取器:在需要提取數據的 HTTP 請求下,添加后置處理器(Post-Processor)中的 JSON 提取器(JSON Extractor)。

配置變量名稱和 JSON 表達式,例如提取登錄接口返回的 Token。

示例:如果返回值為 {"token": "abc123"},可以使用表達式 $.token 提取 Token。

使用正則表達式提取器:對于非 JSON 格式的響應,可以使用正則表達式提取器。

2.4 將提取的值傳遞給后續接口

設置全局變量:通過 Beanshell 后置處理程序(Beanshell PostProcessor)將提取的值設置為全局變量。

示例代碼:vars.put("Token", vars.get("token"));,將提取的 Token 設置為全局變量 Token。

在后續接口中使用變量:

在 HTTP 請求的請求頭或參數中引用全局變量,例如 Authorization: Bearer ${Token}。

2.5 添加斷言驗證

為每個接口添加斷言(Assertion),驗證接口的響應是否符合預期。

使用響應斷言(Response Assertion)驗證響應文本或狀態碼。

使用 JSON 斷言驗證 JSON 響應中的特定字段。

2.6 添加監聽器查看結果

添加監聽器(Listener),如“查看結果樹”(View Results Tree)或“聚合報告”(Aggregate Report),用于查看測試結果。?

圖片

3. 示例:登錄接口與后續接口的關聯

假設有一個登錄接口返回 Token,后續接口需要使用該 Token 進行認證:

登錄接口:

添加 HTTP 請求,發送登錄請求。

添加 JSON 提取器,提取返回的 Token。

添加 Beanshell 后置處理程序,將 Token 設置為全局變量。

后續接口:

添加 HTTP 請求,配置請求頭 Authorization: Bearer ${Token}。

添加斷言驗證接口返回結果。?

圖片

4. 注意事項

數據類型處理:確保提取的值與接口要求的數據類型一致(如字符串、數字)。

錯誤處理:在提取器中設置默認值,防止因提取失敗導致后續接口失敗。

性能優化:避免在每個請求中重復提取相同的值,盡量復用全局變量。?

圖片

5. 總結

通過 JMeter 的后置處理器(如 JSON 提取器和 Beanshell 后置處理程序),可以輕松實現接口之間的數據關聯。這種關聯處理方式不僅適用于登錄 Token 的傳遞,還可以用于其他需要動態參數的場景

最后感謝每一個認真閱讀我文章的人,看著粉絲一路的上漲和關注,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走!

軟件測試面試文檔

我們學習必然是為了找到高薪的工作,下面這些面試題是來自阿里、騰訊、字節等一線互聯網大廠最新的面試資料,并且有字節大佬給出了權威的解答,刷完這一套面試資料相信大家都能找到滿意的工作。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/72466.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/72466.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/72466.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Flink-學習路線

最近想學習一下Flink,公司的實時需求還是不少的,因此結合ai整理了一份學習路線,記錄一下。 當然,公司也有Scala版本Flink框架,也學習了一下。這里只說Java版本 1. Java基礎 目標: 掌握Java編程語言的基礎知識。 內容…

ranger集成starrock報錯

org.apache.ranger.plugin.client.HadoopException: initConnection: Unable to connect to StarRocks instance, please provide valid value of field : {jdbc.driverClassName}.. com.mysql.cj.jdbc.Driver. 可能的原因 JDBC 驅動缺失:運行環境中沒有安裝 MySQL …

python Jsonpath表達式語法取值

python Jsonpath 語法規則: 演示數據:{"status":"0","msg":"成功","data": [ {"foo1": "bar1"},{"foo1": "bar2"}]} 根節點:$ $.status $.…

Blender-MCP服務源碼2-依賴分析

Blender-MCP服務源碼2-依賴分析 有個大佬做了一個Blender-MCP源碼,第一次提交代碼是【2025年3月7號】今天是【2025年月15日】也就是剛過去一周的時間,所以想從0開始學習這個代碼,了解一下大佬們的開發思路 1-核心知識點 from mcp.server.fas…

反射(第三篇)、代理模式、靜態代理和動態代理、InvocationHandler實際應用

DAY11.3 Java核心基礎 反射(第三篇) 前兩篇我們學習了反射的概念和基本操作 實際開發中,反射應用于那里? 動態代理 java中的動態代理就是一個重要的作用 代理模式 代理模式是java中常用的設計模式 指的是在處理一個業務邏輯…

Unity 封裝一個依賴于MonoBehaviour的計時器(上) 基本功能

靈感來自下面這本書的協程部分,因此我就自己嘗試寫了一個 我的新書Unity3D游戲開發(第3版) | 雨松MOMO程序研究院 如果你不知道什么是協程:unity保姆級教程之協同程序_unity協同-CSDN博客 一句話概括:協程就是單線程的異步操作,其作用于Unity的主線程 1…

數學建模 第一節

目錄?????? 前言 一 優化模型的類型 二 線性規劃1 線性規劃2 三 0-1規劃 總結 前言 數學建模主要是將問題轉化為模型,然后再以編程的形式輸出出來 算法都知道,數學建模也需要用到算法,但是不是主要以編程形式展示,而是…

Vulkan視頻解碼decode顯示display之同步

在ReleaseDisplayedPicture函數中消耗圖片資源并且顯示display完成,設置兩個標志m_hasConsummerSignalFence true 和m_hasConsummerSignalSemaphore true virtual int32_t ReleaseDisplayedPicture(DecodedFrameRelease** pDecodedFramesRelease, uint32_t nu…

網絡空間安全(32)Kali MSF基本介紹

前言 Metasploit Framework(簡稱MSF)是一款功能強大的開源安全漏洞檢測工具,被廣泛應用于滲透測試中。它內置了數千個已知的軟件漏洞,并持續更新以應對新興的安全威脅。MSF不僅限于漏洞利用,還包括信息收集、漏洞探測和…

設計模式學習記錄

設計模式23種 創建型抽象工廠模式工廠模式生成器模式原型模式單例模式 結構型適配器模式橋接模式組合模式裝飾模式外觀模式享元模式代理模式 行為型責任鏈模式命令模式解釋器模式迭代器模式中介者模式備忘錄模式觀察者模式狀態模式策略模式模版方法模式訪問者模式 創建型 與對…

2.5 python接口編程

在現代軟件開發的復雜生態系統中,不同系統、模塊之間的交互協作至關重要。接口編程作為一種關鍵機制,定義了組件之間的通信規范與交互方式。Python 憑借其卓越的靈活性、豐富的庫資源以及簡潔易讀的語法,在接口編程領域占據了重要地位&#x…

mesh開發解析

開源的Mesh網絡協議棧及相關項目: 1.B.A.T.M.A.N.(Better Approach to Mobile Ad-hoc Networking)? 簡介:B.A.T.M.A.N.是一種用于多跳自組織網絡的路由協議,適用于無線Mesh網絡。它通過優化數據傳輸路徑,確保網絡的高可靠性和動…

PyTorch PINN實戰:用深度學習求解微分方程

在人工智能與計算數學的交匯點,物理信息神經網絡(Physics-Informed Neural Networks,PINN)正引領著一場求解微分方程的革命。傳統上,微分方程是描述自然現象和工程問題中各種關系的重要工具,但其求解往往依…

【WiFi 7核心技術及未來挑戰】

作為剛剛開始從事這一領域的人,淺淺學習了一下WiFi 7(IEEE 802.11be)。Wi-Fi 7發展迅速,提供前所未有的速度、更低的延遲和更高的可靠性。但從頻譜政策到能效挑戰,再到成本,仍有許多問題亟待解決。 Wi-Fi 7…

Oracle Linux Server 7.9安裝fail2ban

yum search oracle-epel-release yum install oracle-epel-release-el7 search fail2ban yum install fail2ban nano /etc/fail2ban/jail.d/00-firewalld.conf # defalut這里是設定全局設置,如果下面的監控沒有設置就以全局設置的值設置。 [DEFAULT] # 用于指定哪…

目標在哪里?——尋找人生的意義與方向

在職場中,許多人都會經歷這樣的困惑:工作看似順利,卻逐漸失去了成就感和成長感。一位在500強企業工作的學員就遇到了這樣的問題。她曾考慮過轉型做培訓,但苦于找不到明確的切入點,對未來的目標感到迷茫。她不禁問自己&…

C++類與對象——拷貝構造與運算符重載

拷貝構造函數和賦值運算符重載就是C類默認六個函數之二。 拷貝構造函數: 如果?個構造函數的第?個參數是自身類類型的引用,且任何額外的參數都有默認值,則此構造函數 也叫做拷貝構造函數,也就是說拷貝構造是?個特殊的構造函數…

破碎的誓言

破碎的誓言 在秋風的呢喃中,落葉輕嘆, 昔日的誓言,如煙消散。 你的眼眸,曾是我星辰的指引, 如今,卻成了最深的迷惘。 欺騙的利刃,刺穿了信任的堡壘, 我的心,如裂開…

AD畫板學習

AD畫板 01 課程簡介及學習目標 (1)能熟練的新建項目文件、原理圖文件、PCB文件且修改文件名,并知道文件保存的位置; (2)會設置原理圖編輯器的工作環境,會自底向上繪制層次原理圖; …

Linux:進程程序替換

目錄 前言 一 進程程序替換的概念 二 進程程序替換的原理 三 為什么需要進行進程程序替換 四 如何進行進程程序替換 1. 進程替換函數 ? execl()函數 ?execv()函數 ?execlp()函數 ?execle()函數 ?execve()* 前言 一般情況下,對應的語言寫的程序只…