【Jmeter】使用Jmeter進行接口測試、跨線程組獲取參數

Jmeter接口測試

  • Jmeter設置成中文
  • 實操練習-跨線程組提取參數,使用值
  • HTTP請求默認值&HTTP信息頭管理器

相信打算從事測試工程師的同學們,肯定對Jmeter是耳熟能詳的。使用Jmeter可以進行接口測試、性能測試、壓力測試等等;這個章節介紹如何使用Jmeter針對【登錄查詢圖紙組】的相關接口測試。

Jmeter設置成中文

Jmeter語言設置如下,可設置為中文簡體

在這里插入圖片描述

Jmeter首頁:打開Jmeter首頁默認為下方所示,左側默認一個“測試計劃”,點擊測試計劃,右側顯示如下,一定要勾選上“獨立運行每個線程組(例如在一個組運行結束后啟動下一個)”,不然,比如在登錄場景,后面的接口需要獲取到登錄的令牌token進行驗證,點擊執行可能會出現一些難以發現的錯誤,而這些錯誤其實就是因為執行的順序出現了錯誤,導致有些參數獲取不到。

在這里插入圖片描述

實操練習-跨線程組提取參數,使用值

1. 創建一個線程組: 鼠標右擊測試計劃,選擇添加,選擇線程,選擇線程組

在這里插入圖片描述
在這里插入圖片描述

HTTP請求默認值&HTTP信息頭管理器

當我們在jmeter上創建多個http的請求時,每個請求都需要重新的在請求里添加協議,端口號和路徑等,會重復操作很多次,因此使用jmeter上的http請求默認值可以解決這個麻煩。所有在該請求默認值層級下的HTTP請求都會默認帶上這個請求值,于是我們只需要選擇每個HTTP的請求方法和路徑即可。

2. 創建一個HTTP請求默認值: 表示當前層級下所有HTTP請求都會默認帶上這個請求默認值;
操作步驟: 右擊測試計劃、選擇添加、選擇配置元件、選擇HTTP請求默認值。
Jmeter的作用域: 在測試計劃層級下創建一個HTTP請求默認值,表示測試計劃層級下的所有HTTP請求都會帶上這個默認值,如果該層級下某個HTTP請求填寫了協議、域名,那么不會去拿請求默認值里的協議、域名,以自己填寫的值為準。類似于全局變量和局部變量的作用域。

  • 字段解釋:以這類接口為例https://www.ceshi.com:8080/auth/password

    1. 協議:即當前接口遵守的是HTTP協議 還是 HTPPS協議,此處填寫https
    2. 服務器名稱或IP:填寫當前接口的前綴域名,那么此處就填寫www.ceshi.com
    3. 端口號:沒有就不填寫,此處可填寫8080
    4. 路徑:可不填寫
    5. 內容編碼:可填寫utf8

請添加圖片描述

創建一個HTTP信息頭管理器: 如果不創建信息頭管理器,那么后續的HTTP請求可能就會報錯,原因就是HTTP請求里的請求頭錯誤。此操作也是有作用域,Jmeter的每個操作都存在作用域。筆者是在測試計劃下創建的信息頭管理器,那么意味著所有的HTTP請求都會帶上這個請求頭內容。

在這里插入圖片描述
在這里插入圖片描述

3. 添加一個HTTP請求: 鼠標右擊線程組、選擇取樣器、選擇HTTP請求

請添加圖片描述

4. 添加接口路徑 :由于在HTTP請求默認值里填寫了協議類型和IP,所有后面的HTTP請求我們只能填寫請求方法類型和路徑;這里的參數是JSON格式的,于是可以選擇 “消息體數據”。
$ {username}、$ {password}:是Jmeter的固定語法,用于獲取自定義參數、獲取從其他接口里提取到的參數;不會Jmeter語法的同學可以搜索自學一下哦~

在這里插入圖片描述

