【解析postman工具的使用---基礎篇】

postman前端請求詳解

    • 主界面
    • 1.常見類型的接口請求
      • 1.1 查詢參數的接口請求
        • 1.1.1 什么是查詢參數?
        • 1.1.2 postman如何請求
      • 1.2 ?表單類型的接口請求
        • 1.2.1 復習下http請求
        • 1.2.2? 什么是表單
      • 1.3 上傳文件的表單請求
      • 1.4? json類型的接口請求
    • 2. 響應接口數據分析
      • 2.1 postman的響應數據展示
      • 2.2 數據對我們做接口測試的作用
      • 2.3 接口響應Body中的顯示主題
    • 3. 接口管理(Collection)
      • 3.1 具體步驟
      • 3.2 圖形化界面
      • 3.3 批量執行接口請求
    • 4. 日志調試
      • 4.1 查看打印日志
      • 4.2 其他實用的功能
    • 5. 斷言
      • 5.1 斷言的特點
      • 5.2 書寫斷言
      • 5.3 常用的斷言
        • 5.3.1 狀態行中的斷言:
        • 5.3.2 響應頭中的斷言
        • 5.3.3 響應體中的斷言(斷言響應體)
        • 5.3.5 響應時間(一般用于性能測試)
    • 6. 變量(全局/集合/環境)
      • 6.1 常用的三種變量
      • 6.2 定義變量
      • 6.3 獲取變量
    • 7. 請求前置腳本
    • 8. 接口關聯
    • 9. 常見返回值的獲取

主界面

在這里插入圖片描述

1.常見類型的接口請求

常見的接口有如下四種類型,分別是:

  • ?含有查詢參數的接口 (就是url地址中問號?后面的部分,這個就叫查詢參數)
  • ?表單類型的接口
  • ?json類型的接口
  • ?含有上傳文件的接口

以下就對這四種類型接口及如何在postman中請求進行說明 。

1.1 查詢參數的接口請求

1.1.1 什么是查詢參數?

所謂的查詢參數,其實就是URL地址中問號(?)后面的部分就叫查詢參數,比如:http://cx.shouji.360.cn/phonearea.php?number=13012345678

在這個接口中,查詢參數就是:number=13012345678

而這一部分是由鍵值對組成,格式為:key1=value1&key2=value2, 如果有多組鍵值對,要用&隔開

1.1.2 postman如何請求

在postman中實現對這類接口請求非常簡單,一般就需要明確倆個參數即可,一個是請求方法,一個請求地址。

針對上面的那個接口,地址已經給出 ,而它的請求方法是get 。那么在postman中只需要把這倆個參數填寫上即可請求 。

具體實現步驟:

  1. 打開postman,新建一個請求。
  2. 在請求方法中選擇請求方法:GET,因為在postman中默認的請求方法就是GET,所以這一步可以忽略
  3. 接口URL中輸入地址,點擊Send按鈕就可以發送請求了 。

在這里插入圖片描述

說明:查詢參數在url中一般直接拷貝到輸入的URL地址欄中就可以了(使用問號,如果有多個key=value,則使用&進行拼接);當然也可以把查詢參數在Params中輸入,倆者的效果是一樣的;在Params中輸入進行勾選,參數就會自動到url地址中,在url地址中寫參數,參數也會自動在Params中生成;如下圖

在這里插入圖片描述

1.2 ?表單類型的接口請求

1.2.1 復習下http請求

在發送HTTP請求的時候,一個請求中一般包含三個部分,分別是請求行,請求頭,請求體 。

http請求報文由三部分組成:請求行+請求頭+請求體

如下所示:

在這里插入圖片描述

①是請求方法,HTTP/1.1 定義的請求方法有8種:GET、POST、PUT、DELETE等最常的兩種GET和POST,如果是RESTful接口的話一般會用到GET、POST、DELETE、PUT。
②為請求對應的URL地址,它和報文頭的Host屬性組成完整的請求URL
③是協議名稱及版本號 (HTTP/1.1)。
④是HTTP的報文頭,報文頭包含若干個屬性,格式為“屬性名:屬性值”,服務端據此獲取客戶端的信息。
⑤是報文體,它將一個頁面表單中的組件值通過param1=value1&m2=value2的鍵值對形式編碼成一個格式化串,它承載多個請求參數的數據。不但報文體可以傳遞請求參數,請求URL也可以通過類似于“/chapter15/user.html? param1=value1&m2=value2”的方式傳遞請求參數

