JMeter-如何循環使用接口返回的多值?


前言

在用JMeter做接口測試的時候,經常會遇到這樣一種情況:一個接口請求返回了多個值,然后下一個接口想循環使用前一個接口的返回值;第二種情況:只想循環請求前一個接口返回值中的隨機不定長度的某一些值(並不想用全部的)。

今天,我就和大家講解一下這兩種情況我們如何用JMeter來實現的。

先說第一種情況:一個接口請求返回了多個值,然后下一個接口想循環使用前一個接口的返回值

需求:有一個獲取文件列表的接口,返回了所有的fileVersion,接下來,我就想把所有fileVersion作為下個登錄接口用戶名登錄一遍。這種常見於企業中有一個獲取商品列表的接口,就想驗證下所有的商品詳情信息是否都正常,是否存在無效商品。我們怎么做呢?

一:首先,在我們的獲取文件信息列表接口,我們就在下面增加一個后置處理器——json提取器或正則提取器,提取所有fileVersion值

二:我們再添加一個邏輯控制 > 循環控制器。因為獲取的fileVersion總數可能一直在變,不是一個固定值,所以,循環次數不能使用固定值。哪這個循環控制循環次數怎么配置呢?我們要使用上一步,json提取中變量名稱加_matchNr這樣的新變量。

三:在循環控制器下面添加print登錄http請求。那此時又有個新問題了,有了循環次數,接口每次調用的時候,接口參數中手機號碼如何自動更新值呢?我就加個計時器函數。當然,添加計時器也可以。userName的參數值寫入

${_v(mobilephone${_counter(,)})},其中,_v()為連接函數,mobilephone為json提取器生成的變量名稱,“_”為連接符,${_counter(,)}為計數器函數

四,添加察看結果樹和匯總報告,點擊運行,查看響應結果

總共有174個ffileVersion,最后,匯總報告中,顯示的總取樣次數也是174,說明我們的循環寫法沒有問題。

再說第二種情況,我們想隨機抽取所有用戶中的隨意長度用戶,常見於企業中商品數量比較多,隨機抽檢任意多個商品,驗證商品詳情是否正常。

一:依然是在獲取用戶列表接口下面添加后置處理器——json提取器或正則提取器。只是,這次我們的提取寫法不一樣了。

二:依然是添加循環控制器,只是,又有一個新問題了,因為都是隨機數,起始和終止值之間的差距不確定,循環次數也就不確定,哪這個循環次數如何設置呢? 這里我們引入一個intSum求和函數,寫入${_intSum(-${stnum},${rdnum},)},

其中,intSum為求和函數,“-”為負號,就進行減法運算了,${stnum}為起始值,${rdnum}為終止值

三:在循環控制器下面添加print登錄http請求。那此時又有個新問題了,有了循環次數,接口每次調用的時候,接口參數中手機號碼如何自動更新值呢?我就加個計時器函數。當然,添加計時器也可以。userName的參數值寫入

${_v(mobilephone${_counter(,)})},其中,_v()為連接函數,mobilephone為json提取器生成的變量名稱,“_”為連接符,${_counter(,)}為計數器函數

四,添加察看結果樹,點擊運行,查看響應結果


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM