日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

Postman?使用指南及小技巧_相關(guān)技巧

更新時(shí)間: 2021-12-02 編程語言

一、什么是 Postman(前世今生)

Postman 誕生于 2013 年,一開始只是 Abhinav Asthana 著手于解決 API 測試的工具,隨著這個(gè)工具的使用者和需求迅速激增,Abhinav Asthana 找了他的兩個(gè)前同事 Ankit SobtiAbhijit Kane 一起創(chuàng)建了公司 Postman Inc。

如今 Postman 已經(jīng)成為一個(gè) API 開發(fā)的協(xié)作平臺(tái)。Postman 簡化了構(gòu)建 API 的每個(gè)步驟,并簡化了協(xié)作,這樣就可以更快地創(chuàng)建 API。

二、使用變量

Postman 允許用戶在發(fā)送和接收時(shí)使用變量,以提高工作效率和可讀性(不過只能保存字符串類型的值,所以復(fù)雜數(shù)據(jù)類型需要借助于 JSON.stringify()JSON.parse() 來管理)。

例如在不同運(yùn)行環(huán)境中設(shè)置域名地址為變量:

Postman 支持在不同的作用域和上下文中使用變量,遵循就近原則,即如果在 GlobalEnvironment 中都有變量 name,則會(huì)取 Environment 中的 name

2.1 變量作用域適用于 Postman 中不同的場景

Global:全局變量可以在整個(gè)工作空間(Workspace)中使用,因?yàn)闊o法控制使用環(huán)境和容易造成混淆,應(yīng)當(dāng)是不可變的全局常量,謹(jǐn)慎使用。

pm.globals.set("variable_key", "variable_value");
pm.globals.get("variable_key");

Collection:集合變量在單個(gè)集合(Collection)中可用,往往具備通用的業(yè)務(wù)綁定屬性,例如:商品屬性、會(huì)員等級、通用秘鑰等。

pm.collectionVariables.set("variable_key", "variable_value");
pm.collectionVariables.get("variable_key");

Environment:環(huán)境變量允許請求適應(yīng)不同的環(huán)境,例如:本地、測試、預(yù)演和生產(chǎn)環(huán)境,常常用來區(qū)別請求地址。

pm.environment.set("variable_key", "variable_value");
pm.environment.get("variable_key");

Data: 數(shù)據(jù)變量來自外部 CSV 和 JSON 文件,當(dāng)通過 Newman 或 Runner 來運(yùn)行時(shí)才用到。

Local:局部變量只在單個(gè)請求生命周期中可用,運(yùn)行完成后自動(dòng)銷毀。

pm.variables.set("variable_key", "variable_value");
pm.variables.get("variable_key");

2.2 編輯全局和環(huán)境變量

2.3 編輯集合變量

2.4 使用系統(tǒng)內(nèi)置動(dòng)態(tài)變量

Postman 內(nèi)置了很多常見場景的動(dòng)態(tài)變量

備注:Postman 支持在 Pre-request Script 和 Tests 中打印調(diào)試信息,和瀏覽器控制臺(tái)一致,可以使用命令:console.log()console.info()console.warn()console.error()

console.log('當(dāng)前時(shí)間戳:', pm.variables.replaceIn('{{$timestamp}}'));
console.log('隨機(jī)顏色:', pm.variables.replaceIn('{{$randomColor}}'));
console.log('隨機(jī) IP:', pm.variables.replaceIn('{{$randomIP}}'));
console.log('隨機(jī)名字:', pm.variables.replaceIn('{{$randomFullName}}'));
console.log('隨機(jī)職業(yè):', pm.variables.replaceIn('{{$randomJobType}}'));
console.log('隨機(jī)城市:', pm.variables.replaceIn('{{$randomCity}}'));
console.log('隨機(jī)圖片:', pm.variables.replaceIn('{{$randomImageUrl}}'));

# 輸出
當(dāng)前時(shí)間戳:1609060090
隨機(jī)顏色:azure
隨機(jī) IP:163.140.207.64
隨機(jī)名字:Chester Funk
隨機(jī)職業(yè):Coordinator
隨機(jī)城市:Port Devinborough
隨機(jī)圖片:http://placeimg.com/640/480

三、Postman 請求生命周期

