『政善治』Postman工具 — 11、使用Postman測試關聯接口


上一篇文章說明了Postman中關於Cookie的相關操作,還是以Cookie舉例,來說明下一在Postman中測試關聯接口。

1、關聯接口說明

例如:有可能存在部分任務場景,或者部分API接口必須登錄后才能訪問。

設想一下,現在后端基本都是熱更新框架,每次熱更新都會清除Session,邊開發邊測試時,每次熱更新后,都要先訪問一下登錄接口,再訪問其他接口,有點繁瑣。

下面我們使用一個電商項目進行演示,在登錄接口完成登錄之后,通過查看購物車接口獲取該用戶購物車中的信息。

2、測試關聯接口實現步驟

那么按照一個標准的流程來說,我們應先去調用登陸接口,獲取到對應的Cookie之后存入環境變量中,再來進行后續查看購物車的請求。

步驟1:創建登陸請求並執行成功。

登陸接口地址:http://www.testingedu.com.cn:8000/index.php?m=Home&c=User&a=do_login&t=0.3508523582926

image

步驟2:編寫登陸請求中的Tests腳本。

目的:把上面登陸請求的響應頭中,目標Cookie內容存儲到環境變量中,供后續接口使用。

// 獲取相應體全部信息
// var jsonData = pm.response.json();
// console.log(jsonData)

// 獲取響應頭的全部信息,獲得的是一個數組
// Server: nginx/1.14.1
// Date: Sat, 20 Feb 2021 09:50:16 GMT
// Content-Type: text/html; charset=UTF-8
// Transfer-Encoding: chunked
// Connection: keep-alive
// X-Powered-By: PHP/7.0.33
// Set-Cookie: is_mobile=0; expires=Sat, 20-Feb-2021 10:50:16 GMT; Max-Age=3600; path=/
// Set-Cookie: PHPSESSID=54i0ralr3p7473himrr1tblpr0; path=/
// Set-Cookie: user_id=8; path=/
// Set-Cookie: is_distribut=0; path=/
// Set-Cookie: uname=summer; path=/
// Set-Cookie: cn=0; expires=Sat, 20-Feb-2021 08:50:16 GMT; Max-Age=0; path=/
// Expires: Thu, 19 Nov 1981 08:52:00 GMT
// Cache-Control: no-store, no-cache, must-revalidate
// Pragma: no-cache
const headerData = pm.response.headers;
console.log(headerData)

// 轉換成json格式數據
// var jsonData = JSON.stringify(headerData);
// 轉換成數組對象
// var result = JSON.parse(jsonData);

// 定義一個存儲cookie的變量
var cookieData = "";

// 遍歷響應頭信息
for(var i in headerData.members){
    // 刪選出Set-Cookie開頭的響應頭信息
    if(headerData.members[i].key=='Set-Cookie'){
        // 調試代碼
        console.log(headerData.members[i].value)

        // 如果是PHPSESSID的cookie信息
        if(headerData.members[i].value.substring(0, 9) == "PHPSESSID"){
            //console.log(true);
            // 存儲目標cookie
            cookieData = headerData.members[i].value;
            break;
        }
    }
}

// 獲取到PHPSESSID=akf4tpeu6satce3bft0giq9uj5
var cookievalue = cookieData.split(";")[0];
console.log(cookievalue)



// 以上信息就是為例獲取必要的數據,然后需要把這些數據存入環境變量中
// 把關於登陸認證的cookie信息存儲到環境變量中
pm.environment.set("cookie", cookievalue);

執行完登陸接口后,環境變量中會添加一個Cookie變量。

image

總結:意思就是把登陸成功后所返回的Cookie信息存儲到環境變量中,提供給后續的接口使用。

步驟3:調用查看購物車接口

請求頭中的Cookie配置,去調用環境變量中的Cookie信息。

查看購物車接口地址:http://www.testingedu.com.cn:8000/index.php?m=Home&c=Cart&a=header_cart_list

image

總結

Postman對關聯接口的測試步驟如下:

  1. 先獲取前一個接口的返回json數據。
  2. 提取json數據中需要的數據,並保存到環境變量/全局變量中。
  3. 在下一個接口中,使用{{變量名}}的方式,將環境變量/全局變量寫入到下一個接口的請求中。

提示:我們也可以在Pre-request Script中寫一個測試集腳本,每次使用接口前,先調用一次登錄接口進行登陸,然后將cookie信息存入環境變量(也可以不存,因為Postman會自動存儲),這樣我們可以直接調用后續接口了。

3、補充:Postman中將請求轉換成代碼

有些時候,我們在Postman進行請求的測試后,需要轉換成代碼,此時我們可以直接通過Code將Postman 實現的接口,轉為任意的語言的代碼,如:Java語言的OkHttp或者Python語言的Requests庫等代碼。

例如:我們選擇一個Post請求,點擊Save按鈕下面的Code

image

然后會彈出如下界面:

例如我們在左側選擇Python-Requests,在右側面板中,會把該測試接口用requests庫的代碼展示出來。

image

之后可以把以上內容編輯到測試框架中。

參考:https://www.cnblogs.com/Mkkk/p/14399523.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM