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

說明:由於前面的一文篇幅太大,導致無法放在一文釋出,故這篇文章只是postman工具介紹的第二部分,若需要回看第一部分內容可透過如下連結:

一文帶你全面解析postman工具的使用

。接下來介紹的內容是基於上文的基礎往下進行的 。

三.postman快捷功能

在這一個部分中,我將介紹幾個非常便捷的功能,只要你使用了它,你將能感受到這些功能所帶給我們效率上的提升。 具體的功能如下 :

快速填寫查詢引數

快速填寫請求頭

快速實現新增一個請求

如何繼承集合認證

批次斷言

快速查詢和替換

1. 快速填寫查詢引數

查詢引數在上面已經介紹過,在這裡我們只說明postman填寫查詢引數的地方就是Params。

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

有時候我們要填寫的引數比較多,且每個引數都是按照key-value形式填寫完成,但是這樣填寫起來費時費力。那是否有更加省事的填寫方式? 答案肯定是有的 ,我們可以想象我們的這些請求都可以透過瀏覽器或抓包工具抓取到 。那麼我們就可以直接將瀏覽器或抓包工具的請求引數直接複製進來 ,下面就介紹如何從瀏覽器和抓包工具中複製引數。

從瀏覽器複製查詢引數

首先在瀏覽器透過F12找到你要抓取的請求

在Headers的最下端找到Form Data 。

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

然後開啟postman,在Params 中點選Bulk Edit

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

直接將複製的內容貼上進來即可

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

從抓包工具中複製查詢引數(以fiddler為例)

開啟Fiddler,找到你要抓取的資料包

選擇Raw,直接複製請求URL或者複製查詢引數

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

直接貼上到位址列或者查詢引數中即可 。

2.快速填寫請求頭

在我們做介面測試時,幾乎每個介面都要填寫headers,而且headers裡的引數多是公共引數,也就是說每個介面都需要填寫這些一樣的引數 。常規操作也是在每個headers中按照key-value形式逐個填寫完成,但是這樣填寫起來費時費力。接下來就介紹三種快捷設定headers 。

從其它請求複製貼上

若我們要在一個headers中填寫幾個引數,而這些引數都已在其它請求的headers中設定過,那麼這時就可以直接從其它請求中複製,具體操作步驟:

進入已設定過的請求headers中,滑鼠長按選擇一個或多個請求,當出現灰色的橫條,按Ctrl+C 。

回到當前要設定的請求中,點選Ctrl+v 。這樣就會把上一個請求中的headers複製到當前請求 。

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

透過如上設定,是否可以更加快捷地設定我們請求頭了 。當然,覺得上面這種方法使用起來不爽,接下來我們來看另外一種快捷設定方法 。

預置(儲存)公共請求

這個方法同樣是對一些公共引數有效的,如果每個請求都要設定這些引數,那這個方法很有效。具體步驟:

點選Headers選項框中的Presets(最右側),點選Manage Presets 。

在彈出的對話方塊,點選Add。

在彈出的對話方塊中,把常用的key-value錄入,並給它起個名字。點選add即可。

其他請求使用的時候,直接點選Presets ,選擇剛才設定的名字,就會自動把對應的引數設定上 。

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

以上的這兩種方法設定起來雖然便捷,但是隻是對公共引數有效。針對每個請求的唯一引數是無效的 。下面的這種方法是可以針對任何引數的 。

從瀏覽器中或者抓包工具中複製

在瀏覽器中複製或者從抓包工具複製跟上面的Params中的操作是一樣的,這裡就不再贅述了。

3. 快速實現新增一個請求

正常情況下,我們新增一個請求需要開啟一個視窗,選擇請求方法,地址,以及相對應的引數 。如果請求過多,難免會覺得新增起來麻煩,那麼在postman給我們提供一個匯入功能,它可以匯入相關的請求 。比較常用的是如下這三種,分別是:

從抓包工具中匯入請求 ;

從瀏覽器中匯入請求 ;

直接匯入別人postman中寫好的請求 。

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

從抓包工具匯入請求

在瀏覽器中抓取到想要的包,然後右鍵copy出Curl的資料包

在postman的import中將資料貼上進來,就會自動生成了對應的請求 。

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

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

下面的這個截圖是從介面文件swagger,將這個資料包複製貼上到上面的文字中(Paste Raw Text) 也可以自動生成請求 。

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

