Jmeter性能測試學習記錄(四)-提取Json數據和獲取系統時間

這些天在使用Jmeter進行接口測試的時候,我遇到一些問題,做一下記錄:

1.登錄的時候會獲取到tokenId這個字段信息,後面的接口都要用到這個字段信息。那麼怎麼拿到這個數據並且讓它可以爲後面的接口所用呢?

由於我在調用登錄接口後,發現tokenId這個字段信息是存放json數據裏面,所以就要用到Json Extractor了。

(1)點擊線程組的“Add-Sampler-Http Request”,新增一個HTTP請求,命名爲“登錄系統”,輸入正確的網址和參數,改爲Post方法;

(2)點擊HTTP請求的“Add-Post Processors-Json Extractor”,新增一個Json提取器,如下圖:

(3)由於登錄系統接口返回的數據大致如下,所以在Json Path expressions輸入“$..token”。

有人可能就不明白了,爲什麼這麼寫,首先名稱也就是Names of created variables,由我們自己定,但是要注意的一點是必須與後面引用時的名稱一致。例如,我在後面一個接口中要用到這個參數,所以Value必須是“${對應名稱}”,如下圖:

JSON Path expressions 的寫法是有格式的,爲什麼是“$..token”呢?

具體可以參考實例:https://github.com/json-path/JsonPath

2.如何獲取系統時間

我在接口測試的時候發現有一個接口需要進行實時刷新,其中有一個參數就是系統時間,具體如下:

time=2020-03-27%2B15%3A43%3A12+。

可以用__time()函數獲取當前時間

${__time()} 當前時間到計算機元年的毫秒數

${__time(時間格式)}  以預定的格式顯示當前時間


time     ${__time()}                           1585300919568
YMD      ${__time(YMD)}                        20200327
HMS      ${__time(HMS)}                        171215
YMDHMS   ${__time(YMDHMS)}                     20200327171215
time1    ${__time(yyMMdd)}                     200327
time2    ${__time(yyyy-MM-dd)}                 2020-03-27         
time3    ${__time(yyyy-MM-dd'T'HH:mm:ss)}      2020-03-27T17:12:15
time4    ${__time(yyyy-MM-dd'T'HH:mm:ss.SSS}   2020-03-27T17:12:15.123

只需要添加參數time,Value設置成“${__time(yyyy-MM-dd'+'HH:mm:ss)} ”


 

你以爲這樣就沒問題了嗎?結果還是報錯了,一看Request Body,原來是格式不對,所以一定要記得勾選“URL Encode”,讓time參數的值做轉碼處理。

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章