天天看點

一文帶你全面解析postman工具的使用(基礎篇)一文帶你全面解析postman工具的使用(基礎篇)一.postman安裝說明二.postman基礎功能

一文帶你全面解析postman工具的使用(基礎篇)

原創 雨滴測試 2021-01-03 22:31:22

postman是一款支援http協定的接口調試與測試工具,其主要特點就是功能強大,使用簡單且易用性好 。無論是開發人員進行接口調試,還是測試人員做接口測試,postman都是我們的首選工具之一 。那麼接下來就介紹下postman到底有哪些功能,它們分别都能幹些什麼 。下面先通過一張圖來直覺地來看下postman中所包含的功能 。

一文帶你全面解析postman工具的使用(基礎篇)一文帶你全面解析postman工具的使用(基礎篇)一.postman安裝說明二.postman基礎功能

當然,以上功能也隻是展示了postman的一部分功能,為了能更加全面的展現這款工具的特點,我将從以下三個次元來加以說明。它們分别是:

  • 基礎功能
    • 常見類型的接口請求
    • 接口響應資料的解析
    • 接口管理(Collection)
    • 批量執行接口請求
    • 日志調試
    • 斷言
    • 變量
    • 請求前置腳本
    • 接口關聯
    • 常見的傳回值擷取
  • 便捷功能
    • 快速填寫查詢參數
    • 快速填寫請求頭資訊
    • 快速實作添加一個請求
    • 如何繼承集合認證
    • 批量斷言
    • 快速查詢和替換
  • 進階功能
    • 讀取檔案進行參數化
    • 生成測試報告
    • 代碼中發送請求
    • 編寫接口文檔
    • mock服務
    • 監控
    • 使用工作空間
    • 代碼同步與分支管理
    • 連接配接資料庫
    • apis

一.postman安裝說明

postman在2018年之後就不再支援浏覽器版本,是以,想要使用它就必須先下載下傳用戶端再安裝使用,下面就以Windows系統為例進行安裝 。

1.下載下傳與安裝

postman安裝步驟:

  1. 通路postman官方網站,下載下傳最新版本,通路位址:https://www.getpostman.com/
  2. 進入到下載下傳頁面,根據自己電腦下載下傳對應的版本
一文帶你全面解析postman工具的使用(基礎篇)一文帶你全面解析postman工具的使用(基礎篇)一.postman安裝說明二.postman基礎功能
  1. 輕按兩下下載下傳的安裝包,進入到安裝界面,直到使用者登入和注冊界面。
    • 若個人使用,選擇跳過即可,這時會進入到postman主界面,至此postman安裝成功(下圖)。
    • 若團隊使用,可以進行注冊,注冊後使用賬号可以加入團隊工作區
一文帶你全面解析postman工具的使用(基礎篇)一文帶你全面解析postman工具的使用(基礎篇)一.postman安裝說明二.postman基礎功能

2.界面導航說明

初次使用postman的朋友可能對界面上的一些元素不太熟悉,下面就通過一張圖來說明這些元素的含義 。

一文帶你全面解析postman工具的使用(基礎篇)一文帶你全面解析postman工具的使用(基礎篇)一.postman安裝說明二.postman基礎功能

3.發送第一個請求

如果你是第一次使用postman發送請求,下面這個例子可以作為一個最基本的入門,可以幫我們建立一個初始印象 。

  1. 打開postman,點選+加号打開一個新的請求頁。
  2. 在請求的URL中輸入請求位址:http://www.weather.com.cn/data/sk/101010100.html
  3. 點選Send按鈕,這時就可以在下部的窗格中看到來自伺服器的json響應資料。
一文帶你全面解析postman工具的使用(基礎篇)一文帶你全面解析postman工具的使用(基礎篇)一.postman安裝說明二.postman基礎功能

二.postman基礎功能

1.常見類型的接口請求

常見的接口有如下四種類型,分别是含有查詢參數的接口,表單類型的接口,json類型的接口以及含有上傳檔案的接口,以下就對這四種類型接口及如何在postman中請求進行說明 。

1.1 .查詢參數的接口請求

什麼是查詢參數?

所謂的查詢參數,其實就是URL位址中問号(?)後面的部分就叫查詢參數,比如:http://cx.shouji.360.cn/phonearea.php?number=13012345678 。在這個接口中,查詢參數就是:number=13012345678 。而這一部分是由有鍵值對組成,格式為:key1=value1&key2=value2, 如果有多組鍵值對,要用&隔開 。

postman如何請求

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

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

具體實作步驟:

  1. 打開postman,建立一個請求。
  2. 在請求方法中選擇請求方法:GET,因為在postman中預設的請求方法就是GET,是以這一步可以忽略
  3. 接口URL中輸入位址,點選Send按鈕就可以發送請求了 。