總之,這個功能非常實用,尤其是可以把瀏覽器或抓包工具中的資料包匯入進來直接使用,大大地減少了我們的介面填寫時間 。

從瀏覽器中匯入請求

從瀏覽器中導包的原理和抓包工具是一樣的,以下為匯入請求的步驟:

在瀏覽器中抓取到想要的包,然後右鍵copy出Curl的資料包

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

在postman的import中將資料貼上進來,就會自動生成了對應的請求 。

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

直接匯入別人postman中寫好的請求 。

很多情況下,我們是每個人負責一部分的,當你用到其它同事寫好的請求時,你就可以透過如下這個操作來完成,但是這個功能需要團隊成員都登入postman賬號。具體的操作步驟為:

將已經寫好請求所在的集合,點選分享

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

在彈出的介面點選Get public link

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

複製生成的連結

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

4。在新的postman賬號中,選擇Import-Import From Link 進行匯入

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

這樣我們其它團隊成員就可以透過這個功能共享寫好的整個集合了 。

4.繼承集合認證

這又是一個非常實用的功能,對我們做介面測試來說,經常要處理登入認證的情況 。如果不用這個Authorization其實也能解決認證的問題,無非就是把要認證的資料按照要求在指定位置傳入引數即可。比如我們之前測試的系統,登入後返回的token要在每個請求介面的headers中傳入 。這時就需要在每個headers中都填寫一個認證引數傳入 ,但是這樣做的話太過繁瑣,如果使用認證(Authorization)功能的話,就會大大簡化了我們的認證過程。

我們先來看下這個功能的具體位置及主要作用 。

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

Inherit auto from parent:從父級繼承身份驗證,是每個請求的預設選擇 。這是一個很有用的功能,當我們對一個集合(collection)進行測試的時候,集合中的每個請求都需要獲取token,那麼如果我們在集合中把token處理好的話,那麼該集合下的所有請求都會自動獲取到這個token,也就省略了我們對每個token進行處理了。

實現步驟:

選中一個集合進行編輯,切換到Pre-Request Script。在這裡請求登入介面 ,將返回的token值拿到,然後儲存成全域性變數 。

切換到Authorization選項卡,在這裡直接獲取token 。這裡的獲取token需要根據具體的專案 。比如我們所測試的專案正好是Bearer token這種形式 。直接在列表中使用這種方式輸入{{token}}即可。

向集合新增請求,無需進行token處理,所有介面都能請求成功 。

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

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

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

No Auth: 無需身份認證的可以選擇這個 。

API Key: 也有很多系統是透過這種認證方式,比如在請求頭新增 model: data xxx-xxx-xxx-xxxx

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

Bearer Token:很多系統都是以這種認證方式,就是在請求頭中新增Authorization:Bearer Token 。那麼使用這種認證就完全等同於在Headers中新增Authorization引數 。

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

透過在集合中完成登入認證

除了以上訪問完成登入認證以外,我們還可以在集合中完成登入認證 ,但是這個功能需要先熟悉如何透過實現傳送請求,接收響應資料等 。

程式碼中傳送請求是透過pm。sendRequest來完成的 。在Pre-requests Script 和Tests中都可使用 。支援傳送各種型別的請求。具體如下:

程式碼中傳送查詢引數的請求資料

程式碼中傳送JSON引數的請求資料

程式碼中傳送表單引數的請求資料

1)

傳送查詢引數請求資料

//傳送一個get請求,請求成功後設置一個環境變數pm。sendRequest(‘http://cx。shouji。360。cn/phonearea。php?number=13012345678’, function (err, res) {    if (err) {        console。log(err);   } else {        pm。environment。set(“xab”, “123”);   }});

2)

傳送JSON請求資料

const PostJsonRequest = {  url: ‘http://test。itheima。net/api/sys/login’,  method: ‘POST’,  header: ‘Content-Type:application/json’,  body: {    mode: ‘raw’,    raw: JSON。stringify({ “mobile”: ‘13110001002’,“password”:“123456” }) }};pm。sendRequest(PostJsonRequest, function (err, res) {  console。log(err ? err : res。json());});

3)

傳送表單資料