在 Postman 中,一個(gè)完整的 Postman 請求生命周期,除了常規(guī)的請求(request)和響應(yīng)(response),還包括前置請求腳本(pre-request script)和后置測試腳本(tests script)。Postman 包含一個(gè)基于 Node.js 的強(qiáng)大運(yùn)行態(tài)(runtime),允許用戶在 pre-request script 和 tests 事件中編寫 JavaScript 代碼。

3.1 在前置請求(pre-request script)中使用腳本

前置請求腳本(pre-request script)顧名思義就是在請求發(fā)送之前執(zhí)行的腳本。

3.2 發(fā)送請求(request)

小技巧一:在鏈接中使用 :id 自定義路徑參數(shù)

小技巧二:Cookie 可編輯

3.3 接收一個(gè)響應(yīng)(response)

小技巧:保存響應(yīng)結(jié)果

保存后的結(jié)果可以作為案例或記錄以便開發(fā)使用。

3.4 在測試(tests)中使用腳本

Postman 支持在請求響應(yīng)后通過測試腳本來驗(yàn)證請求是否符合預(yù)期。

示例一:驗(yàn)證響應(yīng)狀態(tài)碼是否是 200

pm.test("Status test", function () {
    pm.response.to.have.status(200);
});

示例二:驗(yàn)證返回的業(yè)務(wù)數(shù)據(jù)(JSON)是否符合預(yù)期

pm.test("請求成功!", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.message).to.eql('success');
});

四、使用 Postman 抓包

在 Postman 應(yīng)用程序中有一個(gè)內(nèi)置代理來捕獲 HTTP 請求。

  • Postman 應(yīng)用程序監(jiān)聽客戶端應(yīng)用程序或設(shè)備發(fā)出的任何調(diào)用。
  • Postman 代理捕獲請求并將請求轉(zhuǎn)發(fā)給服務(wù)器。
  • 服務(wù)器通過 Postman 代理將響應(yīng)返回給客戶端。

4.1 開啟抓包

本機(jī) IP 地址:

手機(jī)設(shè)置:

4.2 抓包效果

五、使用代理

代理服務(wù)器是一個(gè)應(yīng)用程序或系統(tǒng),作為計(jì)算機(jī)和互聯(lián)網(wǎng)之間的中介,或者更具體地說就是代表著客戶端和服務(wù)器,向網(wǎng)站、服務(wù)器和其他互聯(lián)網(wǎng)服務(wù)發(fā)出請求。

除了傳遞信息,代理可以做更多的事情:

記錄你的機(jī)器和互聯(lián)網(wǎng)之間的所有流量。顯示所有請求、響應(yīng)、Cookie 和標(biāo)題的內(nèi)容。路由流量到指定的因特網(wǎng)位置。調(diào)試接口。防止直接攻擊,保證安全性。DevOps 負(fù)載平衡。

默認(rèn)情況下,Postman 將使用自帶的系統(tǒng)代理,如果自定義了代理,優(yōu)先級將高于自帶的系統(tǒng)代理。

六、使用 Collection Runner

集合運(yùn)行器(Collection Runner)允許以指定順序運(yùn)行集合里面的請求。Collection Runner 將記錄請求測試結(jié)果,并且腳本可以在請求之間傳遞數(shù)據(jù)。

七、命令行腳手架 Newman

Postman 提供腳手架工具 Newman 來以命令行的方式來運(yùn)行集合(Collection)請求,其提供和 Postman 桌面端一致的功能,可以集成在工作流的 CI/CD 中。

# 安裝
npm install -g newman

# 運(yùn)行文件
newman run mycollection.json

# 運(yùn)行 URL
newman run https://www.postman.com/collections/cb208e7e64056f5294e5 -e dev_environment.json

八、付費(fèi)功能

另外 Postman 提供了很多團(tuán)隊(duì)協(xié)作需要的付費(fèi)功能,例如:文檔、監(jiān)控、健康檢查等。

版權(quán)聲明

本博客所有的原創(chuàng)文章,作者皆保留版權(quán)。轉(zhuǎn)載必須包含本聲明,保持本文完整,并以超鏈接形式注明作者后除和本文原始地址:https://blog.mazey.net/1878.html

GitHub:mazeyqian
Blog:blog.mazey.net

原文鏈接:https://www.cnblogs.com/mazey/p/14660638.html

欄目分類
最近更新