? ?5.1.1 什么是Postman
? ??????????Postman 提供功能強大的 Web API 和 HTTP 請求的調試,它能夠發送任何類型的HTTP 請求
(GET, POST, PUT, DELETE…),并且能附帶任何數量的參數和 Headers。而且它還提供測試數據和環境
配置數據的導入導出,付費的 Post Cloud 用戶還能夠創建自己的 Team Library 用來團隊協作式的測
試,并能夠 將自己的測試收藏夾和用例數據分享給團隊。
? ??????postman適用于不同的操作系統,還支持postman瀏覽器擴展程序、postman chrome應用程序等。但
是 瀏覽器插件目前Google已經停止更新了。
5.2 Postman下載和安裝
5.2.1 Postman的下載
????官網下載: 地址:https://www.getpostman.com/downloads/,選擇頁面中的“Download”,根據自己電腦配置, 選擇32位下載還是64位下載
5.2.2 Postman的安裝過程
? ??????1、雙擊下載好的安裝包
????????2、因為Postman是免安裝的,雙擊安裝包,自動安裝到本地電腦中
????????3、查看Postman界面,出現如下圖所示,說明安裝成功
????????4、登錄,點擊進入workspace頁面
5.3 Postman主界面的介紹
5.3.1 工具欄
5.4 Postman基本操作
5.4.1 新建測試集、文件夾、請求用例
????????點擊collections,點擊+,點擊create new collection
????????點擊collection右邊的三個點,點擊add request是添加請求,add folder是添加文件夾
5.4.2 get請求
新建一個get請求,如圖所示
? ??1.設置請求方式為get
????2.粘貼網址
? ?3.添加請求參數,參數添加后會在url上顯示出來,如圖中所示的?id=1005008&page=1&size=100
????4.如果有請求頭,在請求頭的部分添加,也是鍵值對
????5.點擊send之后,下面顯示響應數據,可以是html,json,xml...
5.4.3 post請求
????1. 提交form表單,如圖所示
? ??????https://www.wanandroid.com/user/login
????????方法:POST
????參數:
????username,password
????post請求的參數信息在Body中添加
????form表單提交需要選中x-www-form-urlencoded
????請求頭添加和get請求相同,在Headers中添加
need-to-insert-img
need-to-insert-img
2. json提交
下圖中,當我們選擇JSON(application/json) 是會自動幫我們設置 headers 為 application/json
在這里就不截圖 舉例了
need-to-insert-img
3. xml提交
need-to-insert-img
4. 二進制文件提交
need-to-insert-img
????其它請求方式如PUT,DELETE 大致流程和GET,POST 差不多,這里就不一一舉例說明了
5.4.4 授權Authorization
? ??Authorization,授權就是驗證我們是否有權限從服務器訪問所需的數據。發送請求時,通常必須包含參數以確保請求有權訪問并返回所需的數據,比如需要登錄之后才能訪問的數據。Postman提供的授權類型可以讓我們輕松處理Postman進行接口測試中的身份驗證協議。
在postman中Authorization分為以下幾種類型:
????????注意:應當注意:NTLM和BearerToken僅在Postman本地應用程序中可用。所有其他授權類型都可以在Postman本地應用程序和Chrome應用程序中使用。
1. Inherit auth from parent
? ??向集合或文件夾添加授權。
????假設您在集合中添加了一個文件夾。在授權選項卡下,默認的授權類型將被設置為“從父類繼承auth”。
????“從父”設置的“繼承auth”指示默認情況下,該文件夾中的每個請求都使用父類的授權類型。在本例中,該集合使用“No Auth”,因此該文件夾使用“No Auth”,這意味著該文件夾中的所有請求將使用“No Auth”
????如果您希望將父集合授權類型保留為“No Auth”,但要更新這個特定的文件夾的授權助手,該怎么辦呢?您可以編輯文件夾的詳細信息,從類型下拉菜單中選擇“基本的Auth”,并輸入您的憑證。因此,這個文件夾中的每個請求都依賴于“基本的Auth”,而父集合中的其余請求仍然不使用任何授權
2. No Auth
? ??默認情況下,“No Auth”出現在下拉菜單列表中。當您不需要授權參數發送請求時,使用“No Auth”。
3. Bearer Token
Bearer Token是安全令牌。任何帶有Bearer Token的用戶都可以使用它來訪問數據資源,而無需使用加密密鑰。
使用Bearer Token:
????????第一步:從下拉菜單中選擇“Bearer Token”。
????????第二步:要設置請求的授權參數,請輸入令牌的值。
????????第三步:點擊發送按鈕
4. Basic auth
? ??Basic Auth是一種授權類型,需要驗證用戶名和密碼才能訪問數據資源。
使用基本身份驗證:
????????第一步:從下拉菜單中選擇“Basic Auth”。
????????第二步:要設置請求的授權參數,請輸入您的用戶名和密碼。
????????第三步:點擊發送按鈕。
5. Digest Auth
????????在“Digest Auth”流程中,客戶端向服務器發送請求,服務器返回客戶端的nonce和realm值;客戶端對用戶名、密碼、nonce值、HTTP請求方法、被請求資源URI等組合后進行MD5運算,把計算得到的摘要信息發送給服務端。服務器然后發回客戶端請求的數據。
????????通過哈希算法對通信雙方身份的認證十分常見,它的好處就是不必把具備密碼的信息對外傳輸,只需將這些密碼信息加入一個對方給定的隨機值計算哈希值,最后將哈希值傳給對方,對方就可以認證你的身份。
????????Digest思想同樣采如此,用了一種nonce隨機數字符串,雙方約好對哪些信息進行哈希運算即可完成雙方身份的驗證。Digest模式避免了密碼在網絡上明文傳輸,提高了安全性,但它仍然存在缺點,例如認證報文被攻擊者攔截到攻擊者可以獲取到資源。
????????默認情況下,Postman從響應中提取值對應的值。如果不想提取這些值,有以下兩種選擇:
????????在所選字段的高級部分中輸入您自己的值勾選“Yes,disable retrying the request”復選框。
6. OAuth 1.0
? ??????OAuth 1.0是一種可以讓我們在不公開密碼的情況下授權使用其他應用程序的授權模式。
????在Postman中按照以下步驟使用OAuth 1.0授權:
????在Authorization下來授權標簽中選擇“OAuth 1.0”授權模式;在“Add authorization datato” 下拉選擇框中,選擇對應的請求模式。
????當選擇“Request Body/Request URL”時,Postman將檢查請求方法是POST還是PUT,以及請求主體類型是否是x-www-form-urlencoded;如果是這樣,Postman將增加授權參數到請求主體。對于所有其他情況,它會向URL添加授權參數。
7. OAuth 2.0
????OAuth 2.0作為OAuth 1.0的升級版本。在Postman中按照以下步驟進行使用:
在Authorization下來授權標簽中選擇“OAuth 2.0”授權模式在“Add authorization data to”下拉選擇框中,選擇對應的請求模式;
設置請求的授權參數,有以下三個選擇:
????????點擊“Get New Access Token”按鈕,在彈出的對話框中輸入對應的參數;單擊“Request Token”按鈕獲取對應的Token。接下來有了對應的Token后,就可以點擊“Send”按鈕發送請求了;
????????在“Access Token”輸入框中輸入一個Token,或者Token對應的環境變量,然后就可以點擊“Send”按鈕發送請求了;
????????在“Available Tokens”下拉框中選擇已經存在的Token,然后發送請求。
案例:
? ??????/**
? ? ? ? ? * 登錄
????????* https://www.liulongbin.top:8888/api/private/v1/login
????????* post
????????* 參數:
????????* username(admin),password(123456)
????????*
????????* 上傳圖片
????* https://www.liulongbin.top:8888/api/private/v1/upload
????????* post
????* 請求頭 :authorization : Bearer
????eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOjU wMCwicmlkIjowLCJpYXQiOjE2MTU4NjI
????zODksImV4cCI6MTYxNTk0ODc4OX0.Rr-????M1MTfVWER3i8KiIIlfP0mW6oHYu05Sz6WzCeaKSA
????* 參數: file -- 文件
????*/
可以給接口集
9.5 Pre-request Script--預處理腳本
????Pre-request Script,翻譯中文為預處理腳本,是請求發送之前需要執行的代碼片段,在我們點擊send發起請求之前,改區域的代碼先執行。
????使用場景:例如請求中包含一個隨機數或者時間戳(時間的毫秒值),或者參數需要加密。
????1. 給一個接口添加預處理腳本:新建一個網絡請求,點擊Pre-request Script,寫入js腳本獲取時間的毫秒值(時間戳)
? ? ?2.給接口集添加預處理腳本:如圖所示,完成后以后接口集下面所有接口在請求的時候都會先執行預請求腳本
????????????在輸入框右側有一些簡單的js腳本生成按鈕,可以通過按鈕生成
5.6 Tests內置腳本
????????既然有在請求發起之前執行的腳本,那么是否有在請求完成之后執行的腳本呢? 有Tests里面輸入的腳本就是在網絡請求之后執行的,Postman的強大之處在于其允許在對某一個request訪問的之前和之后分別運行自定義的一段Javascript腳本,這樣直接就完成了一個chain request的效果,可以將數條request連結成一個流程完成一體化測試。
如下在Pre-request Script和Tests中分別輸入了js代碼,執行如下如所示:
5.7 命令行運行接口結合
? ??????9.7.1 命令行運行
? ??????????執行命令行前提條件是需要newman,newman是需要nodejs來安裝的,所以得先下載安裝node.node下載地址:https://nodejs.org/en/download/
? ??????????cmd模式下輸入node -v,回車,顯示node版本號,即為安裝成功
????????npm(node package manager):nodejs的包管理器,用于node插件管理(包括安裝、卸載、管理依賴等)
????????cnpm:淘寶團隊的cnpm是npm在國內的鏡像,可以用此代替官方版本(只讀),同步頻率目前為 10分鐘 一次以保證盡量與官方服務同步。
????????安裝完后查看版本cnpm -v
????????安裝newman:cnpm install newman --global
????????檢查是否安裝成功:newman -v
????????安裝newman-reporter-html
????????執行cnpm install -g newman-reporter-html
????????在測試文件夾 pmtest 里面可以看到生成的一個 newman 文件夾,打開就可以看到生成的測試報告。
5.8 環境變量的使用
? ? 5.8.1 Postman 環境變量的應用
? ??????點擊眼睛圖標可以查看所有的環境變量和全局變量。點擊眼睛圖標右邊的設置圖標可以設置環境變量和全局變量。
????????環境變量可以分組設置,并且在使用的時候選擇其中一組環境變量。 使用環境變量 {{baseUrl}} 兩邊各量個花括號括起來 這個環境變量可以在url 中使用,也可以在header 中能使用,還能在請求體中使用
? ??????選中No Environment(選中已有環境就變成編輯了)--> 點擊眼睛-->點擊Add
????????案例:新建兩個環境,都創建相同的環境變量baseUrl值使用不同的網址,新建請求,使用{{baseUrl}},切換環境后,同一個請求訪問到的頁面不一樣
5.9 全局變量的使用
? ? 5.9.1 Postman全局變量的應用
????????postman 的環境變量可以分組,但是全局變量不能分組,只能有一組全局變量,在設置和使用都類似于環境 變量。在下圖位置設置全局變量。
????????點擊右上角眼睛 --> 點擊Globals右邊的Edit,添加全局變量,點擊save保存,和環境變量一樣,通過{{timestamp}}引用
案例:添加時間戳
作者:淅平
鏈接:http://www.lxweimin.com/p/d700bbbe45e2
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權并注明出處。