const PostFormRequest = {  url: ‘http://localhost/index。php?m=Home&c=User&a=do_login&t=0。8975232623499945’,  method: ‘POST’,  header: ‘Content-Type:application/x-www-form-urlencoded’,  body: {    mode: ‘x-www-form-urlencoded’,    raw: ‘username=13088888888&password=123456&verify_code=8888’ }};pm。sendRequest(PostJsonRequest, function (err, res) {  console。log(err ? err : res。json());});

以上程式碼都是可以放在Tests或者放在Pre-requests Script中使用的,那麼透過它我們也可以解決登入認證的問題,以下透過一個案例來說明如何使用。

案例說明:

專案的token透過sendRequest來實現 。

實現步驟:

點選集合右擊,選擇edit,切換到Pre-request Scripts中 。

在文字域編寫傳送登入介面的前置指令碼,並將獲取到的token儲存到集合變數 。

然後在Authorization中設定獲取token,使其token在集合中全域性有效 。

執行該集合(集合下就不需要編寫登入請求了),批次執行成功 。

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

透過這種方式來設定,就不需要你在集合下面單獨新建一個登入的檔案夾了,也不需要你在每個請求中加入token引數了,非常的方便 。

5. 批次斷言

前面我們介紹過斷言,就是對每個介面編寫一個或多個驗證點 ,在編寫斷言的過程中還有這麼一種場景,就是多個介面中有部分介面返回的引數名都是一樣的 ,包括返回的結果也是一樣的 。那麼針對這些返回相同的引數值來說,其實就可以使用一個共同的斷言 。透過編寫一個斷言完成對不同介面中相同返回引數的批次斷言 。比如說每個介面都會有code,或者HTTP的響應狀態碼都可以使用這個通用斷言 。

編寫通用斷言的位置是在集合或集合的資料夾中 。具體位置如下圖:

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

案例說明:

對專案中每個介面返回的響應狀態碼進行斷言,同時對使用者管理模組下每個介面的code進行斷言。

實現步驟:

選擇其中一個集合,進行編輯,選擇Tests標籤,在文字域內輸入斷言響應狀態碼的程式碼塊

選擇使用者管理資料夾,進行編輯,選擇Tests標籤,

批次執行該集合,就會檢視到每個用例中都會

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

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

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

可以看出,透過這個功能可以幫我們完成最少的程式碼,完成更多的測試。但是它的使用條件就是返回的引數名,引數值都是一樣的才能使用這個批次斷言功能 。

6. 快速查詢與替換

有時候我們常會遇到這樣一種問題,系統中有太多的用例,環境變數和系統變數的值也太多,查詢其中的某個值太不方便;或者有的值想要修改,但苦於修改的地方太多,修改起來太費勁。那麼,針對這樣的困擾,是否有辦法解決呢 ? 答案是有的 ,那就是快速查詢與批次替換。

接下來我們先來了解這個功能的入口和簡單介紹。

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

功能介紹:

FIND:搜尋輸入框,在搜尋框中輸入你想要搜尋的值,postman自動會在已開啟的請求,集合,環境變數,全域性變數中去搜索,如果搜尋到,就會在右側展示出搜素的結果 。其下方有兩個複選框,分別是Regex(正則匹配)和Ignore Case(忽略大小寫)。

WHERE:帶條件查詢,預設會選擇everything(查詢所有),如果想要選擇某一個tab搜尋,從下面選擇即可,可以支援從集合、環境變數、全域性變數以及以開啟的請求中搜索 。

REPLACE WITH: 替換文字框,在此文字框中輸入替換的值,點選Replace in 。。。 按鈕,會將搜尋出的值全部替換 。

右側的搜尋結果:搜尋出對應的結果後,右側每個tab中都會顯示具體的數字,代表當前tab中匹配值的數量。你可以選擇一個值點選Open,就會直接進入到對應的功能選項卡中 。

案例說明:

案例1:按照正則表示式搜尋11位數字。

操作步驟:在搜尋框中輸入\d{11},勾選Regex,點選Find,右側就會展示出含有11位數字的所有資訊。

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

案例2:從集合中搜索

在搜尋框中輸入搜尋關鍵字

在WHERE中選擇Choose entities to find in,選中Collections 。

找到你想要的結果,點選Open in builder。就可以直接開啟對應請求tab。

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

案例3:替換某個字串

在查詢搜尋框中輸入關鍵字,

在REPLACE WITH框中輸入想要替換的值,可以選擇select All ,點選後面的按鈕。

再次搜尋替換後的結果,發現所有值都已被替換 。

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

總之,透過這個功能,我們可以快速找到我們想要的集合,環境變數,集合變數,請求或者程式碼塊。