日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

一文全面解析 Postman 工具

 鷹兔牛熊眼 2021-04-05

postman是一款支持http協(xié)議的接口調(diào)試與測試工具,其主要特點就是功能強(qiáng)大,使用簡單且易用性好 。

無論是開發(fā)人員進(jìn)行接口調(diào)試,還是測試人員做接口測試,postman都是我們的首選工具之一 。
那么接下來就介紹下postman到底有哪些功能,它們分別都能干些什么 。下面先通過一張圖來直觀的來看下postman中所包含的功能 。

圖片

當(dāng)然,以上功能也只是展示了postman的一部分功能,為了能更加全面的體現(xiàn)這款工具的特點,我將從以下三個維度來加以說明。它們分別是:
  • 基礎(chǔ)功能
    • 常見類型的接口請求
    • 接口響應(yīng)數(shù)據(jù)的解析
    • 接口管理(Collection)
    • 批量執(zhí)行接口請求
    • 日志調(diào)試
    • 斷言
    • 變量
    • 請求前置腳本
    • 接口關(guān)聯(lián)
    • 常見的返回值獲取
  • 便捷功能快
    • 速填寫查詢參數(shù)
    • 快速填寫請求頭信息
    • 快速實現(xiàn)添加一個請求
    • 如何繼承集合認(rèn)證
    • 批量斷言
    • 快速查詢和替換
  • 高級功能
    • 讀取文件進(jìn)行參數(shù)化
    • 生成測試報告
    • 代碼中發(fā)送請求
    • 編寫接口文檔
    • mock服務(wù)
    • 監(jiān)控
    • 使用工作空間
    • 代碼同步與分支管理
    • 連接數(shù)據(jù)庫
    • apis


一. postman安裝說明


postman 在 2018 年之后就不再支持瀏覽器版本,所以,想要使用它就必須先下載客戶端再安裝使用,下面就以 Windows 系統(tǒng)為例進(jìn)行安裝 。
1. 下載與安裝
postman安裝步驟:
1. 訪問postman官方網(wǎng)站,下載最新版本
訪問地址:https://www./
2. 進(jìn)入到下載頁面,根據(jù)自己電腦下載對應(yīng)的版本

圖片

3. 雙擊下載的安裝包,進(jìn)入到安裝界面,直到用戶登錄和注冊界面。
若個人使用,選擇跳過即可,這時會進(jìn)入到postman主界面,至此postman安裝成功(下圖)。
若團(tuán)隊使用,可以進(jìn)行注冊,注冊后使用賬號可以加入團(tuán)隊工作區(qū)

圖片

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

圖片

3.發(fā)送第一個請求

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

1. 打開postman,點擊+加號打開一個新的請求頁。
2. 在請求的URL中輸入請求地址:
http://www.weather.com.cn/data/sk/101010100.html

3. 點擊Send按鈕,這時就可以在下部的窗格中看到來自服務(wù)器的json響應(yīng)數(shù)據(jù)。

圖片

二.postman基礎(chǔ)功能

1.常見類型的接口請求

常見的接口有如下四種類型,分別是含有查詢參數(shù)的接口,表單類型的接口,json類型的接口以及含有上傳文件的接口,以下就對這四種類型接口及如何在postman中請求進(jìn)行說明 。

1.1 .查詢參數(shù)的接口請求

什么是查詢參數(shù)?

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

postman如何請求

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

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

具體實現(xiàn)步驟:

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

2. 在請求方法中選擇請求方法:GET,因為在postman中默認(rèn)的請求方法就是GET,所以這一步可以忽略

3. 接口URL中輸入地址,點擊Send按鈕就可以發(fā)送請求了 。

圖片

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

1.2 表單類型的接口請求

什么是表單 ?

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

不同的接口,請求體的數(shù)據(jù)類型是不一樣的,比較常見的一種就是表單類型,那么什么是表單類型呢 ?簡單理解就是在請求頭中查看Content-Type,它的值如果是:application/x-www-form-urlencoded .那么就說明客戶端提交的數(shù)據(jù)是以表單形式提交的 。見下圖:

圖片

postman中如何請求?

如果在postman請求上圖的接口,我們只需要填寫四個參數(shù),分別是(可以參考上圖):
  • 請求方法: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
實現(xiàn)步驟:
  1. 打開postman,新建一個請求 。
  2. 在請求中設(shè)置以上四個參數(shù),點擊Send按鈕。在postman中設(shè)置請求體類型為,需要選擇body-> x-www-form-urlencoded
  3. 查看響應(yīng)數(shù)據(jù)。

圖片

1.3 上傳文件的表單請求