1.2.2? 什么是表單

不同的接口,請求體的數據類型是不一樣的,比較常見的一種就是表單類型,那么什么是表單類型呢 ?

簡單理解:就是在請求頭中查看Content-Type,它的值如果是:application/x-www-form-urlencoded .那么就說明客戶端提交的數據是以表單形式提交的 。見下圖
在這里插入圖片描述

如果在postman請求上圖的接口,我們只需要填寫四個參數,分別是

  • 請求方法:POST
  • 請求URL:http://localhost/index.php?m=Home&c=User&a=do_login&t=0.21942974229794432
  • 請求頭:Content-Type:application/x-www-form-urlencode(代表請求體里面的數據類型為表單類型)
  • 請求體: username=13088888888&password=123456&verify_code=8888

其中問號后面的m=Home&c=User&a=do_login&t=0.21942974229794432是屬于查詢參數,在我們輸入url后會自動把他填充到Params里面;

請求上圖接口的實現步驟:

  1. 打開postman,新建一個請求 。
  2. 在請求中設置以上四個參數,點擊Send按鈕。在postman中設置請求體類型為,需要選擇body-> x-www-form-urlencoded
  3. 查看響應數據。

如下圖所示:

在這里插入圖片描述

Params是自動填充了的

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-1MezdXaN-1691825859025)(F:\計算機\圖片源\postman\params自動填充.png)]

1.3 上傳文件的表單請求

在做接口測試時,我們經常會遇到需要上傳文件的接口,比如微信的更新頭像。這就需要用到:

multipart/form-data。它也屬于一種表單,但它既支持表單請求,也支持文件上傳。 它的請求報文中數據往往是下面這樣的:

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-Po77gVYx-1691825859025)(F:\計算機\圖片源\postman\上傳文件的表單請求.png)]

這種類型的接口,在postman中該如何請求呢 ? 我們先分析需要填寫的參數 。

  • 請求方法:POST
  • 請求URL:http://localhost/index.php/home/Uploadify/imageUp/savepath/head_pic/pictitle/banner/dir/images.html
  • 請求類型:multipart/form-data
  • 請求體:file=a1.jpg

實現步驟:

  1. 打開postman,新建一個請求 。
  2. 在請求中設置以上四個參數,點擊Send按鈕。注意:在postman中設置請求體類型,需要選擇body-> form-data 。file中要選擇File類型,然后上傳本地的文件 。
  3. 查看響應數據。

如下圖:
在這里插入圖片描述

1.4? json類型的接口請求

這應該是接口測試中最常見的一種情況了 , 也就是請求體類型為json,我們來看下這個請求報文 。

POST http://xxx/api/sys/login HTTP/1.1 (請求行)
Content-Type: application/json;charset=UTF-8 (請求頭里面的內容,他代表請求體的數據類型為json類型)body請求體里面內容如下:
{"account":"root","password":"123456"
}

根據以上報文,我們可以分析出,我們在postman只需要填寫四個參數即可,具體如下:

  • 請求方法:POST
  • 請求地址:http://xxx/api/sys/login
  • 請求體類型:json
  • 請求體數據:{"account":"root","password":"123456"}

實現步驟:

  1. 打開postman,新建一個請求 。

  2. 在請求中設置以上四個參數,點擊Send按鈕。注意:在postman中設置請求體類型

    選擇body-> raw -JSON

  3. 查看響應數據。

如下圖所示:

在這里插入圖片描述

2. 響應接口數據分析

響應數據是發送請求后經過服務器處理后返回的結果,響應由三部分組成,分別是

  • 狀態行:Status:200 OK
  • 響應頭:Headers + Cookies,需要注意的是Cookies是包含在響應頭中的,但是為了明顯,工具會分開顯示
  • 響應體 :Body

2.1 postman的響應數據展示

我們來看下postman的響應數據展示:

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-L7uslXaa-1691826322536)(F:\計算機\圖片源\postman\接口響應三部分.png)]

再看看具體信息

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-iXXIjbvu-1691825859026)(F:\計算機\圖片源\postman\接口響應三部分詳解.png)]