一文帶你全面解析postman工具的使用(基礎篇)一文帶你全面解析postman工具的使用(基礎篇)一.postman安裝說明二.postman基礎功能

說明:查詢參數的URL一般直接拷貝到輸入的URL位址欄中就可以了,當然也可以把查詢參數在Params中輸入,倆者的效果是一樣的 。

1.2 表單類型的接口請求

什麼是表單 ?

我們都知道,在發送HTTP請求的時候,一個請求中一般包含三個部分,分别是請求行,請求頭,請求體 。

不同的接口,請求體的資料類型是不一樣的,比較常見的一種就是表單類型,那麼什麼是表單類型呢 ? 簡單了解就是在請求頭中檢視Content-Type,它的值如果是:application/x-www-form-urlencoded .那麼就說明用戶端送出的資料是以表單形式送出的 。見下圖

一文帶你全面解析postman工具的使用(基礎篇)一文帶你全面解析postman工具的使用(基礎篇)一.postman安裝說明二.postman基礎功能

postman中如何請求?

如果在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

實作步驟:

  1. 打開postman,建立一個請求 。
  2. 在請求中設定以上四個參數,點選Send按鈕。在postman中設定請求體類型為,需要選擇body-> x-www-form-urlencoded
  3. 檢視響應資料。
一文帶你全面解析postman工具的使用(基礎篇)一文帶你全面解析postman工具的使用(基礎篇)一.postman安裝說明二.postman基礎功能

1.3 上傳檔案的表單請求

在做接口測試時,我們經常會遇到需要上傳檔案的接口,比如微信的更新頭像。這就需要用到:multipart/form-data。它也屬于一種表單,但它既支援表單請求,也支援檔案上傳。 它的請求封包中資料往往是下面這樣的。

POST http://localhost/index.php/home/Uploadify/imageUp/savepath/head_pic/pictitle/banner/dir/images.html HTTP/1.1
Content-Type: multipart/form-data
           

file=a1.jpg

這種類型的接口,在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. 檢視響應資料。
一文帶你全面解析postman工具的使用(基礎篇)一文帶你全面解析postman工具的使用(基礎篇)一.postman安裝說明二.postman基礎功能

1.4 json類型的接口請求

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

POST http://xxx/api/sys/login HTTP/1.1

Content-Type: application/json;charset=UTF-8
           

