Postman:在不同接口之間傳遞數據——Pre-request Script(四)

postman提供了Pre-request Script和Tests,在這兩個標籤中可以編寫js代碼輔助測試。先前博文已經介紹了Tests標籤如何添加斷言以及postman中的環境變量,該篇博文主要介紹如何在Pre-request Script和Tests標籤中添加合適的腳本提取我們需要的數據。

        場景一:假設需要測試兩個接口,接口A負責生成任務信息,且返回一個任務號;接口B負責刪除任務,且就是根據任務號來刪除,並且刪除後該任務號便無法再次使用。

        爲解決以上場景可以考慮每次在測試接口B之前都會先調用接口A來生成一條任務號,然後把數據傳給B,這樣即使更換數據庫也可能靈活進行測試,不需要再提前準備數據。

1.提取接口A生成的任務號。

        首先該請求的響應內容如下,爲響應爲json格式的字符串。

在Tests標籤中編寫如下腳本:

var JsonData = JSON.parse(responseBody);            //定義一個變量,並且將請求返回的內容賦給該變量
pm.environment.set("task_id", JsonData.task_id);    //定義一個環境變量task_id,且把響應內容中的task_id值賦值給該變量
console.log(JsonData.task_id);                      //利用postman的console.log()來查看環境變量的值

postman的輸出控制檯,可以在這裏查看腳本運行情況,進行調試。發送這個請求,可以在console中查看運行情況。

2.在接口B中調用環境變量task_id。

        如上,只要每次在執行接口B前先執行接口A則不必需要擔心地址流水號會失效,達到任務號參數化的目的。

        場景二:假設需要測試三個接口,接口A負責生成任務信息,且返回一個任務號;接口B負責刪除任務,且就是根據任務號來刪除,並且刪除後該任務號便無法再次使用;接口C負責查詢任務信息,且也是根據任務號來進行查詢。

        爲解決以上場景,我們可以在執行接口B和接口C之前,各自先調用一下接口A,生成任務號僅供自己使用。

1.切換到Pre-request Script標籤,在右側代碼片段中可以找到一個Send a request,這是postman提供的發送請求的代碼片段。

postman封裝的sendRequest()方法默認發送的是get請求。若需要發送post請求需要修改如下:

var data ={//定義接口A的body};            
const echoPostRequest = {
    url:'http://XXX.XXX.XXX',           //請求url
    method:'POST',                                                     //請求方法的POST
    //header:'',定製請求頭信息(要傳json格式的數據這裏定義請求頭爲Content-Type:application/json)
    body:{                                                             //post請求的body參數,有則傳,無則不用傳
        mode:'raw',
        raw:JSON.stringify(data)                                       //如果有body參數的話,把data傳進來,JSON.stringify() 方法是將一個JavaScript值(對象或者數組)轉換爲一個JSON字符串,若參數類型是application/x-www-form-urlencode,傳值例如:raw: 'id=123&code=28'
    }
};
pm.sendRequest(echoPostRequest, function (err, response) {
    console.log(response.json());
    pm.environment.set("select_id", response.json().task_id);             //定義一個環境變量del_id,並將前置請求響應中的task_id賦給它
    console.log(response.json().task_id);                              //打印前置請求生成的任務號
});

發送這個請求,可以在console中查看運行情況:

2.在接口C中調用環境變量select_id。

上面介紹的即是經常講到的參數化過程,掌握了這些技巧,基本上便可以用postman很好地完成接口測試。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章