在做接口測試時,我們經(jīng)常會遇到需要上傳文件的接口,比如微信的更新頭像。這就需要用到:multipart/form-data。它也屬于一種表單,但它既支持表單請求,也支持文件上傳。它的請求報文中數(shù)據(jù)往往是下面這樣的。

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中該如何請求呢 ?我們先分析需要填寫的參數(shù) 。

  • 請求方法:POST
  • 請求URL:
    http://localhost/index.php/home/Uploadify/imageUp/savepath/head_pic/pictitle/banner/dir/images.html
  • 請求類型:multipart/form-data
  • 請求體:file=a1.jpg
實現(xiàn)步驟:
  1. 打開postman,新建一個請求 。
  2. 在請求中設(shè)置以上四個參數(shù),點擊Send按鈕。注意:在postman中設(shè)置請求體類型,需要選擇body-> form-data 。file中要選擇File類型,然后上傳本地的文件 。
  3. 查看響應(yīng)數(shù)據(jù)。

圖片

1.4 json類型的接口請求

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

POST http://xxx/api/sys/login HTTP/1.1
Content-Type: application/json;charset=UTF-8

{'account':'root','password':'123456'}

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

  • 請求方法:POST
  • 請求地址:http://xxx/api/sys/login
  • 請求體類型:json
  • 請求體數(shù)據(jù):{'account':'root','password':'123456'}
實現(xiàn)步驟:
  1. 打開postman,新建一個請求 。
  2. 在請求中設(shè)置以上四個參數(shù),點擊Send按鈕。注意:在postman中設(shè)置請求體類型,需要選擇body-> raw -JSON
  3. 查看響應(yīng)數(shù)據(jù)。

圖片

2.接口響應(yīng)數(shù)據(jù)解析

響應(yīng)數(shù)據(jù)是發(fā)送請求后經(jīng)過服務(wù)器處理后返回的結(jié)果,響應(yīng)由三部分組成,分別是狀態(tài)行、響應(yīng)頭、響應(yīng)體。我們來看下postman的響應(yīng)數(shù)據(jù)展示。

圖片

在postman中的響應(yīng)數(shù)據(jù)展示:

  • 狀態(tài)行:Status:200 OK
  • 響應(yīng)頭:Headers + Cookies,需要注意的是Cookies是包含在響應(yīng)頭中的,但是為了明顯,工具會分開顯示
  • 響應(yīng)體:Body
那么這些數(shù)據(jù)對我們做接口測試有什么作用呢 ?
  • Body和Status是我們做接口測試的重點,一般來說我們都會驗證響應(yīng)體中的數(shù)據(jù)和響應(yīng)狀態(tài)碼
  • Test Results 是我們編寫斷言后,可以查看斷言的執(zhí)行結(jié)果 ,所以這個對我們也很有用 。
  • Time 和Size 是我們做性能測試時,可以根據(jù)這兩個參數(shù)來對所測接口的性能做一個簡單的判斷。
接下來我們再來關(guān)注下Body中的幾個顯示主題,分別是:Pretty,Raw,Preview .

圖片

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

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

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

圖片

3. 接口管理(Collection)

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

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

  • 用例分類管理,方便后期維護(hù)
  • 可以進(jìn)行批量用例回歸測試 。

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

1. 點擊Collection,點擊+New Collection,在彈出的輸入框中輸入Collection名稱(這個就可以理解為所測試的系統(tǒng))

圖片

2. 選中新建的Collection右鍵,點擊Add Folder ,在彈出對話框中輸入文件夾名稱(這個就可以理解為系統(tǒng)中的模塊)

圖片

3. 選中新建的Folder,點擊Add Request ,在彈出的對話框中輸入請求名稱,這個就是我們所測試的接口,也可以理解為測試用例 。

圖片

那么通過以上三個步驟,達(dá)到的效果就是如圖所示:

圖片

總結(jié),通過上面的操作,我們實現(xiàn)了一個最簡單的demo模型。但實際上,有了這個功能才是postman學(xué)習(xí)的開始,因為很多功能都是基礎(chǔ)這個功能的基礎(chǔ)上進(jìn)行的,比如用例的批量執(zhí)行,Mock ,接口文檔等功能 。
4. 批量執(zhí)行接口請求

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

實現(xiàn)步驟:

1. 選中一個Collection,點擊右三角,在彈出的界面點擊RUN

圖片

2. 這是會彈出一個叫Collection Runner的界面,默認(rèn)會把Collection中的所有用例選中 。

圖片

3. 點擊界面下方的RUN Collection,就會對Collection中選中的所有測試用例運(yùn)行 。

圖片

