jmeter壓測學習3-提取json數據里面的token參數關聯 (json提取器)


前言

現在很多接口的登錄是返回一個json數據,token值在返回的json里面,在jmeter里面也可以直接提取json里面的值。
上一個接口返回的token作為下個接口的入參。

案例場景

我現在有一個登陸接口A,登陸成功后返回一個token值。有一個獲取綁定卡號的接口B,但是接口B必須要先登錄后傳登錄的token才能訪問
A接口登錄接口文檔基本信息

A接口的請求和返回的報文信息如下

D:\>http http://127.0.0.1:8000/api/v1/login/ username=test password=123456 -v POST /api/v1/login/ HTTP/1.1 Accept: application/json, */* Accept-Encoding: gzip, deflate Connection: keep-alive Content-Length: 42 Content-Type: application/json Host: 127.0.0.1:8000 User-Agent: HTTPie/1.0.3 { "password": "123456", "username": "test" } HTTP/1.1 200 OK Allow: POST, OPTIONS Content-Length: 109 Content-Type: application/json Date: Sat, 21 Sep 2019 15:37:06 GMT Server: WSGIServer/0.2 CPython/3.6.0 Vary: Accept, Cookie X-Frame-Options: SAMEORIGIN { "code": 0, "msg": "login success!", "token": "234af73571da46ade79ea6a74961b1d23d609b79", "username": "test" } 

B接口獲取綁定卡號的接口文檔基本信息

登錄請求

先在jmeter里面添加http請求,填登錄接口的參數

HTTP信息頭管理器添加post請求類型:Content-Type: application/json

運行之后查看結果數,可以看到正確的返回我們想要的token值

Json 提取器

添加后置處理器-Json提取器

從返回的結果中提取token值

返回的結果

{
    "code": 0, "msg": "login success!", "token": "234af73571da46ade79ea6a74961b1d23d609b79", "username": "test" } 

JSON提取器參數說明:

  • Names of created variables 參數名稱
  • JSON Path expressions 提取表達式
  • Match No.(0 for Random) 匹配規則,-1所有,0隨機,1第一個
  • Compute concatenation va 如果有匹配到多個值,選擇此項,會將全部值保存到_ALL,並使用逗號分割每個值,注意Match No. (0 for Random)需要為-1才有效,不然只能匹配到一個值了
  • Default Values 沒提取到就給默認值

關聯請求

下個請求頭部需要用到上面的token值

添加頭部管理器,引用token參數 ${token}

查看結果,請求頭部關聯參數成功

查看響應結果也能正確的返回

遇到的坑

參數關聯的時候,遇到一個坑,請求的參數都對,但是報錯:
Response code: Non HTTP response code: org.apache.http.NoHttpResponseException

后來查資料,需要把第一個請求的的客戶端實現用JAVA方式實現,才能正常的關聯成功

 
 
 
 
 

 

Jmeter之Json Path Extractor的使用(Json-handle下載安裝和使用)

 

jp@gc - JSON Path Extractor和“正則表達式提取器”使用效果一樣。

他的作用單一,只提取json數據

jp@gc - JSON Path Extracto

變量名自己定義,json數據路徑,可通過“JSON-handle”獲取

 

 JSON-handle

 JSON-handle是一款對JSON格式的內容進行瀏覽和編輯,以樹形圖樣式展現JSON文檔,並可實時編輯。

1.下載JSON-Handle:http://jsonhandle.sinaapp.com/

 

2.打開Chrome的擴展程序頁,將下載的crx文件拖入

 

3.使用

點擊瀏覽器上的小圖標,即可使用

復制jmeter響應數據(json字串)到工具中,點擊ok

點擊右上角的按鈕

 

出現彈窗后,點擊需提取的數據,這個數據的json路徑就獲取到了。

復制JSON.result[0].pic到jmeter中,並將JSON修改為$

運行結果

 


免責聲明!

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



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