使用Postman進(jìn)行接口測(cè)試詳細(xì)教程與實(shí)例

2025-01-09 13:48 更新

一、理論部分

1. 寫(xiě)在開(kāi)始的話

在前后端分離開(kāi)發(fā)時(shí),后端工作人員完成系統(tǒng)接口開(kāi)發(fā)后,需要與前端人員對(duì)接,測(cè)試調(diào)試接口,驗(yàn)證接口的正確性可用性。而市場(chǎng)上有很多優(yōu)秀的接口測(cè)試工具,比如SoapUI、Postman、JMeter、yapi等,能夠高效地幫助后端開(kāi)發(fā)人員獨(dú)立進(jìn)行接口測(cè)試。這里主要介紹如何使用Postman進(jìn)行接口測(cè)試。

2. 簡(jiǎn)單了解一下Postman

Postman是一個(gè)接口測(cè)試工具,相當(dāng)于一個(gè)客戶端,它可以模擬用戶發(fā)起的各類HTTP請(qǐng)求,將請(qǐng)求數(shù)據(jù)發(fā)送至服務(wù)端,獲取對(duì)應(yīng)的響應(yīng)結(jié)果,從而驗(yàn)證響應(yīng)中的結(jié)果數(shù)據(jù)是否和預(yù)期值相匹配。Postman與瀏覽器的區(qū)別在于,它更直觀地展示接口返回的結(jié)果,特別是JSON格式的數(shù)據(jù)。

二、工具應(yīng)用

1. 新建接口

1.1 創(chuàng)建Collection集合

在開(kāi)始一個(gè)項(xiàng)目時(shí),為了便于組織和管理,可以將同屬該項(xiàng)目的多個(gè)API放在一組里。首先需要新建一個(gè)Collection:New -> Collection。

1.2 創(chuàng)建請(qǐng)求

在Postman中,你可以通過(guò)點(diǎn)擊左上角的“Send”按鈕或使用快捷鍵(默認(rèn)為Ctrl+Enter)發(fā)送請(qǐng)求。在彈出的窗口中,你可以填寫(xiě)請(qǐng)求的URL、請(qǐng)求方法(GET、POST等)、請(qǐng)求頭和請(qǐng)求體等信息。

三、接口實(shí)例

1. POST請(qǐng)求

POST請(qǐng)求是用來(lái)發(fā)送數(shù)據(jù)的。例如,產(chǎn)品經(jīng)理的PRD文檔要求分配加工廠接口里新增加工廠ID字段,整數(shù)類型,非必填。測(cè)試人員需要打開(kāi)Postman,填寫(xiě)接口信息,結(jié)合測(cè)試用例,組合變換參數(shù)信息后,查看返回的JSON數(shù)據(jù)與PRD是否一致。

以注冊(cè)用戶為例,測(cè)試人員可以在Postman中設(shè)置如下請(qǐng)求:

{
  "name": "小小",
  "password": "123456"
}

發(fā)送請(qǐng)求后,可以通過(guò)響應(yīng)結(jié)果驗(yàn)證接口是否正確處理了注冊(cè)信息。

2. GET請(qǐng)求

GET請(qǐng)求是用來(lái)獲取數(shù)據(jù)的。例如,XX系統(tǒng)獲取出庫(kù)賬單接口,測(cè)試人員需要打開(kāi)Postman,填寫(xiě)接口信息,結(jié)合測(cè)試用例,組合變換參數(shù)信息后,查看返回的JSON數(shù)據(jù)與PRD是否一致。

以獲取出庫(kù)賬單為例,測(cè)試人員可以在Postman中設(shè)置如下請(qǐng)求:

四、斷言與測(cè)試

Postman支持對(duì)響應(yīng)結(jié)果進(jìn)行斷言和測(cè)試。斷言可以幫助你檢查響應(yīng)結(jié)果中的特定內(nèi)容或值,如檢查JSON數(shù)據(jù)中的某個(gè)字段是否符合預(yù)期。測(cè)試則可以對(duì)整個(gè)響應(yīng)結(jié)果進(jìn)行驗(yàn)證,如檢查響應(yīng)狀態(tài)碼是否為200。

在測(cè)試過(guò)程中,可以使用Postman的斷言功能來(lái)驗(yàn)證響應(yīng)結(jié)果。例如:

  • 斷言狀態(tài)碼為200:

pm.test("Status code is 200", function () {
  pm.response.to.have.status(200);
});

  • 斷言響應(yīng)文本中包含特定字符串:

pm.test("Body matches string", function () {
  pm.expect(pm.response.text()).to.include("access_token");
});
```[^11^]。

五、集合與環(huán)境

在Postman中,你可以將多個(gè)請(qǐng)求組織到一個(gè)集合中,方便管理和復(fù)用。此外,你還可以為集合設(shè)置不同的環(huán)境變量,以便在不同的環(huán)境下發(fā)送請(qǐng)求時(shí)使用不同的參數(shù)值。

在測(cè)試不同環(huán)境的API時(shí),可以使用環(huán)境變量來(lái)管理不同環(huán)境的配置。例如:

  • 設(shè)置環(huán)境變量:

postman.setEnvironmentVariable("url", "http://192.168.1.21/oa/index.jsp");

  • 在請(qǐng)求中使用環(huán)境變量:

https://{{url}}/api/user/reg/
```[^11^]。

六、參數(shù)化與數(shù)據(jù)驅(qū)動(dòng)測(cè)試

在Postman中,你可以使用參數(shù)化測(cè)試來(lái)復(fù)用測(cè)試用例,并通過(guò)數(shù)據(jù)驅(qū)動(dòng)的方式傳遞不同的參數(shù)值。這樣可以使你的測(cè)試用例更加靈活和健壯。

七、Mock服務(wù)器與擋板測(cè)試

Postman還支持Mock服務(wù)器和擋板測(cè)試功能。你可以使用Mock服務(wù)器模擬接口響應(yīng),以便在沒(méi)有后端服務(wù)的情況下進(jìn)行前端開(kāi)發(fā)或測(cè)試。同時(shí),擋板測(cè)試可以幫助你在開(kāi)發(fā)過(guò)程中模擬接口請(qǐng)求和響應(yīng),以便更好地進(jìn)行集成測(cè)試和調(diào)試。

相信你已經(jīng)對(duì)Postman工具有了基本的了解和使用方法。在實(shí)際工作中,建議根據(jù)項(xiàng)目的需求和場(chǎng)景選擇合適的接口測(cè)試方法和工具,以提高接口測(cè)試的效率和準(zhǔn)確性。下面V 哥跟業(yè)務(wù)場(chǎng)景分講解幾個(gè)案例的使用。

八、使用案例

1. 用戶注冊(cè)接口測(cè)試

場(chǎng)景描述

測(cè)試用戶是否可以成功注冊(cè)到系統(tǒng)中。

步驟

  1. 創(chuàng)建一個(gè)新的Collection,命名為“用戶注冊(cè)測(cè)試”。

  1. 在Collection中創(chuàng)建一個(gè)新的POST請(qǐng)求。

  1. 設(shè)置URL為注冊(cè)API的地址,例如:https://api.example.com/register

  1. 在Headers中添加Content-Type: application/json。

  1. 在Body中使用raw格式,填入注冊(cè)信息的JSON:

   {
     "username": "newuser",
     "password": "password123",
     "email": "newuser@example.com"
   }

  1. 發(fā)送請(qǐng)求并檢查響應(yīng)狀態(tài)碼是否為201。

  1. 使用斷言檢查返回的JSON中是否包含用戶信息。

2. 用戶登錄接口測(cè)試

場(chǎng)景描述

測(cè)試用戶是否可以使用正確的憑證登錄系統(tǒng)。

步驟

  1. 創(chuàng)建一個(gè)新的GET或POST請(qǐng)求(取決于API設(shè)計(jì))。
  2. 設(shè)置URL為登錄API的地址,例如:https://api.example.com/login。
  3. 如果是GET請(qǐng)求,添加查詢參數(shù)usernamepassword。
  4. 如果是POST請(qǐng)求,在Body中以JSON格式添加用戶名和密碼。
  5. 發(fā)送請(qǐng)求并檢查響應(yīng)狀態(tài)碼是否為200。
  6. 使用斷言檢查返回的JSON中是否包含token信息。

3. 商品列表查詢接口測(cè)試

場(chǎng)景描述

測(cè)試系統(tǒng)是否能夠返回正確的商品列表。

步驟

  1. 創(chuàng)建一個(gè)新的GET請(qǐng)求。
  2. 設(shè)置URL為商品列表API的地址,例如:https://api.example.com/products。
  3. 添加可能的查詢參數(shù),如category=booksprice=100
  4. 發(fā)送請(qǐng)求并檢查響應(yīng)狀態(tài)碼是否為200。
  5. 使用斷言檢查返回的JSON數(shù)組長(zhǎng)度是否正確。