{“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. 檢視響應資料。
一文帶你全面解析postman工具的使用(基礎篇)一文帶你全面解析postman工具的使用(基礎篇)一.postman安裝說明二.postman基礎功能

2.接口響應資料解析

響應資料是發送請求後經過伺服器處理後傳回的結果,響應由三部分組成,分别是狀态行、響應頭、響應體。我們來看下postman的響應資料展示。

一文帶你全面解析postman工具的使用(基礎篇)一文帶你全面解析postman工具的使用(基礎篇)一.postman安裝說明二.postman基礎功能

在postman中的響應資料展示:

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

那麼這些資料對我們做接口測試有什麼作用呢 ?

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

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

一文帶你全面解析postman工具的使用(基礎篇)一文帶你全面解析postman工具的使用(基礎篇)一.postman安裝說明二.postman基礎功能

Pretty:翻譯成中文就是漂亮 , 也就是說傳回的Body資料在這個标簽中檢視 ,都是經過格式化的,格式化後的資料看起來更加直覺,是以postman預設展示的也是這個選項。比如傳回html頁面,它會經過格式化成HTML格式後展示,比如傳回json,那麼也會格式化成json格式展示 。

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

Preview:翻譯成中文就是預覽,這個選項一般對傳回HTML的頁面效果特别明顯,如請求百度後傳回結果,點選這個選項後就直接能檢視到的頁面 ,如下圖 。同時這個選項和浏覽器抓包中的Preview也是一樣的 。

一文帶你全面解析postman工具的使用(基礎篇)一文帶你全面解析postman工具的使用(基礎篇)一.postman安裝說明二.postman基礎功能

3.接口管理(Collection)

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

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

  • 用例分類管理,友善後期維護
  • 可以進行批量用例回歸測試 。

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

  1. 點選Collection,點選+New Collection,在彈出的輸入框中輸入Collection名稱(這個就可以了解為所測試的系統)
一文帶你全面解析postman工具的使用(基礎篇)一文帶你全面解析postman工具的使用(基礎篇)一.postman安裝說明二.postman基礎功能
  1. 選中建立的Collection右鍵,點選Add Folder ,在彈出對話框中輸入檔案夾名稱(這個就可以了解為系統中的子產品)
一文帶你全面解析postman工具的使用(基礎篇)一文帶你全面解析postman工具的使用(基礎篇)一.postman安裝說明二.postman基礎功能
  1. 選中建立的Folder,點選Add Request ,在彈出的對話框中輸入請求名稱,這個就是我們所測試的接口,也可以了解為測試用例 。
一文帶你全面解析postman工具的使用(基礎篇)一文帶你全面解析postman工具的使用(基礎篇)一.postman安裝說明二.postman基礎功能

那麼通過以上三個步驟,達到的效果就是如圖所示:

一文帶你全面解析postman工具的使用(基礎篇)一文帶你全面解析postman工具的使用(基礎篇)一.postman安裝說明二.postman基礎功能

總結,通過上面的操作,我們實作了一個最簡單的demo模型。但實際上,有了這個功能才是postman學習的開始,因為很多功能都是基礎這個功能的基礎上進行的,比如用例的批量執行,Mock ,接口文檔等功能 。

4. 批量執行接口請求

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

實作步驟:

  1. 選中一個Collection,點選右三角,在彈出的界面點選RUN
一文帶你全面解析postman工具的使用(基礎篇)一文帶你全面解析postman工具的使用(基礎篇)一.postman安裝說明二.postman基礎功能
  1. 這是會彈出一個叫Collection Runner的界面,預設會把Collection中的所有用例選中 。
一文帶你全面解析postman工具的使用(基礎篇)一文帶你全面解析postman工具的使用(基礎篇)一.postman安裝說明二.postman基礎功能
  1. 點選界面下方的RUN Collection,就會對Collection中選中的所有測試用例運作 。
一文帶你全面解析postman工具的使用(基礎篇)一文帶你全面解析postman工具的使用(基礎篇)一.postman安裝說明二.postman基礎功能

對上面的幾個紅框内的功能進行簡單說明:

  • 斷言統計:左上角的兩個0是統計目前Collection中斷言成功的執行數和失敗的執行數,如果沒有編寫斷言預設都為0 。
  • Run Summary: 運作結果總覽,點選它可以看到每個請求中具體的測試斷言詳細資訊 。Export Result:導出運作結果,預設導出的結果json檔案 。
  • Retry: 重新運作,點選它會把該Collection重新運作一遍
  • New:傳回到Runner,可以重新選擇用例的組合 。

總體來說,這個功能主要是用于對一個Collection中的所有用例或部分用例進行批量運作,已達到手工回歸測試的目的。

5.日志調試

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

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

一文帶你全面解析postman工具的使用(基礎篇)一文帶你全面解析postman工具的使用(基礎篇)一.postman安裝說明二.postman基礎功能

那麼列印的日如何看呢 ? 在postman中有倆個入口,第一個入口就是:view-show postman console 。

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

一文帶你全面解析postman工具的使用(基礎篇)一文帶你全面解析postman工具的使用(基礎篇)一.postman安裝說明二.postman基礎功能

打開的日志界面

一文帶你全面解析postman工具的使用(基礎篇)一文帶你全面解析postman工具的使用(基礎篇)一.postman安裝說明二.postman基礎功能

這裡面有幾個比較實用的功能:

  • 搜尋日志:輸入URL或者列印的日志就能直接搜尋出我們想要的請求和日志,這對我們在衆多日志中查找某一條日志是非常友善的 。
  • 按級别搜尋:可以查詢log,info,warning,error級别的日志 ,有助于我們更快定位到錯誤 。
  • 檢視原始封包(Show raw log):如果習慣看原始請求封包的話,這個功能可能更友善些 。
  • 隐藏請求(Hide network):把請求都隐藏掉,隻檢視輸出日志 。

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

6.斷言

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

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

  • 斷言編寫位置:Tests标簽
  • 斷言所用語言:JavaScript
  • 斷言執行順序:在響應體資料傳回後執行 。
  • 斷言執行結果檢視:Test Results

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

一文帶你全面解析postman工具的使用(基礎篇)一文帶你全面解析postman工具的使用(基礎篇)一.postman安裝說明二.postman基礎功能

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

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

狀态行中的斷言:

  • 斷言狀态碼:Status code: code is 200
pm.test(“Status code is 200”, function () {

   pm.response.to.have.status();        //這裡填寫的200是預期結果,實際結果是請求傳回結果

});                
  • 斷言狀态消息:Status code:code name has string
pm.test(“Status code name has string”, function () {

   pm.response.to.have.status(“OK”);   //斷言響應狀态消息包含OK

});                

響應頭中的斷言

  • 斷言響應頭中包含:Response headers:Content-Type header check
pm.test(“Content-Type is present”, function () {

   pm.response.to.have.header(“Content-Type”); //斷言響應頭存在"Content-Type"

});                

斷言響應體(重點)

  • 斷言響應體中包含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();

});

//注解