2.2 數據對我們做接口測試的作用

  • Body和Status是我們做接口測試的重點,一般來說我們都會驗證響應體中的數據和響應狀態碼
  • Test Results 是我們編寫斷言后,可以查看斷言的執行結果 ,所以這個對我們也很有用 。
  • Time 和Size 是我們做性能測試時,可以根據這兩個參數來對所測接口的性能做一個簡單的判斷。

2.3 接口響應Body中的顯示主題

接下來我們再來關注下Body中的幾個顯示主題,分別是:Pretty,Raw,Preview .

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-CcEJScK9-1691825859026)(F:\計算機\圖片源\postman\接口響應body中的主題.png)]

?

  • Pretty:翻譯成中文就是漂亮 , 也就是說返回的Body數據在這個標簽中查看 ,都是經過格式化的,格式化后的數據看起來更加直觀,所以postman默認展示的也是這個選項。比如返回html頁面,它會經過格式化成HTML格式后展示,比如返回json,那么也會格式化成json格式展示 。

  • Raw:翻譯成中文未經過加工的,也就是原始數據 ,原始數據一般都是本文格式的,未經過格式化處理的,一般在抓包工具中都有這個選項 。

  • Preview:翻譯成中文就是預覽,這個選項一般對返回HTML的頁面效果特別明顯,如請求百度后返回結果,點擊這個選項后就直接能查看到的頁面 ,如下圖 ;同時這個選項和瀏覽器抓包中的Preview也是一樣的 。

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-yYuARlBo-1691825859026)(F:\計算機\圖片源\postman\preview.png)]

3. 接口管理(Collection)

總結來說就是進行請求的分門別類管理

當我們對一個或多個系統中的很多用例進行維護時,首先想到的就是對用例進行分類管理,同時還希望對這批用例做回歸測試 。在postman也提供了這樣一個功能,就是Collection 。通過這個Collection就可以滿足我們的上面說的需求。

先對Collection功能的使用場景做個簡單總結 。

  • 用例分類管理,方便后期維護
  • 可以進行批量用例回歸測試 。

那么Collection是如何去管理用例的呢 ? 先想象我們要測試一個系統,系統下有多個模塊,每個模塊下有很多的被測接口用例 。那么基于這個場景,我們來通過Collection來進行實現:

3.1 具體步驟

點擊Collection,點擊+New Collection,在彈出的輸入框中輸入Collection名稱(這個就可以理解為所測試的系統),新建模塊(文件)、重命名等操作使用鼠標右鍵即可

3.2 圖形化界面

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-Kjc6rvlA-1691825859026)(F:\計算機\圖片源\postman\collections管理.png)]

3.3 批量執行接口請求

當我們在一個Collection中編寫了很多的接口測試用例,想一起執行這批用例,在postman中是如何操作呢 ?

實現步驟:

  • 選中一個Collection,點擊右三角,在彈出的界面點擊Run collection;
  • 會彈出一個Collection Runner的界面,默認會把Collection中的所有用例選中 。
  • 點擊Run就會對所有的用例進行運行

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-waZ8LsvS-1691825859027)(F:\計算機\圖片源\postman\run紅框.png)]

上面的箭頭指向的功能進行簡單說明:

  • 斷言統計:左上角的兩個0是統計當前Collection中斷言成功的執行數和失敗的執行數,如果沒有編寫斷言默認都為0 。
  • View Summary: 運行結果總覽,點擊它可以看到每個請求中具體的測試斷言詳細信息 。
  • Run Again: 重新運行,點擊它會把該Collection重新運行一遍。
  • New:返回到Runner,可以重新選擇用例的組合 。
  • Export Results:輸出結果記錄到本地;默認導出的結果json文件

4. 日志調試

在做接口測試時,經常會因為代碼寫的有問題導致報錯,這時通過查看日志就顯得非常重要了,postman也提供了這樣的功能,它允許我們在腳本中編寫打印語句,查看打印的結果 ; 同時也可以查看每個請求的日志信息 。

在postman中編寫日志打印語句使用的是JavaScript,編寫的位置可以是Pre-request Script 或Tests標簽中。編寫打印語句如:console.log(“我是一條日志”)

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-Gh0G3CX2-1691825859027)(F:\計算機\圖片源\postman\日志調試1.png)]

4.1 查看打印日志

在postman中有倆個入口:

  • 第一個入口就是:view-show postman console 。

  • 第二個入口就是左下角第三個圖標 。

打開的日志界面
在這里插入圖片描述