對上面的幾個紅框內(nèi)的功能進(jìn)行簡單說明:

  • 斷言統(tǒng)計:左上角的兩個0是統(tǒng)計當(dāng)前Collection中斷言成功的執(zhí)行數(shù)和失敗的執(zhí)行數(shù),如果沒有編寫斷言默認(rèn)都為0 。
  • Run Summary: 運(yùn)行結(jié)果總覽,點擊它可以看到每個請求中具體的測試斷言詳細(xì)信息 。Export Result:導(dǎo)出運(yùn)行結(jié)果,默認(rèn)導(dǎo)出的結(jié)果json文件 。
  • Retry: 重新運(yùn)行,點擊它會把該Collection重新運(yùn)行一遍
  • New:返回到Runner,可以重新選擇用例的組合 。

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

5.日志調(diào)試

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

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

圖片

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

第二個入口就是左下角第三個圖標(biāo) 。

圖片

打開的日志界面:

圖片

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

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

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

6.斷言

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

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

  • 斷言編寫位置:Tests標(biāo)簽
  • 斷言所用語言:JavaScript
  • 斷言執(zhí)行順序:在響應(yīng)體數(shù)據(jù)返回后執(zhí)行 。
  • 斷言執(zhí)行結(jié)果查看:Test Results
在上面我們介紹到,編寫的斷言代碼是JavaScript,那如果不會寫怎么辦 ?不用擔(dān)心,因為postman已經(jīng)給我們內(nèi)置了一些常用的斷言 。用的時候,只需從右側(cè)點擊其中一個斷言,就會在文本框中自動生成對應(yīng)斷言代碼塊 。

圖片

接下來就讓我們了解一些常用斷言,還是按響應(yīng)的組成來劃分,分別是狀態(tài)行,響應(yīng)頭,響應(yīng)體。

狀態(tài)行中又包括狀態(tài)碼,狀態(tài)消息 。在postman也可以對這兩個進(jìn)行斷言

狀態(tài)行中的斷言

  • 斷言狀態(tài)碼:Status code: code is 200

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

pm.test('Status code name has string', function () {
    pm.response.to.have.status('OK'); //斷言響應(yīng)狀態(tài)消息包含OK
});

響應(yīng)頭中的斷言

  • 斷言響應(yīng)頭中包含:Response headers:Content-Type header check

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

斷言響應(yīng)體(重點)

  • 斷言響應(yīng)體中包含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') 獲取響應(yīng)文本中包含string
  • 斷言響應(yīng)體等于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'); 獲取響應(yīng)體等于response_body_string
  • 斷言響應(yīng)體(json)中某個鍵名對應(yīng)的值: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() 獲取響應(yīng)體,以json顯示,賦值給jsonData .注意:該響應(yīng)體必須返會是的json,否則會報錯
pm.expect(jsonData.value).to.eql(100) 獲取jsonData中鍵名為value的值,然后和100進(jìn)行比較

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

  • 斷言響應(yīng)時間:Response time is less than 200ms

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

案例說明

針對以下接口返回的數(shù)據(jù)進(jìn)行斷言:

{
    'cityid': '101120101',
    'city': '濟(jì)南',
    'update_time': '2020-04-17 10:50',
    'wea': '晴',
    'wea_img': 'qing',
    'tem': '16',
    'tem_day': '20',
    'tem_night': '9',
    'win': '東北風(fēng)',
    'win_speed': '3級',
    'win_meter': '小于12km/h',
    'air': '113'
}
  • 斷言響應(yīng)狀態(tài)碼為200
  • 斷言city等于濟(jì)南
  • 斷言update_time包含2020-04-17

圖片

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

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

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

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

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

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

其中,他們的作用域范圍依次從大到小:全局變量>集合變量>環(huán)境變量 。當(dāng)在幾個不同的范圍內(nèi)都申明了相同的變量時,則會優(yōu)先使用范圍最小的變量使。

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

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

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

圖片

已經(jīng)定義的全局變量和環(huán)境變量,可以進(jìn)行快速查看:

圖片

定義集合變量

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

圖片

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

在URL,Params , Authorization , Headers , Body中定義:
1. 手工方式創(chuàng)建一個空的變量名
2. 在以上的位置把想要的值選中右擊,選中Set:環(huán)境|全局 ,選中一個變量名,點擊后就會保存到這個變量中

圖片

在Tests,Pre-requests Script:
  • 定義全局變量:pm.collectionVariables.set('變量名',變量值)
  • 定義環(huán)境變量:pm.environment.set('變量名',變量值)
  • 定義集合變量:pm.variables.set('變量名',變量值)
