主頁 >  其他 > 【開發工具】-- 一文全面決議 Postman 工具

【開發工具】-- 一文全面決議 Postman 工具

2021-04-01 18:33:08 其他

博文說明

這篇博文是我最近在微信公眾號“碼匠筆記”中看到的文章,原創作者為:雨滴測驗,非本人所寫,Postman也是我們Java做web開發、介面測驗中經常使用到的一款前后端介面測驗插件,因文章放在微信公眾號(原博文在今日頭條),個人感覺寫的非常好也很全面,這里作為引薦,本著開源傳播學習的精神,同時也向原文作者致敬!

在開篇做統一宣告:本文以下所有內容均轉載至微信公眾號“碼匠筆記”,文末會給出所有原文鏈接,本文僅做學習及日常分享好文匯總,

 

1.前言

postman是一款支持http協議的介面除錯與測驗工具,其主要特點就是功能強大,使用簡單且易用性好 ,

無論是開發人員進行介面除錯,還是測驗人員做介面測驗,postman都是我們的首選工具之一 ,那么接下來就介紹下postman到底有哪些功能,它們分別都能干些什么 ,下面先通過一張圖來直觀的來看下postman中所包含的功能 ,

 

當然,以上功能也只是展示了postman的一部分功能,為了能更加全面的體現這款工具的特點,我將從以下三個維度來加以說明,它們分別是:

 

基礎功能

  • 常見型別的介面請求
  • 介面回應資料的決議
  • 介面管理(Collection)
  • 批量執行介面請求
  • 日志除錯
  • 斷言
  • 變數
  • 請求前置腳本
  • 介面關聯
  • 常見的回傳值獲取

便捷功能快

  • 速填寫查詢引數
  • 快速填寫請求頭資訊
  • 快速實作添加一個請求
  • 如何繼承集合認證
  • 批量斷言
  • 快速查詢和替換

高級功能

  • 讀取檔案進行引數化
  • 生成測驗報告
  • 代碼中發送請求
  • 撰寫介面檔案
  • mock服務
  • 監控
  • 使用作業空間
  • 代碼同步與分支管理
  • 連接資料庫
  • apis

 

2.postman安裝說明

postman 在 2018 年之后就不再支持瀏覽器版本,所以,想要使用它就必須先下載客戶端再安裝使用,下面就以 Windows 系統為例進行安裝 ,

2.1.下載與安裝

postman安裝步驟:

1. 訪問postman官方網站,下載最新版本訪問地址:https://www.getpostman.com/

2. 進入到下載頁面,根據自己電腦下載對應的版本

 

3. 雙擊下載的安裝包,進入到安裝界面,直到用戶登錄和注冊界面,

若個人使用,選擇跳過即可,這時會進入到postman主界面,至此postman安裝成功(下圖),

若團隊使用,可以進行注冊,注冊后使用賬號可以加入團隊作業區

 

2.2.界面導航說明

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

 

2.3.發送第一個請求

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

1. 打開postman,點擊+加號打開一個新的請求頁,

2. 在請求的URL中輸入請求地址:http://www.weather.com.cn/data/sk/101010100.html

3. 點擊Send按鈕,這時就可以在下部的窗格中看到來自服務器的json回應資料,

 

3.postman基礎功能

3.1.常見型別的介面請求

常見的介面有如下四種型別,分別是:

含有查詢引數的介面表單型別的介面json型別的介面以及含有上傳檔案的介面,以下就對這四種型別介面及如何在postman中請求進行說明 ,

 

3.2.查詢引數的介面請求

什么是查詢引數?

所謂的查詢引數,其實就是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按鈕就可以發送請求了 ,

 

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

 

3.3.表單型別的介面請求

什么是表單 ?

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

不同的介面,請求體的資料型別是不一樣的,比較常見的一種就是表單型別,那么什么是表單型別呢 ?簡單理解就是在請求頭中查看Content-Type,它的值如果是:application/x-www-form-urlencoded .那么就說明客戶端提交的資料是以表單形式提交的 ,見下圖:

 

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. 查看回應資料,

 

 3.4.上傳檔案的表單請求

在做介面測驗時,我們經常會遇到需要上傳檔案的介面,比如微信的更新頭像,這就需要用到: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. 查看回應資料,

 

3.5.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. 查看回應資料,

 

3.6.介面回應資料決議

回應資料是發送請求后經過服務器處理后回傳的結果,回應由三部分組成,分別是狀態行、回應頭、回應體,我們來看下postman的回應資料展示,

 

在postman中的回應資料展示:

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

那么這些資料對我們做介面測驗有什么作用呢 ?

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

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

 

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

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

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

 

3.7.介面管理(Collection)

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

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

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

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

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

 

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

 

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

 

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

 

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

 