4.2 其他實用的功能

  • 搜索日志:輸入URL或者打印的日志就能直接搜索出我們想要的請求和日志,這對我們在眾多日志中查找某一條日志是非常方便的 。
  • 按級別搜索:可以查詢log,info,warning,error級別的日志 ,有助于我們更快定位到錯誤 。
  • 查看原始報文(Show raw log):如果習慣看原始請求報文的話,這個功能可能更方便些 。
  • 隱藏請求(Hide network):把請求都隱藏掉,只查看輸出日志 。

總之,通過這個功能,我們在請求接口報錯時,通過打印響應的日志,就能很輕松地找到問題原因了 。

5. 斷言

如果沒有斷言,我們只能做接口的功能測試,但有了斷言后,就為我們做自動化提供了條件,并且在postman中的斷言是非常方便和強大的 。

5.1 斷言的特點

我們先來了解下postman斷言的一些特點 ,具體如下

  • 斷言編寫位置:Tests標簽
  • 斷言所用語言:JavaScript
  • 斷言執行順序:在響應體數據返回后執行 。
  • 斷言執行結果查看:Test Results

5.2 書寫斷言

上面我們介紹到,編寫的斷言代碼是JavaScript,那如果不會寫怎么辦 ? 不用擔心,因為postman已經給我們內置了一些常用的斷言 。用的時候,只需從右側點擊其中一個斷言,就會在文本框中自動生成對應斷言代碼塊 。

在這里插入圖片描述

5.3 常用的斷言

接下來就讓我們了解一些常用斷言,還是按響應的組成來劃分,分別是{狀態行,響應頭,響應體}。

狀態行中又包括{狀態碼,狀態消息} 。在postman也可以對這兩個進行斷言

5.3.1 狀態行中的斷言:

  • 斷言狀態碼:Status code: code is 200

    pm.test("Status code is 200", function () {pm.response.to.have.status(200);        //這里填寫的200是預期結果,實際結果是請求返回結果
    });
    
  • 斷言狀態消息:Status code:code name has string

    pm.test("Status code name has string", function () {pm.response.to.have.status("OK");   //斷言響應狀態消息包含OK
    });
    

5.3.2 響應頭中的斷言

  • 斷言響應頭中包含:Response headers:Content-Type header check

    pm.test("Content-Type is present", function () {pm.response.to.have.header("Content-Type"); //斷言響應頭存在"Content-Type"
    })
    

5.3.3 響應體中的斷言(斷言響應體)

  • 斷言響應體中包含XXX字符串:Response body:Contains string

    pm.test("Body matches string", function () {
    pm.expect(pm.response.text()).to.include("string_you_want_to_search");
    }); 
    //注解
    pm.expect(pm.response.text()).to.include("string")      獲取響應文本中包含string
    
  • 斷言響應體等于XXX字符串:Response body : is equal to a string

    pm.test("Body is correct", function () {
    pm.response.to.have.body("response_body_string");
    });
    //注解
    pm.response.to.have.body("response_body_string");   獲取響應體等于response_body_string
    
  • 斷言響應體(json)中某個鍵名對應的值:Response body : JSON value check

    pm.test("Your test name", function () {var jsonData = pm.response.json();pm.expect(jsonData.value).to.eql(100);
    });
    //注解
    var jsonData = pm.response.json()   獲取響應體,以json顯示,賦值給jsonData .注意:該響應體必須返會是的json,否則會報錯
    pm.expect(jsonData.value).to.eql(100)  獲取jsonData中鍵名為value的值,然后和100進行比較
    

5.3.5 響應時間(一般用于性能測試)

  • 斷言響應時間:Response time is less than 200ms

    pm.test("Response time is less than 200ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(200);   //斷言響應時間<200ms
    });
    

案例說明

針對以下接口返回的數據進行斷言:

{"cityid": "101120101","city": "濟南","update_time": "2020-04-17 10:50""wea": "晴","wea_img": "qing","tem": "16","tem_day": "20","tem_night": "9","win": "東北風","win_speed": "3級","win_meter": "小于12km/h","air": "113"
}
  • 斷言響應狀態碼為200
  • 斷言city等于濟南
  • 斷言update_time包含2020-04-17

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-GJQso4Bx-1691825859027)(F:\計算機\圖片源\postman\duan言.png)]