獲取變量

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

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

  • 請求參數(shù)指的是:URL,Params , Authorization , Headers , Body

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

  • 獲取環(huán)境變量:pm.environment.get('變量名’)
  • 獲取全局變量:pm.globals.get('變量名')
  • 獲取集合變量:pm.pm.collectionVariables.get.get('變量名')

圖片

變量的使用場景非常廣泛,比如我們后面要提到的接口關(guān)聯(lián),請求前置腳本都會使用到變量 。
8. 請求前置腳本

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

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

主要場景:一般情況下,在發(fā)送請求前需要對接口的數(shù)據(jù)做進(jìn)一步處理,就都可以使用這個功能,比如說,登錄接口的密碼,在發(fā)送前需要做加密處理,那么就可以在前置腳本中做加密處理,再比如說,有的接口的輸入?yún)?shù)有一些隨機(jī)數(shù),每請求一次接口參數(shù)值都會發(fā)送變化,就可以在前置腳本中編寫生成隨機(jī)數(shù)的代碼 。

總體來說,就是在請求接口之前對我們的請求數(shù)據(jù)進(jìn)行進(jìn)一步加工處理的都可以使用前置腳本這個功能。

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

案例:

  • 請求的登錄接口URL,參數(shù)t的值要求的規(guī)則是每次請求都必須是一個隨機(jī)數(shù)。
  • 接口地址:
    http://localhost/index.php?m=Home&c=User&a=do_login&t=0.7102045930338428

圖片

實現(xiàn)步驟:
  1. 在前置腳本中編寫生成隨機(jī)數(shù)
  2. 將這個值保存成環(huán)境變量
  3. 將參數(shù)t的值替換成環(huán)境變量的值 。

圖片

總之,這個前置腳本對我們做接口測試也非常有用,對一些復(fù)雜的場景,都可以使用前置腳本進(jìn)行處理后再請求接口 。
9. 接口關(guān)聯(lián)

在我們測試的接口中,經(jīng)常出現(xiàn)這種情況 。上一個接口的返回數(shù)據(jù)是下一個接口的輸入?yún)?shù) ,那么這倆個接口就產(chǎn)生了關(guān)聯(lián)。這種關(guān)聯(lián)在做接口測試時非常常見,那么在postman中,如何實現(xiàn)這種關(guān)聯(lián)關(guān)系呢 ?

實現(xiàn)思路:

  1. 提取上一個接口的返回數(shù)據(jù)值,
  2. 將這個數(shù)據(jù)值保存到環(huán)境變量或全局變量中
  3. 在下一個接口獲取環(huán)境變量或全局變量
案例:
  • 用戶上傳頭像功能,需要用戶先上傳一張圖片,然后會自動預(yù)覽 。那么在這個過程中,會調(diào)用到倆個接口 ,第一個上傳頭像接口,第二個預(yù)覽圖像接口 。
  • 其中調(diào)用上傳頭像接口成功后會返回如下信息:

{
    'url': '/public/upload/user//head_pic//ba51d1c2f7f7b98dfb5cad90846e2d79.jpg',
    'title': 'banner',
    'original': '',
    'state': 'SUCCESS',
    'path': 'images'
}
而圖像預(yù)覽接口URL為:

http://localhost/public/upload/user//head_pic//ba51d1c2f7f7b98dfb5cad90846e2d79.jpg 。可以看出這個接口的URL后半部分其實是上一個接口返回的url的值 。那么這倆個接口就產(chǎn)生了關(guān)聯(lián)。那么在postman 可以通過以下三步完成這倆個接口的關(guān)聯(lián)實現(xiàn) 。

實現(xiàn)步驟:
  1. 獲取上傳頭像接口返回url的值
  2. 將這個值保存成全局變量(環(huán)境變量也可以)
  3. 在圖像預(yù)覽中使用全局變量

圖片

可以看出,接口的關(guān)聯(lián)的解決方案都是用的是變量中的知識,也就是說只要你明確了要提取的值,后面就是保存該值,然后在其他接口使用該值就可以了。
10.常見返回值獲取

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

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

{
    'code': 0,
    'message': '請求成功!',
    'data': {
        'user_id': '1252163151781167104'
    }
}

//獲取json體數(shù)據(jù)
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體數(shù)據(jù)
var jsonData = pm.response.json()
// 獲取user_id的值,通過下標(biāo)獲取列表中某個元素
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體數(shù)據(jù)
var jsonData = pm.response.json()
// 獲取id的值,通過slice(-1)獲取列表中最后一個元素。
var id = jsonData.data.rows.slice(-1)[0]

來源:

https://www.toutiao.com/i6913538714060800515/

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多