Postman斷言詳解

一、什麼是斷言?

在測試中,斷言是測試正確行為的方法。它是由測試工具或測試庫提供的語句或代碼段。它通常是在代碼的某個位置插入的,以檢驗程序的某個方面是否「符合預期」。 在 API 測試中,可以使用 Postman 利用斷言驗證 API 的正確性、性能和安全性。

二、響應斷言

在 API 測試中,響應斷言是最常用且最基本的斷言之一。我們對於每個請求發出的響應來做出斷言,並確保響應的狀態碼、消息正文等等都符合預期。

1、驗證狀態碼


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

這段代碼將檢查 API 的響應狀態碼是否都是200。如果檢查失敗,將顯示一條失敗消息。

2、驗證響應時間


const MAX_RESPONSE_TIME = 2000; // in ms

pm.test("Response time is less than " + MAX_RESPONSE_TIME + "ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(MAX_RESPONSE_TIME);
});

這段代碼將檢查 API 的響應時間是否小於設定的最大響應時間(2秒)。如果檢查失敗,將顯示一條失敗消息。

3、驗證響應消息正文


pm.test("Response body matches expected value", function () {
    pm.expect(pm.response.text()).to.include("expected value");
});

這段代碼將檢查 API 的響應消息正文是否包含「expected value」這個內容。如果檢查失敗,將顯示一條失敗消息。

4、驗證響應格式


pm.test("Response should be in JSON format", function () {
    pm.response.to.be.json; // this will make sure that response is in JSON format
});

這段代碼將檢查 API 的響應是否是 JSON 格式。如果檢查失敗,將顯示一條失敗消息。

三、環境變量斷言

除了響應斷言,Postman 還支持環境變量的斷言。環境變量是存儲在 Postman 中的可被腳本使用的全局變量。環境變量可用於存儲和傳遞 API 測試中的數據。

1、驗證環境變量存在


pm.test("Environment variable exists", function() {
    pm.expect(pm.environment.has("variable_key")).to.be.true;
});

這段代碼將檢查名為「variable_key」的環境變量是否存在。如果檢查失敗,將顯示一條失敗消息。

2、驗證環境變量的值


pm.test("Environment variable value is expected", function() {
    pm.expect(pm.environment.get("variable_key")).to.eql("expected_value");
});

這段代碼將檢查名為「variable_key」的環境變量的值是否等於「expected_value」。如果檢查失敗,將顯示一條失敗消息。

3、驗證環境變量是數字


pm.test("Environment variable is a number", function () {
    var value = pm.environment.get("variable_key");
    pm.expect(Number(value)).to.be.a("number");
});

這段代碼將檢查名為「variable_key」的環境變量的值是否為數字類型。如果檢查失敗,將顯示一條失敗消息。

四、集成測試斷言

在集成測試中,可以使用斷言來檢查 API 與其他應用程序集成時的正常工作。

1、驗證 API 認證


pm.test("API requires authentication", function () {
    pm.expect(pm.response.headers.get("Authorization")).to.not.be.null;
});

這段代碼將驗證 API 是否需要進行身份驗證。 如果檢查失敗,將顯示一條失敗消息。

2、驗證 API 是否調用其他服務


pm.test("API calls another service", function () {
    pm.expect(pm.response.headers.get("Service-Name")).to.eqls("Service-Name");
});

這段代碼將驗證 API 是否調用名為「Service-Name」的另一個服務。如果檢查失敗,將顯示一條失敗消息。

3、驗證 API 與數據庫的交互


pm.test("API interacts with database", function () {
    pm.expect(pm.response.text()).to.include("SELECT * FROM TABLE");
});

這段代碼將驗證 API 是否與名為「TABLE」的數據庫進行交互。如果檢查失敗,將顯示一條失敗消息。

五、規範斷言

規範斷言用於驗證 API 是否遵循行業標準、規範和最佳實踐。它在 API 測試中很重要,因為它確認了 API 的質量和可靠性。