var jsonData = pm.response.json()   擷取響應體,以json顯示,指派給jsonData .注意:該響應體必須返會是的json,否則會報錯

pm.expect(jsonData.value).to.eql()  擷取jsonData中鍵名為value的值,然後和進行比較
           

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

  • 斷言響應時間:Response time is less than 200ms
pm.test(“Response time is less than 200ms”, function () {

   pm.expect(pm.response.responseTime).to.be.below();   //斷言響應時間<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
一文帶你全面解析postman工具的使用(基礎篇)一文帶你全面解析postman工具的使用(基礎篇)一.postman安裝說明二.postman基礎功能

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

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

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

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

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

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

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

想要使用變量中的值隻需倆個步驟,分别是定義變量和擷取變量 。

  1. 定義變量(設定變量)
  2. 擷取變量(通路變量)

定義變量

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

一文帶你全面解析postman工具的使用(基礎篇)一文帶你全面解析postman工具的使用(基礎篇)一.postman安裝說明二.postman基礎功能

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

一文帶你全面解析postman工具的使用(基礎篇)一文帶你全面解析postman工具的使用(基礎篇)一.postman安裝說明二.postman基礎功能

定義集合變量

選擇一個集合,打開檢視更多動作(…)菜單,然後點選編輯 。選擇“變量”頁籤以編輯或添加到集合變量。

一文帶你全面解析postman工具的使用(基礎篇)一文帶你全面解析postman工具的使用(基礎篇)一.postman安裝說明二.postman基礎功能

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

  • 在URL,Params , Authorization , Headers , Body中定義:
    1. 手工方式建立一個空的變量名
    2. 在以上的位置把想要的值選中右擊,選中Set:環境|全局 ,選中一個變量名,點選後就會儲存到這個變量中
一文帶你全面解析postman工具的使用(基礎篇)一文帶你全面解析postman工具的使用(基礎篇)一.postman安裝說明二.postman基礎功能

在Tests,Pre-requests Script:

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

擷取變量

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

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

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

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

  • 擷取環境變量:pm.environment.get(‘變量名’)
  • 擷取全局變量:pm.globals.get(‘變量名’)
  • 擷取集合變量:pm.pm.collectionVariables.get.get(‘變量名’)
一文帶你全面解析postman工具的使用(基礎篇)一文帶你全面解析postman工具的使用(基礎篇)一.postman安裝說明二.postman基礎功能

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

8.請求前置腳本

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

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

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

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

案例:

  • 請求的登入接口URL,參數t的值要求的規則是每次請求都必須是一個随機數。
  • 接口位址:http://localhost/index.php?m=Home&c=User&a=do_login&t=0.7102045930338428
一文帶你全面解析postman工具的使用(基礎篇)一文帶你全面解析postman工具的使用(基礎篇)一.postman安裝說明二.postman基礎功能

實作步驟:

  1. 在前置腳本中編寫生成随機數
  2. 将這個值儲存成環境變量
  3. 将參數t的值替換成環境變量的值 。
一文帶你全面解析postman工具的使用(基礎篇)一文帶你全面解析postman工具的使用(基礎篇)一.postman安裝說明二.postman基礎功能

總之,這個前置腳本對我們做接口測試也非常有用,對一些複雜的場景,都可以使用前置腳本進行處理後再請求接口 。

9. 接口關聯

在我們測試的接口中,經常出現這種情況 。 上一個接口的傳回資料是下一個接口的輸入參數 ,那麼這倆個接口就産生了關聯。 這種關聯在做接口測試時非常常見,那麼在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. 在圖像預覽中使用全局變量
一文帶你全面解析postman工具的使用(基礎篇)一文帶你全面解析postman工具的使用(基礎篇)一.postman安裝說明二.postman基礎功能

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

10.常見傳回值擷取

在做接口測試時,請求接口傳回的資料都是很複雜的json資料,有着多層嵌套,這樣的資料層級在postman怎麼擷取呢 ?

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

{

   “code”: ,

   “message”: “請求成功!”,

   “data”: {

       “user_id”: “1252163151781167104”

   }

}
           
//擷取json體資料

var jsonData = pm.response.json()

// 擷取user_id的值,通過.擷取

var user_id = jsonData.data.user_id
           

案例2:json中存在清單,擷取points中的第二個元素

{

   “code”: ,

   “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[]
           

案例3:清單中取最後一個元素

{

   “code”: ,

   “message”: “請求成功!”,

   “data”: {

       “total”: ,

       “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(-)[]
           

說明:由于平台文章規則限制,在一文中無法容納過多的内容,故将第二部分和第三部分分成兩個單獨的篇幅加以釋出,感興趣的朋友可以檢視後面的兩篇postman文章 。

繼續閱讀