總結,整體來說,如果用postman做接口測試,這個斷言功能必不可少,其中我們常斷言的響應體包含和JSON這倆個斷言又是重重之重

6. 變量(全局/集合/環境)

變量可以使我們在請求或腳本中存儲和重復使用其值,通過將值保存在變量中,可以在集合,環境或請求中引用。

對我們做接口測試來說,又是一個非常重要的功能 。

6.1 常用的三種變量

在postman常用的三種變量分別是全局變量,環境變量,集合變量 。

  • 全局變量:一旦申明了全局變量,全局有效,也就是說postman中的任何集合,任何請求中都可以使用這個變量。它的作用域是最大的 。
  • 環境變量:要申明環境變量,首先的創建環境,然后在環境中才能創建變量 。如果要想使用環境變量,必須先選擇(導入)這個環境,這樣就可以使用這個環境下的變量了 。需要說明的是環境也可以創建多個 。每個環境下又可以有多個變量 。
  • 集合變量:集合變量是針對集合的,也就是說申明的變量必須基于某個集合,它的使用范圍也只是針對這個集合有效 。

其中,他們的作用域范圍依次從大到小:全局變量>集合變量>環境變量 。 當在幾個不同的范圍內都申明了相同的變量時,則會優先使用范圍最小的變量使。

想要使用變量中的值只需倆個步驟,分別是定義變量和獲取變量 。

  1. 定義變量(設置變量)
  2. 獲取變量(訪問變量)

6.2 定義變量

定義全局變量和環境變量,點擊右上角的小齒輪,彈出如下界面,就可以根據需求定義全局變量或者環境變量了

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-OeSEHnhR-1691825859027)(F:\計算機\圖片源\postman\變量1.png)]

已經定義的全局變量和環境變量,可以進行快速查看

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-uYY4vDX8-1691825859027)(F:\計算機\圖片源\postman\變量2.png)]

定義集合變量

選擇一個集合,打開查看更多動作()菜單,然后點擊編輯 。選擇“變量”選項卡以編輯或添加到集合變量。

定義變量除了以上方式,還有另外一種方式 。但是這種方式在不同的位置定義,編寫不一樣。

  • 在URL,Params , Authorization , Headers , Body中定義:

  • 手工方式創建一個空的變量名

  • 在以上的位置把想要的值選中右擊,選中Set:環境|全局 ,選中一個變量名,點擊后就會保存到這個變量中

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-33v6wcKx-1691825859028)(F:\計算機\圖片源\postman\變量4.png)]

在Tests,Pre-requests Script:

  • 定義全局變量:pm.collectionVariables.set(“變量名”,變量值)
  • 定義環境變量:pm.environment.set(“變量名”,變量值)
  • 定義集合變量:pm.variables.set(“變量名”,變量值)

6.3 獲取變量

定義好變量,接下來就可以使用變量了 。需要注意的是,在不同的位置獲取變量,編寫的規則也是不一樣的 。

如果在請求參數中獲取變量,無論是獲取全局變量,還是環境變量,還是集合變量,獲取的方式都是一樣的編寫規則:{{變量名}} 。

  • 請求參數指的是:URL,Params , Authorization , Headers , Body

    如果是在編寫代碼的位置(Tests,Pre-requests Script)獲取變量,獲取不同類型的變量,編寫的代碼都不相同,具體如下:

  • 獲取環境變量:pm.environment.get(‘變量名’)

  • 獲取全局變量:pm.globals.get(‘變量名’)

  • 獲取集合變量:pm.pm.collectionVariables.get.get(‘變量名’)

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-eK5lpQWH-1691825859028)(F:\計算機\圖片源\postman\變量5.png)]

變量的使用場景非常廣泛,比如我們后面要提到的接口關聯,請求前置腳本都會使用到變量 。

7. 請求前置腳本

前置腳本其實就是在Pre-requests Script中編寫的JavaScript腳本,想要了解這個功能,需要先了解它的執行順序。那么下面就來看下它的執行順序 。

可以看出,一個請求在發送之前,會先去執行Pre Request Script(前置腳本)中的代碼 。那么這個功能在實際工作中有什么作用呢 ?

主要場景:一般情況下,在發送請求前需要對接口的數據做進一步處理,就都可以使用這個功能,比如說,登錄接口的密碼,在發送前需要做加密處理,那么就可以在前置腳本中做加密處理,再比如說,有的接口的輸入參數有一些隨機數,每請求一次接口參數值都會發送變化,就可以在前置腳本中編寫生成隨機數的代碼 。總體來說,就是在請求接口之前對我們的請求數據進行進一步加工處理的都可以使用前置腳本這個功能。

