1. 程式人生 > 實用技巧 >postman 基本應用

postman 基本應用

前言

進行post高階應用的一個整理。

正文

批量測試和簡單自動化測試

在點選collects的列表中,會彈出下面這個選項。

上面有3個按鈕,分別是分享、執行、展示在網頁中。

那麼就看下這個執行吧。

開啟之後會看到該介面:

上面有個下拉框,label是Environment,可以選擇我們執行環境,這個下面會介紹,執行環境不同引數也就不同了。

iterations 執行多少次。

Delay 延遲多少毫秒

Data 放入一些資料。這個資料用於測試資料,在測試用例中可以讀取使用。

下面有4個小框框。

1.是否儲存返回結果

2.是否儲存變數值。

runner執行設定前沒有勾選keep variable value,如果不勾選keep variable value,則執行Collection Runner中修改的任何變數都不會影響Postman主應用中對應的環境變數值,在Collection Runner執行完成後恢復environment原始的值

如果執行時勾選keep variable value,則Collection Runner執行完成後Postman主應用中對應的環境變數值變更。

3.是否使用cookie

4.是否儲存cookie在collection執行後

執行完後就可以看到結果,結果如下:

那麼正式開始介紹細節吧。

author 2.0認證

這個操作就有點複雜的了。

這個在後面identity4中,結合例子把Author2.0測試一遍。

下面貼下圖:

環境變數和全域性變數

這個概念很好理解,就是當前環境在載入的時候會先載入環境變數。

最左邊的這個東西:

然後開啟後

幾個引數的意思分別是:

variable:變數,可以理解為key

initial value 初始化值,這個是分享給team中其他人,其他人得到的值。

current value 當前值,就是測試的時候會用到的值。

persist all:將current value 替換掉initial value

reset all 全部重置。
然後可以這樣使用:

後面會介紹更多的呼叫方式。

看下全域性變數吧。

全域性變數就是不管你選那個環境,都會存在的變數。

那麼環境變數和全域性變數衝突,那麼會選擇環境變數。

Pre-request Scripts

這個是提前指令碼,這個就是在你的api呼叫前它可以做的一些事情。

這個可以做一些啥子呢?

比如說,你想呼叫id 1到100的結果,類似爬蟲吧。

那麼你可以這個幹。設定一個環境變數為0,然後你再提前指令碼中每次增加1。

然後在後面介紹的api執行後的結果中輸出即可。
設定了環境id為0;
然後自定義raw為:

{
    "id":{{id}},
    "title":"123"
}

然後pre script為:
console.log(pm.variables.get("id")+1);
pm.variables.set("id",parseInt(pm.variables.get("id"))+1);

然後我在迴圈10次:

結果為:

{
   {
      "id": 1,
      "title": "123"
    },
    {
      "id": 2,
      "title": "123"
    },
    {
      "id": 3,
      "title": "123"
    },
    {
      "id": 4,
      "title": "123"
    },
    {
      "id": 5,
      "title": "123"
    },
    {
      "id": 6,
      "title": "123"
    },
    {
      "id": 7,
      "title": "123"
    },
    {
      "id": 8,
      "title": "123"
    },
    {
      "id": 9,
      "title": "123"
    },
    {
      "id": 10,
      "title": "123"
    }
}

再比如說我們在呼叫api的引數中,需要動態生成時間戳、aes加密等,那麼我們需要做的就更多了。

在其左側有提示欄,告訴我們一些常用的函式:

點選紅框部分,可以去檢視文件。

然後很多指令碼,需求可以百度的到,不需要自己去花太多時間構想。

測試

當我們執行完畢後肯定要進行測試了。

這個時候,在左邊有一個tests模組。

設定斷言可以這樣寫:

//資訊儲存
tests["Status code is 200"]=responseCode.code==200
pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

第一種直接是:tests["Status code is 200"]=responseCode.code==200

第二種複雜的就寫在一個方法裡面。

同樣其左邊為我們提供非常多函式,可以點選一個一個試試看。

生成程式碼

有時候我們可能要在伺服器上做一個快速簡單的測試。

postman其實是可以幫助我們生成程式碼。

點選旁邊的code:

可以幫我們生成多種語言的demo。

其他應用

postman還可以讓我們設定一些其他選項,如是否https證書驗證,請求時間等等等。

其他api測試工具

因為postman團隊作戰的時候是連線的是國外伺服器,所以很多人也用apipost,或者自己搭建。

現在很多api測試工具,度能夠測試資料庫了,如一些檢測機制,可以連線到資料庫進行一些檢測操作(當然是連線測試資料庫了)。