1. 程式人生 > >jmeter如何將上一個請求的結果作為下一個請求的引數——使用正則提取器

jmeter如何將上一個請求的結果作為下一個請求的引數——使用正則提取器

轉載地址:

下面有三篇都是關於講解jmeter的關聯(將上一個請求的結果作為下一個請求的引數),第一篇看不懂就看第二篇,第三篇最易懂!

【第一篇】

1、簡介

  Apache JMeter是Apache組織開發的基於Java的壓力測試工具。用於對軟體做壓力測試,它最初被設計用於Web應用測試但後來擴充套件到其他測試領域。 它可以用於測試靜態和動態資源例如靜態檔案、Java 小服務程式、CGI 指令碼、Java 物件、資料庫, FTP 伺服器, 等等。JMeter 可以用於對伺服器、網路或物件模擬巨大的負載,來自不同壓力類別下測試它們的強度和分析整體效能。另外,JMeter能夠對應用程式做功能/迴歸測試,通過建立帶有斷言的指令碼來驗證你的程式返回了你期望的結果。為了最大限度的靈活性,JMeter允許使用正則表示式建立斷言。  Apache jmeter 可以用於對靜態的和動態的資源(檔案,Servlet,Perl指令碼,java 物件,資料庫和查詢,FTP伺服器等等)的效能進行測試。它可以用於對伺服器,網路 或物件模擬繁重的負載來測試它們的強度或分析不同壓力型別下的整體效能。你可以使用它做效能的圖形分析或在大併發負載測試你的伺服器/指令碼/物件。2、用途1.能夠對HTTP和FTP伺服器進行壓力和效能測試, 也可以對任何資料庫進行同樣的測試(通過JDBC)。2.完全的可移植性和100% 純java。3.完全 Swing 和輕量元件支援(預編譯的JAR使用 javax.swing.*)包。4.完全多執行緒 框架允許通過多個執行緒併發取樣和 通過單獨的執行緒組對不同的功能同時取樣。5.精心的GUI設計允許快速操作和更精確的計時。6.快取和離線分析/回放測試結果。3、下載、簡單應用4、如何將上一個請求的結果作為下一個請求的引數  在壓力測試的時候,經常要將幾個流程串聯起來才能將程式測試通過。如:我現在使用者首先要登入,獲得我登入的憑證(tokenId),之後我的請求其他的資源的時候需要帶上這個憑證。才能識別你是否是合法的使用者。1)、建立一個執行緒租
2)、建立一個獲取憑證的請求3)、建立後置處理器   JMeter GUI 檢視中右擊該取樣器開啟右鍵選單 -> 新增 -> 後置處理器 -> 正則表示式提取器,開啟"正則表示式提取器"會話頁面並編輯其內容如下:  後置處理器是當這個請求返回後要做得事情,我這裡是要從返回的內容中將我們要的tokenId獲取出來。這裡使用“正則表示式提取器”,用正則表示式,將我們要的內容獲取出來。4)、正則表示式提取器配置
  • 引用名稱是下個請求將要引用到的變數名
  • 正則表示式是提取你想要內容的正則表示式,小括號()表示提取,也就是說對於你想要提取的內容需要用它括起來
  • 模板是使用提取到的第幾個值。因為可能有多個值匹配,所以要使用模板。從 1 開始匹配,依次類推。這裡只有一個,所以填寫 $1$ 即可;
  • 匹配數字表示如何取值。0 代表隨機取值,1 代表全部取值。這裡只有一個,填 1 即可;
  • 預設值表示引數沒有取到值的話,預設給它的值。一般不填。

這個請求返回的資料如下:

{"message":"success","statusCode":200,"registerDay":"20","tokenId":"bf1017bc1bb495ae31764b306a3422885f5"}
  我們現在要獲取的是上面這個json字串中tokenId的值,即   bf1017bc1bb495ae31764b306a3422885f5  。5)、新增下一個請求  在這個請求中,我們要將上面的tokenId作為一個引數一併傳送。  同上2)、新增一個http請求(執行緒租右鍵——》新增——》Sampler——》HTTP請求)