接下來通過一個案例來看下該功能是如何使用 ?

案例:

  • 請求的登錄接口URL,參數t的值要求的規則是每次請求都必須是一個隨機數。

  • 接口地址:http://localhost/index.php?m=Home&c=User&a=do_login&t=0.7102045930338428

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-sqIcXlh5-1691825859028)(F:\計算機\圖片源\postman\腳本1.png)]

實現步驟:

  1. 在前置腳本中編寫生成隨機數

  2. 將這個值保存成環境變量

  3. 將參數t的值替換成環境變量的值 。

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-l8alQhIv-1691825859028)(F:\計算機\圖片源\postman\腳本2.png)]
    總之,這個前置腳本對我們做接口測試也非常有用,對一些復雜的場景,都可以使用前置腳本進行處理后再請求接口 。

8. 接口關聯

在我們測試的接口中,經常出現這種情況 。 上一個接口的返回數據是下一個接口的輸入參數 ,那么這倆個接口就產生了關聯。 這種關聯在做接口測試時非常常見,那么在postman中,如何實現這種關聯關系呢 ?

實現思路:

  1. 提取上一個接口的返回數據值,
  2. 將這個數據值保存到環境變量或全局變量中
  3. 在下一個接口獲取環境變量或全局變量

案例:

  • 用戶上傳頭像功能,需要用戶先上傳一張圖片,然后會自動預覽 。那么在這個過程中,會調用到倆個接口 ,第一個上傳頭像接口,第二個預覽圖像接口 。

  • 其中調用上傳頭像接口成功后會返回如下信息:

    {"url": "/public/upload/user//head_pic//ba51d1c2f7f7b98dfb5cad90846e2d79.jpg","title": "banner","original": "","state": "SUCCESS","path": "images"
    }
    

而圖像預覽接口URL為:http://localhost/public/upload/user//head_pic//ba51d1c2f7f7b98dfb5cad90846e2d79.jpg 。可以看出這個接口的URL后半部分其實是上一個接口返回的url的值 。那么這倆個接口就產生了關聯。那么在postman 可以通過以下三步完成這倆個接口的關聯實現 。

實現步驟:

  1. 獲取上傳頭像接口返回url的值
  2. 將這個值保存成全局變量(環境變量也可以)
  3. 在圖像預覽中使用全局變量

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-fxPjO8ZJ-1691825859028)(F:\計算機\圖片源\postman\接口關聯1.png)]

可以看出,接口的關聯的解決方案都是用的是變量中的知識,也就是說只要你明確了要提取的值,后面就是保存該值,然后在其他接口使用該值就可以了。

9. 常見返回值的獲取

在做接口測試時,請求接口返回的數據都是很復雜的json數據,有著多層嵌套,這樣的數據層級在postman怎么獲取呢 ?

案例1:多層json嵌套, 獲取user_id的值

{"code": 0,"message": "請求成功!","data": {"user_id": "1252163151781167104"}
}
//獲取json體數據
var jsonData = pm.response.json()
// 獲取user_id的值,通過.獲取
var user_id = jsonData.data.user_id

案例2:json中存在列表,獲取points中的第二個元素

{"code": 0,"message": "請求成功!","data": {"roles": {"api": ["API-USER-DELETE"],"points": ["point-user-delete","POINT-USER-UPDATE","POINT-USER-ADD"]},"authCache": null}
}
//獲取json體數據
var jsonData = pm.response.json()
// 獲取user_id的值,通過下標獲取列表中某個元素
var user_id = jsonData.data.roles.points[1]

案例3:列表中取最后一個元素