5. 創建一個自定義參數: 右擊HTTP請求,選擇添加,選擇配置元件,選擇用戶定義的變量。
名稱(變量):即上一步操作寫的$ {username} 里的username
值(變量取值):就是username里存放的值。

請添加圖片描述

6. 添加一個查看結果樹:可以查看每個HTTP請求的返回內容,根據返回的內容,在下一步里的JSON提取器里填寫JSON Path expressions,前提是返回的內容必須是JSON格式的。當然如果不是JSON格式,那么需要使用其他的提取器。

  • 右擊測試計劃,創建一個“查看結果樹”,那么所有線程組里的HTTP請求返回的響應都可以在這個結果樹里查看。
    在這里插入圖片描述
  • 點擊運行,查看結果樹內容

在這里插入圖片描述

  • 測試是否可以提取到值:JsonPath解析器可以參考下這個網站

在這里插入圖片描述

6.1 添加一個JSON提取器: 方便后面的查詢操作,有權限訪問查詢接口。右擊HTTP請求,選擇添加,選擇后置處理器嗎,選擇JSON提取器。

在這里插入圖片描述

  • 填寫提取器里的內容:Names of created variables=token,JSON Path expressions=$.data,Match No. (0 for Random)=1,Defaylt Values=null;關于不會這個Json語法表達式的同學,可以去度娘搜索一下,學習一下~

在這里插入圖片描述

  • Names of created variables: 自定義一個變量名,把提取到的值存放在這個變量里。可以多個,用分號;進行分隔。
  • JSON Path expressions: 使用JSON語法的表達式,提取值。可以填寫多個,要求與變量名數量一致,用分號;進行分隔。
  • Match No. (0 for Random): 表示提取幾個值。
    • 此處取值有:0代表隨機、-1代表所有,1則代表取值第1個,2則代表取值第2個,以此類推。
  • Compute conxatenation var (suffix_ALL): 該選項如果勾選,則將所有的值用逗號拼接,并保存到一個變量中。注意只有Match NO為-1時該功能打鉤才有效果。
  • Defaylt Values: 當提取不到值時,返回一個默認值,用戶自定義,可以多個,注意當變量名為多個時,默認值也要求多個。

Apply to:作用范圍(返回內容的取值范圍)

  • Main sample and sub-samples:作用于父節點的取樣器及對應子節點的取樣器。

  • Main sample only:僅作用于父節點的取樣器。(選默認的 main sample only 就行了)

  • Sub-samples only:僅作用于子節點的取樣器。

  • JMeter Variable Name to use:作用于JMeter變量(輸入框內可輸入JMeter的變量名稱),從指定變量中提取需要的值。

  • 和JSON提取器配套使用的操作有:調試取樣器。右擊當前的線程組,選擇添加,選擇取樣器,選擇Debug Sampler,可以在結果樹里查看這個調試取樣器的結果,方便查看JSON提取器提取到的值是否正確
    在這里插入圖片描述

  1. 添加一個BeanShell 后置處理程序,用于跨線程組獲取參數值

在這里插入圖片描述
在這里插入圖片描述

  • 生成一個函數
    在這里插入圖片描述
  • 把函數字符串復制到BeanShell 后置處理程序里

在這里插入圖片描述

  1. 設置一個斷言:在對應的HTTP請求下,右擊,選擇添加, 選擇斷言,選擇響應斷言,添加測試模式(可以填寫這個HTTP請求響應里的內容,一般填寫code:200和msg:成功)

請添加圖片描述

  1. 重復前面的創建線程組的步驟,在該線程組下創建一個HTTP請求用來操作查詢圖紙

在這里插入圖片描述

10.在HTTP請求下,創建一個HTTP信息頭管理器:右擊HTTP請求,選擇添加,選擇配置元件,選擇HTTP信息頭管理器

在這里插入圖片描述

  • 點擊函數助手,選擇property,此處的Name of Property填寫BeanShell 后置處理程序的Name of Property,點擊生成,最后把函數字符串復制下來。
    在這里插入圖片描述
  • 在剛才第10步創建的HTTP信息頭管理器里新增一條信息:
    在這里插入圖片描述
  1. 最后點擊運行,查看結果樹,發現可以提取參數值,跨線程組使用這個值