6)、新增檢視結果樹  7)、執行後,即可通過”檢視結果樹“查詢【第二篇】

正則表示式提取器是一個後置處理器,作用是在請求完成後,從響應資料中擷取一部分字串儲存到變數中,以便下一個請求使用,下面我們就來做一個簡單的例子吧

1.首先線上程組下新增兩個HTTP請求,

2.新增好兩個HTTP請求後,在每個HTTP請求下新增一個檢視結果數

3.在第一個HTTP請求下新增正則表示式提取器

4.在第一個HTTP請求新增好IP地址,路徑,埠號,協議,方法,如果有引數,還需要新增引數,我這裡沒有引數所以就不添加了

5.點選綠色箭頭啟動,檢視第一個HTTP請求完成後的響應資料

6.第一個HTTP請求完成後的響應資料的url是隨機變化的,每次HTTP請求完成後的響應資料的url是不同的,現在需要獲取第一個HTTP請求完成後的響應資料的url作為第二個HTTP請求的IP地址,這個時候就需要用到正則表示式提取器,正則表示式提取器是一個後置處理器,作用是在請求完成後,從響應資料中擷取一部分字串儲存到變數中,以便下一個請求使用。

7.現在編輯正則表示式提取器

8.說明:

(1)引用名稱:作為下一個請求要引用的引數名稱,如填寫myurl,則可用${myurl}引用它來作為第二個HTTP請求的IP地址

 (2)正則表示式用""包起來,如第一個HTTP請求完成後的響應資料{"status":"ok","message":"建立房間成功","data":{"url":"https://www.pp2pp.xyz/room/58ff022f5cd4c32ae9a7f457"}} 我們只需要URL,所以正則表示式為  "url":"https://(.+?)"

() 表示括起來的部分就是要提取的。

. 表示匹配任何字串。+ 表示一次或多次。?表示不要太貪婪,在找到第一個匹配項後停止。(3)模板:用$$引用起來,如果在正則表示式中有多個正則表示式,則可以是$2$,$3$等等,表示解析到的第幾個值給myurl。如:$1$表示解析到的第1個值,我們這裡只有一個正則表示式,所以是$1$(4)匹配數字:0代表隨機取值,1代表全部取值,通常情況下填1(5)預設值:如果引數沒有取得到值,那預設給一個值讓它取,通常情況下為空9.現在可以開始編輯第二個HTTP請求,10.我們再來點選綠色箭頭啟動,檢視這兩個HTTP請求完成後的響應資料,可以看到第二個HTTP請求地址就是第一個HTTP請求的響應資料的URL11.如果是要獲取第一個HTTP的響應資料的URL地址的後面數字作為第二個HTTP的引數,做法也是一樣的,只是正則表示式不一樣,如第一個HTTP請求完成後的響應資料{"status":"ok","message":"建立房間成功","data":{"url":"https://www.pp2pp.xyz/room/58ff022f5cd4c32ae9a7f457"}} 如果我們只需要URL後面的數字58ff022f5cd4c32ae9a7f457,那麼正則表示式為  "url":"https://www.pp2pp.xyz/room/(.+?)"

【第三篇】

(正則表示式提取器是Jmeter關聯中的一種)使用場景:

有兩個HTTP請求,請求A的返回資料中有一個欄位“ABCD”,該欄位要作為請求B的入參。

1、新增方式

請求A上右鍵-->後置處理器->正則表示式提取器

2、提取A請求中的taskCode對應的值

為了獲取到上圖中圈起來的這個值,要配置正則表示式提取器:

說明:
(1)引用名稱:下一個請求要引用的引數名稱,如填寫Atask,則可用${Atask}引用它。
(2)正則表示式:
    ():括起來的部分就是要提取的。
    .:匹配任何字串。
    +:一次或多次。
    ?:不要太貪婪,在找到第一個匹配項後停止。

(4)匹配數字:0代表隨機取值,1代表全部取值,通常情況下填0
(5)預設值:如果引數沒有取得到值,那預設給一個值讓它取,我填的Error

