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

weixin_33860553發表於2015-12-30

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、下載、簡單應用
  下載、簡單應用可參照:http://www.cnblogs.com/0201zcr/p/5046193.html
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)、執行後,即可通過”檢視結果樹“查詢
 
  致謝:感謝您的閱讀!

相關文章