在這里插入圖片描述

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

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

相關文章

Cisco Catalyst 9000 9200 9300 9400 IOS software upgrade

1 背景 從Catalyst 3650 ,3850,Catalyst 9000開始, 更準確的說是IOS XE的交換機的系統鏡像安裝方式分為2種 ? Bundle mode ? Install mode 這2種方工啥區別? Bundle mode 傳統方式利用boot system flash:c9k.xx16.bin方式引導 Install mode 將bin文…

用友 存貨分類按層級取數SQL語句

SELECT cInvCCode 分類編碼, cInvCName 分類名稱, iInvCGrade 分類層級, ss.bInvCEnd 是否是末級, aa.* FROM InventoryClass ss LEFT JOIN ( SELECT * FROM ( SELECT cInvCCode AS 一級分類編碼, …

cocos 通過 electron 打包成 exe 文件,實現通信問題

cocos 通過 electron 打包成 exe 文件,實現通信問題 首先,我使用的 cocos 版本是 2.4.12,遇到一個問題,是啥子呢,就是我要把用 cocos 開發出來的項目打包成一個 exe 可執行程序,使用的是 electron &#xf…

【C++算法】BFS解決多源最短路問題相關經典算法題

1.01矩陣 既然本章是BFS解決多源最短路問題,也就是說有若干個起點,那我們就可以暴力一點,直接把多源最短路徑問題轉化成若干個單源最短路徑問題,然后將每次的步數比較一下,取到最短的就是最短路徑的結果,這…

arcgis 10.6 工具欄操作error 001143 后臺服務器拋出異常

arcgis 10.6 工具欄操作error 001143 后臺服務器拋出異常 環境 win10arcgis 10.6 問題 執行定義投影要素轉線出現 Error: 001143:后臺服務器拋出異常(差點重裝10.6) 如下圖所示: 解決方法 通過在菜單工具條上單擊地理處理 > 地理處…

設計模式使用(成本扣除)

前言 名詞解釋 基礎名詞 訂單金額:用戶下單時支付的金額,這個最好理解 產品分成:也就是跟其他人合做以后我方能分到的金額,舉個例子,比如用戶訂單金額是 100 塊,我方的分成是 80%,那么也就是…

OceanMind海睿思通過上海數交所數商認證,提供高質量數據治理和數據咨詢服務

近日,中新賽克海睿思成功通過上海數據交易所的數商認證,獲得上海數據交易所頒發的“數據產品開發服務商”、“數據治理服務商”和“數據咨詢服務商”三大證書。 作為由深圳市創新投資集團有限公司投資控股的高新技術企業,國家級專精特新“小巨…

如何通過OpenHarmony的音頻模塊實現錄音變速功能?

簡介 OpenAtom OpenHarmony(以下簡稱“OpenHarmony”)是由開放原子開源基金會孵化及運營的開源項目,是面向全場景、全連接、全智能時代的智能物聯網操作系統。 多媒體子系統是OpenHarmony系統中的核心子系統,為系統提供了相機、…

2024-05-24 問AI: 在深度學習中,什么是L1 正則化和L2 正則化?

文心一言 在深度學習和機器學習中,正則化是一種用于防止模型過擬合的技術。它通過向損失函數添加一個懲罰項來實現,這個懲罰項與模型的復雜度有關。正則化項可以看作是對模型參數的約束,使得模型在訓練時不僅關注于最小化訓練誤差&#xff0…

Java入門基礎學習筆記43——包

什么是包? 包是用來分門別類的管理各種不同程序的,類似文件夾,建包有利于程序的管理和維護。 建包的語法規則: package cn.ensource.javabean;public class Car() {} 在自己的程序中調用其他包下的程序的注意事項: 1…

動手學深度學習——層和塊

1. 層 層是一個將輸入數據轉換為輸出數據的神經網絡組件。每個層都會對輸入數據進行一定的操作,例如線性變換、非線性激活函數等,以產生輸出數據。 torch.nn模塊提供了各種預定義的層,如線性層、卷積層、池化層等, nn.Linear&a…

BLE學習筆記(0.0) —— 基礎概念(0)

前言 (1)本章節主要是對BLE技術進行簡單的介紹,熟悉藍牙技術的發展過程,了解相關術語方便后續的學習。 (2)為了防止單篇博客太長以至于看不下去,因此我基礎概念章節分為兩篇來寫。 (…

直播回放| 機器人任務挑戰賽線上培訓資料合集

大賽培訓回顧 5月22日,卓翼飛思實驗室為全國各賽區精心組織的機器人任務挑戰賽(無人協同系統)線上培訓第三期順利落下帷幕,吸引300余人參與。本次培訓主要針對仿真平臺的基本使用,從仿真平臺獲取激光雷達/視覺數據&am…

Mysql教程(0):學習框架

1、Mysql簡介 MySQL 是一個開放源代碼的、免費的關系型數據庫管理系統。在 Web 開發領域,MySQL 是最流行、使用最廣泛的關系數據庫。MySql 分為社區版和商業版,社區版完全免費,并且幾乎能滿足全部的使用場景。由于 MySQL 是開源的&#xff0…

選擇排序,改進冒泡排序,快速排序的查找和計數排序

簡單選擇排序 數據結構:單鏈表 實現方法:n為鏈表長度, 第1趟先選出1到n-1個元素中的最小值和0號元素交換, 第2趟從2到n-1號元素選出最小值和1號元素交換, … 第n-2趟從n-2到n-1號元素中選出最小值和n-2號元素交換. 第n-1趟n-1號元素即為最小值。比較結束。 代碼:…

1075: 求最小生成樹(Prim算法)

解法&#xff1a; 總結起來&#xff0c;Prim算法的核心思想是從一個頂點開始&#xff0c;一步一步地選擇與當前最小生成樹相鄰的且權值最小的邊&#xff0c;直到覆蓋所有的頂點&#xff0c;形成一個最小生成樹。 #include<iostream> #include<vector> using names…

算法-跳馬

bfs類的應用題。 解法&#xff1a; 每一個點都可能作為匯集的那個點&#xff0c;因此采用遍歷的方式&#xff0c;對每個點進行處理&#xff0c;得出每個點的“所有馬跳到本點的最小步數和“&#xff0c;取最小值即可。 邏輯1&#xff1a;以該點作為源點出發&#xff0c;求處…

springboot基于Web前端技術的java養老院管理系統_utbl7

3.普通用戶模塊包括&#xff1a;普通會員的注冊、養老院客房查詢、養老院留言查詢、預約老人基本信息登記、選擇房間、用戶繳費的功能。 4.數據信息能夠及時進行動態更新&#xff0c;增刪&#xff0c;用戶搜素方便&#xff0c;使用戶可以直接瀏覽相關信息&#xff0c;要考慮便于…

Vue3實戰筆記(35)—集成炫酷的粒子特效

文章目錄 前言一、vue3使用tsparticles二、使用步驟總結 前言 學習一個有趣炫酷的玩意開心一下。 tsparticles&#xff0c;可以方便的實現各種粒子特效。支持的語言框架也是相當的豐富. 官網&#xff1a;https://particles.js.org/ 一、vue3使用tsparticles 先來個vue3使用…

Go 語言逃逸分析:內存管理的關鍵

文章目錄 前言1 逃逸分析是什么&#xff1f;2 逃逸分析的基本思想是什么&#xff1f;3 逃逸分析的分配原則是什么&#xff1f;4 如何進行逃逸分析&#xff1f;5 逃逸分析案例5.1 變量在函數外存在引用5.2 引用類型的逃逸5.3 閉包捕獲變量5.4 變量占用內存較大 6 變量會逃逸到堆…