3、獲取到的值傳入B請求

看一下請求B是否如預期的一樣傳入Atask這個值

引用成功~~

記錄一個好用的測試正則表示式的工具:

工具名稱:RegexTester

使用方法:

如果覺得本文的文章寫得很好,打個賞,多少都行~~~

相關推薦

JmeterJDBC Request查詢結果作為一個接口參數方法

多條 在一起 循環控制 nbsp 根據 如果 sso log 設置 現在有一個需求,從數據庫tieba_info表查出rank小於某個值的username和count(*),然後把所有查出來的username和count(*)作為參數值,用於下一個接口。 tieba_inf

JmeterJDBC Request查詢結果作為一個介面引數方法

現在有一個需求,從資料庫tieba_info表查出rank小於某個值的username和count(*),然後把所有查出來的username和count(*)作為引數值,用於下一個介面。 tieba_info表結構如下圖   分析: 1.要查出username和count(*),那麼首先

Jmeter JDBC Request 查詢結果作為一個介面引數方法

一、前言 本文只介紹將 JDBC Request 查詢結果作為下一個介面引數的方法,下載 mysql-connector-java-5.1.42-bin.jar,怎麼將jmeter連線資料庫等等準備工作可以百度,下面直接進入正題。 二、需求

jmeter如何一個請求結果作為一個請求引數——使用提取

轉載地址:下面有三篇都是關於講解jmeter的關聯(將上一個請求的結果作為下一個請求的引數),第一篇看不懂就看第二篇,第三篇最易懂!【第一篇】1、簡介  Apache JMeter是Apache組織開發的基於Java的壓力測試工具。用於對軟體做壓力測試,它最初被設計用於Web

jmeter 如何一個請求結果作為一個請求引數——使用提取

1、簡介   Apache JMeter是Apache組織開發的基於Java的壓力測試工具。用於對軟體做壓力測試,它最初被設計用於Web應用測試但後來擴充套件到其他測試領域。 它可以用於測試靜態和動態資源例如靜態檔案、Java 小服務程式、CGI 指令碼、Java 物件、資料庫, FTP 伺服器, 等等。J

Jmeter如何一個請求結果作為一個請求引數——使用表示式提取

正則表示式提取器是一個後置處理器,作用是在請求完成後,從響應資料中擷取一部分字串儲存到變數中,以便下一個請求使用,下面我們就來做一個簡單的例子吧 1.首先線上程組下新增兩個HTTP請求, 2.新增好兩個HTTP請求後,在每個HTTP請求下新增一個檢視結果數 3.在第一個HTTP請求下新增正則表示式提取器

jmeter 如何一個請求結果作為一個請求的參數——使用提取

服務 gis 類別 開發 例如 www. 期望 感謝 .html 1、簡介   Apache JMeter是Apache組織開發的基於Java的壓力測試工具。用於對軟件做壓力測試,它最初被設計用於Web應用測試但後來擴展到其他測試領域。 它可以用於測試靜態和動態資源例如靜

jmeter如何連線資料庫,並且利用查詢的結果 作為一個請求引數

背景:小編最近寫了一個介面自動化的步驟,主要分為以下幾個部分1.隨機賬號登入微信商城2.提交訂單 生成訂單單號3.訂單進行餘額支付或者線上支付4.後臺訂單分揀對於後臺訂單分揀,小編髮現,他只是傳了一個Id就對商品進行分揀了,然後小編一臉懵逼,這我怎麼知道我剛才下的訂單,每個商

jemeter一個介面的返回結果作為一個介面的引數