4. 商品添加到購(gòu)物車接口測(cè)試

場(chǎng)景描述

測(cè)試用戶是否可以將商品添加到購(gòu)物車。

步驟

  1. 確保用戶已經(jīng)登錄并獲取到token。
  2. 創(chuàng)建一個(gè)新的POST請(qǐng)求。
  3. 設(shè)置URL為添加到購(gòu)物車API的地址,例如:https://api.example.com/cart/items。
  4. 在Headers中添加Authorization: Bearer <token>
  5. 在Body中以JSON格式添加商品ID和數(shù)量。
  6. 發(fā)送請(qǐng)求并檢查響應(yīng)狀態(tài)碼是否為200。
  7. 使用斷言檢查返回的JSON中購(gòu)物車是否包含添加的商品。

5. 文件上傳接口測(cè)試

場(chǎng)景描述

測(cè)試用戶是否可以上傳文件到系統(tǒng)。

步驟

  1. 創(chuàng)建一個(gè)新的POST請(qǐng)求。
  2. 設(shè)置URL為文件上傳API的地址,例如:https://api.example.com/upload。
  3. 在Headers中添加Content-Type: multipart/form-data。
  4. 在Body中選擇form-data格式,并添加鍵值對(duì),鍵為file,值為選擇文件按鈕。
  5. 附加其他必要的表單字段,如文件描述。
  6. 發(fā)送請(qǐng)求并檢查響應(yīng)狀態(tài)碼是否為200或201。
  7. 使用斷言檢查返回的JSON中是否包含文件上傳成功的確認(rèn)信息。

6. 商品下單接口測(cè)試

場(chǎng)景描述

測(cè)試用戶是否可以成功下單購(gòu)買(mǎi)商品。

步驟

  1. 確保用戶已經(jīng)登錄并獲取到token。
  2. 創(chuàng)建一個(gè)新的POST請(qǐng)求。
  3. 設(shè)置URL為下單API的地址,例如:https://api.example.com/orders。
  4. 在Headers中添加Authorization: Bearer <token>。
  5. 在Body中以JSON格式添加訂單信息,包括購(gòu)物車中的商品ID列表和數(shù)量。
  6. 發(fā)送請(qǐng)求并檢查響應(yīng)狀態(tài)碼是否為200或201。
  7. 使用斷言檢查返回的JSON中是否包含訂單確認(rèn)信息。

7. 用戶信息更新接口測(cè)試

場(chǎng)景描述

測(cè)試用戶是否可以更新自己的個(gè)人信息。

步驟

  1. 確保用戶已經(jīng)登錄并獲取到token。
  2. 創(chuàng)建一個(gè)新的PUT請(qǐng)求。
  3. 設(shè)置URL為用戶信息更新API的地址,例如:https://api.example.com/user/profile。
  4. 在Headers中添加Authorization: Bearer <token>Content-Type: application/json
  5. 在Body中以JSON格式添加新的用戶信息。
  6. 發(fā)送請(qǐng)求并檢查響應(yīng)狀態(tài)碼是否為200。
  7. 使用斷言檢查返回的JSON中是否包含更新后的用戶信息。

8. 訂單狀態(tài)查詢接口測(cè)試

場(chǎng)景描述

測(cè)試用戶是否可以查詢到自己訂單的當(dāng)前狀態(tài)。

步驟

  1. 確保用戶已經(jīng)登錄并獲取到token。
  2. 創(chuàng)建一個(gè)新的GET請(qǐng)求。
  3. 設(shè)置URL為訂單狀態(tài)查詢API的地址,例如:https://api.example.com/orders/{orderId}。
  4. 在Headers中添加Authorization: Bearer <token>。
  5. 替換URL中的{orderId}為實(shí)際的訂單ID。
  6. 發(fā)送請(qǐng)求并檢查響應(yīng)狀態(tài)碼是否為200。
  7. 使用斷言檢查返回的JSON中是否包含訂單的正確狀態(tài)信息。

在執(zhí)行這些測(cè)試案例時(shí),請(qǐng)確保遵循實(shí)際的API規(guī)范,并根據(jù)API的特定要求調(diào)整步驟和參數(shù)。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)