1、驗證 HTTP 方法


pm.test("API uses correct HTTP method", function () {
    pm.expect(pm.request.method).to.eql("GET");
});

這段代碼將驗證 API 使用的 HTTP 方法是否正確。如果檢查失敗,將顯示一條失敗消息。

2、驗證 API 路徑


pm.test("API path is valid", function () {
    pm.expect(pm.request.url.pathname).to.eql("/api/path");
});

這段代碼將驗證 API 的路徑是否正確。如果檢查失敗,將顯示一條失敗消息。

3、驗證 API 參數


pm.test("API parameters are correct", function () {
    pm.expect(pm.request.url.query).to.eql({"param_key":"param_value"});
});

這段代碼將驗證 API 的參數是否正確。如果檢查失敗,將顯示一條失敗消息。

原創文章,作者:PDNL,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/149218.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
PDNL的頭像PDNL
上一篇 2024-11-04 17:52
下一篇 2024-11-04 17:52

相關推薦

  • Postman測試中獲取responsebody

    本文將從多個方面詳細闡述如何在Postman測試中獲取responsebody,包括正則表達式、全局變量、測試腳本等。 一、正則表達式獲取responsebody 正則表達式是一種…

    編程 2025-04-28
  • Python常用斷言函數用法介紹

    本文將詳細介紹Python中常用的斷言函數,讓大家了解這些函數的作用及使用方法,以便於進行代碼測試和調試。 一、assertEqual函數 1、assertEqual函數是Pyth…

    編程 2025-04-27
  • Linux sync詳解

    一、sync概述 sync是Linux中一個非常重要的命令,它可以將文件系統緩存中的內容,強制寫入磁盤中。在執行sync之前,所有的文件系統更新將不會立即寫入磁盤,而是先緩存在內存…

    編程 2025-04-25
  • 神經網絡代碼詳解

    神經網絡作為一種人工智能技術,被廣泛應用於語音識別、圖像識別、自然語言處理等領域。而神經網絡的模型編寫,離不開代碼。本文將從多個方面詳細闡述神經網絡模型編寫的代碼技術。 一、神經網…

    編程 2025-04-25
  • MPU6050工作原理詳解

    一、什麼是MPU6050 MPU6050是一種六軸慣性傳感器,能夠同時測量加速度和角速度。它由三個傳感器組成:一個三軸加速度計和一個三軸陀螺儀。這個組合提供了非常精細的姿態解算,其…

    編程 2025-04-25
  • Python安裝OS庫詳解

    一、OS簡介 OS庫是Python標準庫的一部分,它提供了跨平台的操作系統功能,使得Python可以進行文件操作、進程管理、環境變量讀取等系統級操作。 OS庫中包含了大量的文件和目…

    編程 2025-04-25
  • 詳解eclipse設置

    一、安裝與基礎設置 1、下載eclipse並進行安裝。 2、打開eclipse,選擇對應的工作空間路徑。 File -> Switch Workspace -> [選擇…

    編程 2025-04-25
  • Linux修改文件名命令詳解

    在Linux系統中,修改文件名是一個很常見的操作。Linux提供了多種方式來修改文件名,這篇文章將介紹Linux修改文件名的詳細操作。 一、mv命令 mv命令是Linux下的常用命…

    編程 2025-04-25
  • nginx與apache應用開發詳解

    一、概述 nginx和apache都是常見的web服務器。nginx是一個高性能的反向代理web服務器,將負載均衡和緩存集成在了一起,可以動靜分離。apache是一個可擴展的web…

    編程 2025-04-25
  • Python輸入輸出詳解

    一、文件讀寫 Python中文件的讀寫操作是必不可少的基本技能之一。讀寫文件分別使用open()函數中的’r’和’w’參數,讀取文件…

    編程 2025-04-25

發表回復

登錄後才能評論