1、需要獲取響應資料的請求右鍵新增-後置處理器-JSON Extractor(這個的使用必須先安裝外掛jsonpathextractor,安裝方法如下:先下載Plugins Manager,把該jar包放在JMeter'slib/ext directory,在jemeter選

如何使用JDBC Request跨數據庫查詢後引用查詢的結果作為一個JDBC Request的入參

pos 添加 sql語句 前言 測試 img 我們 一個數據庫 下一個 【前言】 今天來給大家介紹下如何使用JDBC Request跨數據庫查詢後引用查詢的結果作為下一個JDBC Request的入參! 因為我現在所測的系統模塊中部分表在不同的數據庫中,所以在用JDBC

介面測試: 用Jmeter從資料庫獲取測試資料, 作為一個介面引數方法

現在有一個需求,從資料庫tieba_info表查出rank小於某個值的username和count(*),然後把所有查出來的username和count(*)作為引數值,用於下一個介面。 (資料庫連線配置,請參考我的另外一篇博文jmeter測試mysql資料庫之JDBC請求https://blo

Jmeter使用JSON Path Extractor/提取進行提取引數

一、為什麼要用這個提取器? 相對於正則提取器來說 小編更加喜歡用這個json提取器,因為正則提取器感覺就跟lr中的關聯函式一樣,實際上就是尋找左邊界右邊界,然後中間卡一段,來進行訂單,但是json提取器不一樣,他可以讓你形成一種分層的引用習慣,所以小編便使用了他 二、安裝

Jmeter系列(27)- 詳解提取

如果你想從頭學習Jmeter,可以看看這個系列的文章哦 https://www.cnblogs.com/poloyy/category/1746599.html   有了 JSON 提取器為啥還要用正則提取器? JSON 提取器只針對介面返回的響應內容 如果想提取的是響應頭、請求頭的值,而非響應內

Jmeter:Regular Expression Extractor表示式提取一個http請求報文內容作為一個請求引數

正則表示式提取器說明 新增元件 配置 引用 下面說明是參考網上的文章 說明:   (1)引用名稱:下一個請求要引用的引數名稱,如填寫title,則可用${title}引用它。   (2)正則表示式:     ():括起來的部分就是要提取的。    

Jmeter 實現請求返回結果 用於請求參數

http 默認值 控制器 正則 ges png 技術分享 -1 使用 1、新建測試計劃,測試計劃下方新增:HTTP請求默認值、HTTP信息頭管理器、HTTP cookie管理器,見圖 2、新建線程組,線程組下方新建事務控制器,見圖 每一個事務控制器下方新增htt

jmeter獲取一個介面的返回值作為一個介面的傳入引數

1.新建一個HTTP請求,獲取這個介面返回的電話號碼。 此介面的返回資料: 右擊這個HTTP請求,新增–後置處理器–正則表示式提取器 引用名稱:shop_phone 後面介面用到的變數名稱 正則表示式:<B>(\d{3}-\d{8})</B> 提

JMeter使用JSON Extractor外掛實現一個介面的JSON返回值作為一個介面的入參

##補充## 介面響應資料,一般為JSON,HTML格式的資料。 對於HTML的響應結果提取,可以使用正則表示式,也可以通過XPath來提取;對於JSON格式的資料,可以用正則表示式,JSON Extractor外掛,BeanShell來提取JSON響應結果。   比如:想要獲取響應中的 robot

Postman 如何處理一個接口返回值作為一個接口入參?

src 網上 操作 test 生效 class code 信息 man 今天做接口測試,有一個接口的參數是一個校驗 token,會實時更新,開發提供了一個單獨返回實時 token 的接口,所以就需要在功能接口使用時調用 token 接口的返回值,作為功能接口的參數來使用。

Jmeter關聯之如何介面的返回值作為個介面的引數

介面測試很多時候用到B介面的引數是A介面的返回值,這個時候就需要用到關聯。儲存A介面的返回值,B介面的引數直接關聯就OK了,如何儲存B介面的返回值,我一般用到的是正則表示式,一個是提取方便,二是公式簡單便於理解;但是jmeter的正則表示式需要外掛才能使用。 1.Jmeter目錄結構介紹

postman 一個介面的返回值作為一個介面的入參

在使用postman做介面測試的時候,在多個介面的測試中,如果需要上一個介面的返回值作為下一個介面的入參,其基本思路是: 1、獲取上一個介面的返回值 2、將返回值設定成環境變數或者全域性變數 3、設定下一個介面的引數形式 列子: 存在兩個介面(設定微信公眾號的測試號的選單欄的介面) 1、第一個介面