3.8.批量執行介面請求

當我們在一個Collection中撰寫了很多的介面測驗用例,想一起執行這批用例,在postman中是如何操作呢 ?

實作步驟:

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

 

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

 

3. 點擊界面下方的RUN Collection,就會對Collection中選中的所有測驗用例運行 ,

 

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

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

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

 

3.9.日志除錯

在做介面測驗時,經常會因為代碼寫的有問題導致報錯,這時通過查看日志就顯得非常重要了,postman也提供了這樣的功能,它允許我們在腳本中撰寫列印陳述句,查看列印的結果 ; 同時也可以查看每個請求的日志資訊 ,

在postman中撰寫日志列印陳述句使用的是JavaScript,撰寫的位置可以是Pre-request Script 或Tests標簽中,撰寫列印陳述句如:console.log("我是一條日志")

 

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

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

 

打開的日志界面:

 

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

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

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

 

3.10.斷言

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

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

  • 斷言撰寫位置:Tests標簽
  • 斷言所用語言:JavaScript
  • 斷言執行順序:在回應體資料回傳后執行 ,
  • 斷言執行結果查看:Test Results

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

 

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

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

狀態行中的斷言:

  • 斷言狀態碼: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
});

 

斷言回應體(重點)

  • 斷言回應體中包含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 =https://www.cnblogs.com/yif0118/p/ pm.response.json();
    pm.expect(jsonData.value).to.eql(100);
});
//注解
var jsonData =https://www.cnblogs.com/yif0118/p/ pm.response.json() 獲取回應體,以json顯示,賦值給jsonData .注意:該回應體必須返會是的json,否則會報錯
pm.expect(jsonData.value).to.eql(100) 獲取jsonData中鍵名為value的值,然后和100進行比較

 

回應時間(一般用于性能測驗)

  • 斷言回應時間: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

 

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

 

3.11.變數(全域/集合/環境)

變數可以使我們在請求或腳本中存盤和重復使用其值,通過將值保存在變數中,可以在集合,環境或請求中參考,

對我們做介面測驗來說,又是一個非常重要的功能 ,

在postman常用的三種變數分別是全域變數環境變數集合變數

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

 

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

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

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

定義變數

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

 

已經定義的全域變數和環境變數,可以進行快速查看:

 

定義集合變數

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

 

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

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

 

在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('變數名')

 

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

 

3.12.請求前置腳本

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

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

主要場景:一般情況下,在發送請求前需要對介面的資料做進一步處理,就都可以使用這個功能,比如說,登錄介面的密碼,在發送前需要做加密處理,那么就可以在前置腳本中做加密處理,再比如說,有的介面的輸入引數有一些亂數,每請求一次介面引數值都會發送變化,就可以在前置腳本中撰寫生成亂數的代碼 ,

總體來說,就是在請求介面之前對我們的請求資料進行進一步加工處理的都可以使用前置腳本這個功能,

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

案例:

  • 請求的登錄介面URL,引數t的值要求的規則是每次請求都必須是一個亂數,
  • 介面地址:http://localhost/index.php?m=Home&c=User&a=do_login&t=0.7102045930338428

 

實作步驟:

  1. 在前置腳本中撰寫生成亂數
  2. 將這個值保存成環境變數
  3. 將引數t的值替換成環境變數的值 ,

 

總之,這個前置腳本對我們做介面測驗也非常有用,對一些復雜的場景,都可以使用前置腳本進行處理后再請求介面 ,

 

3.13.介面關聯

在我們測驗的介面中,經常出現這種情況 ,上一個介面的回傳資料是下一個介面的輸入引數 ,那么這倆個介面就產生了關聯,這種關聯在做介面測驗時非常常見,那么在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. 在影像預覽中使用全域變數

 

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

 

3.14.常見回傳值獲取

在做介面測驗時,請求介面回傳的資料都是很復雜的json資料,有著多層嵌套,這樣的資料層級在postman怎么獲取呢 ?

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

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

 

//獲取json體資料
var jsonData =https://www.cnblogs.com/yif0118/p/ 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 =https://www.cnblogs.com/yif0118/p/ 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 =https://www.cnblogs.com/yif0118/p/ pm.response.json()
// 獲取id的值,通過slice(-1)獲取串列中最后一個元素,
var id = jsonData.data.rows.slice(-1)[0]

 

閱讀博客原文請移步至:

https://mp.weixin.qq.com/s/twufEyn7P-GpdKIVCXXxPw    《碼匠筆記——一文全面決議 Postman 工具》

https://www.toutiao.com/i6913538714060800515/  《一文帶你全面決議postman工具的使用(基礎篇)》

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/270690.html

標籤:其他

上一篇:airtest 連接ios 系統實操

下一篇:【小白學演算法】7.樹與二叉樹

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more