{"code": 0,"message": "請求成功!","data": {"total": 24,"rows": [{"id": "1066370498633486336","mobile": "15812340003","username": "zbz"},{"id": "1071632760222810112","mobile": "16612094236","username": "llx"},...{"id": "1075383133106425856","mobile": "13523679872","username": "test001",},
//獲取json體數據
var jsonData = pm.response.json()
// 獲取id的值,通過slice(-1)獲取列表中最后一個元素。
var id = jsonData.data.rows.slice(-1)[0]

本人在學習時,做了簡單的梳理和自己的理解,附上博客便于大家查看和自己查閱,尊重版權,以下是原文鏈接
原文鏈接:https://www.toutiao.com/article/6913538714060800515/

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/36004.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/36004.shtml
英文地址,請注明出處:http://en.pswp.cn/news/36004.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

紅帽RHCA考試內容解析

紅帽RHCA考試內容解析&#xff1a;最新的RHCA有3大方向體系&#xff0c;考試內容分別為&#xff1a; 一、Platform 平臺技術 RH442&#xff1a;性能調優 使用紅帽企業Linux和紅帽網絡提供的工具來學習Linux的性能調優和規劃的技巧及方法&#xff0c;學習系統架構&#xff0c;…

什么是DNS欺騙及如何進行DNS欺騙

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 前言一、什么是 DNS 欺騙&#xff1f;二、開始1.配置2.Ettercap啟動3.操作 總結 前言 我已經離開了一段時間&#xff0c;我現在回來了&#xff0c;我終于在做一個教…

【AI】p54-p58導航網絡、藍圖和AI樹實現AI隨機移動和跟隨移動、靠近玩家揮拳、AI跟隨樣條線移動思路

p54-p58導航網絡、藍圖和AI樹實現AI隨機移動和跟隨移動、靠近玩家揮拳、AI跟隨樣條線移動思路 p54導航網格p55藍圖實現AI隨機移動和跟隨移動AI Move To&#xff08;AI進行移動&#xff09;Get Random Pointln Navigable Radius&#xff08;獲取可導航半徑內的隨機點&#xff09…

Java基礎十 - 設計模式

一、單例 1. 創建 餓漢式 package basic;public class ESingleton {// 先私有化靜態實例private static ESingleton eSingleton new ESingleton();// 私有化構造方法&#xff0c;防止外部實例化private ESingleton(){};// 提供全局訪問方法public static ESingleton geteSi…

時序預測 | MATLAB實現基于LSTM長短期記憶神經網絡的時間序列預測-遞歸預測未來(多指標評價)

時序預測 | MATLAB實現基于LSTM長短期記憶神經網絡的時間序列預測-遞歸預測未來(多指標評價) 目錄 時序預測 | MATLAB實現基于LSTM長短期記憶神經網絡的時間序列預測-遞歸預測未來(多指標評價)預測結果基本介紹程序設計參考資料 預測結果 基本介紹 Matlab實現LSTM長短期記憶神經…

識別和應對內存抖動

關于作者&#xff1a;CSDN內容合伙人、技術專家&#xff0c; 從零開始做日活千萬級APP。 專注于分享各領域原創系列文章 &#xff0c;擅長java后端、移動開發、人工智能等&#xff0c;希望大家多多支持。 目錄 一、導讀二、概覽三、案例分析3.1 使用memory-profiler3.2 使用 cp…

磁粉制動器離合器收放卷應用介紹

張力控制系統的開環閉環應用介紹,請查看下面文章鏈接: PLC張力控制(開環閉環算法分析)_張力控制plc程序實例_RXXW_Dor的博客-CSDN博客里工業控制張力控制無處不在,也衍生出很多張力控制專用控制器,磁粉制動器等,本篇博客主要討論PLC的張力控制相關應用和算法,關于繞線…

什么是 fullgc

GC GC 全稱為garbage collection,中文含義為垃圾回收&#xff0c;在jvm中的含義為回收無用內存空間 Young space 中文名為年輕代或者新生代&#xff0c;為JVM 堆的一部分&#xff0c;由分代GC概念劃分而來&#xff0c;保存生命周期較短的對象 Tenured space 中文名為老年代…

APP外包開發的iOS開發語言

學習iOS開發需要掌握Swift編程語言和相關的開發工具、框架和技術。而學習iOS開發需要時間和耐心&#xff0c;尤其是對于初學者。通過堅持不懈的努力&#xff0c;您可以逐步掌握iOS開發技能&#xff0c;構建出功能豐富、優質的移動應用。今天和大家分享學習iOS開發的一些建議方法…

【數據結構系列】鏈表

&#x1f49d;&#x1f49d;&#x1f49d;歡迎來到我的博客&#xff0c;很高興能夠在這里和您見面&#xff01;希望您在這里可以感受到一份輕松愉快的氛圍&#xff0c;不僅可以獲得有趣的內容和知識&#xff0c;也可以暢所欲言、分享您的想法和見解。 推薦:kuan 的首頁,持續學…

解決hbase節點已下線,但在status中顯示為dead問題

工作中需要下線4臺hbase小節點&#xff0c;下線完成后使用status 命令查看,有一臺為dead狀態: 使用status detailed 查看&#xff0c;發現“hd-03"這臺節點是dead。 檢查各節點配置文件無誤&#xff0c;并使用 /opt/hbase/bin/hbase-daemon.sh restart master 重啟兩個…

less基本使用

1 less中的變量 //對值進行聲明 link-color: #ccc//定義變量名稱 .{sleName} {}bg: background-color; //定義屬性名稱 .container {{bg}: red; }2 繼承&#xff08;復用重復樣式&#xff09; //繼承必須位于選擇器最后 //繼承選擇器名不能為變量 .a:hover:extend(.b) {}.a {…

走出迷宮(多組輸入bfs)

鏈接&#xff1a;登錄—專業IT筆試面試備考平臺_牛客網 來源&#xff1a;牛客網 題目描述 小明現在在玩一個游戲&#xff0c;游戲來到了教學關卡&#xff0c;迷宮是一個N*M的矩陣。 小明的起點在地圖中用“S”來表示&#xff0c;終點用“E”來表示&#xff0c;障礙物用“#…

淺談人工智能技術與物聯網結合帶來的好處

物聯網是指通過互聯網和各種技術將設備進行連接&#xff0c;實時采集數據、交互信息的網絡&#xff0c;對設備實現智能化自動化感知、識別和控制&#xff0c;給人們帶來便利。 人工智能是計算機科學的一個分支&#xff0c;旨在研究和開發能夠模擬人類智能的技術和方法。人工智能…

Redis: 詳解、使用教程和示例

Redis: 詳解、使用教程和示例 什么是 Redis&#xff1f; Redis&#xff08;Remote Dictionary Server&#xff09;是一個開源的、內存數據存儲系統&#xff0c;它可以用作數據庫、緩存和消息中間件。它支持多種數據結構&#xff0c;如字符串、哈希表、列表、集合、有序集合等…

Hadoop組件

前言 Hadoop 是一個能夠對大量數據進行分布式處理的軟件框架。具有可靠、高效、可伸縮的特點。 HDFS&#xff08;hadoop分布式文件系統&#xff09; 是hadoop體系中數據存儲管理的基礎。他是一個高度容錯的系統&#xff0c;能檢測和應對硬件故障。

后院失火、持續虧損!Mobileye半年報「不回避」競爭壓力

"客戶在2023年上半年非常謹慎&#xff0c;導致增長率低于正常水平&#xff0c;但我們已經看到下半年回暖趨勢&#xff0c;預計下半年交付將比去年同期增長16%&#xff0c;遠高于上半年。"這是Mobileye在近日公司半年報發布會上的預判。 公開數據顯示&#xff0c;今年…

Python 實現Selenium錄屏的一種方法(圖片整合成動態圖)

由于UI層自動化的不穩定性&#xff0c;經常會遇到執行中斷或用例失敗的問題&#xff0c;以下是一些常見的措施。 1.詳細的日志 2.定位出錯時截圖 3.Pytest的緩存機制(可以記錄成功了哪些失敗了哪些) 4.自動重試機制(如pytest-rerunfailures) 5.用例錄像 用例錄像是最直觀的一…

2023網絡安全常用工具匯總(附學習資料+工具安裝包)

幾十年來&#xff0c;攻擊方、白帽和安全從業者的工具不斷演進&#xff0c;成為網絡安全長河中最具技術特色的燈塔&#xff0c;并在一定程度上左右著網絡安全產業發展和演進的方向&#xff0c;成為不可或缺的關鍵要素之一。 話不多說&#xff0c;網絡安全10款常用工具如下 1、…

Opencv4基于C++基礎入門筆記:圖像 顏色 事件響應 圖形 視頻 直方圖

效果圖??????&#xff1a;opencv人臉識別效果圖(請叫我真愛粉) 先看一下效果圖勾起你的興趣&#xff01; 文章目錄&#xff1a; 一&#xff1a;環境配置搭建 二&#xff1a;圖像 1.圖像讀取與顯示 main.cpp 運行結果 2.圖像色彩空間轉換 2.1 換色彩 test.h …