使用 pyhttptest 輕松測試 REST API


使用 pyhttptest 輕松測試 REST API

現在,我們每個人都面臨着 REST API,要么開發這樣的服務,要么使用這樣的服務。 此外,我們正處於微服務的時尚時代,我們將業務邏輯分割成獨立於每個服務的小型獨立服務。 這些服務大多遵循 RESTful 原則,並使用 JSON 格式進行通信,由於其簡單性,JSON 格式成為最廣泛使用的格式​。

pyhttptest 命令行工具,用於通過 RESTful api 進行 HTTP 測試。

這個工具通過簡單的三個步驟自動化測試

  1. 安裝
pip install pyhttptest
  1. 用文件中最簡單且廣泛使用的格式 JSON 描述針對 API 服務的 HTTP 請求測試用例
  • 發送 HTTP GET 請求
    json文件內容如下
{
  "name""TEST: Get server status",
  "verb""GET",
  "endpoint""/get",
  "host""https://httpbin.org",
  "headers": {
    "Accept-Language""en-US"
  }
}

  • 發送 HTTP POST 請求
    json文件內容如下
{
  "name""TEST: Create an HTML bin",
  "verb""POST",
  "endpoint""post",
  "host""https://httpbin.org",
  "payload": {
    "content""Hello, world!"
  }
}

  • 多個測試用例定義示例
[
  {
    "name""TEST: List all users",
    "verb""GET",
    "endpoint""api/v1/users",
    "host""http://localhost:8085/",
    "headers": {
      "Accept-Language""en-US"
    },
    "query_string": {
      "limit"1
    }
  },
  {
    "name""TEST: Add a new user",
    "verb""POST",
    "endpoint""api/v1/users",
    "host""http://localhost:8085/",
    "payload": {
      "username""pyhttptest",
      "email""admin@pyhttptest.com"
    }
  },
  {
    "name""TEST: Modify an existing user",
    "verb""PUT",
    "endpoint""api/v1/users/XeEsscGqweEttXsgY",
    "host""http://localhost:8085/",
    "payload": {
      "username""pyhttptest"
    }
  },
  {
    "name""TEST: Delete an existing user",
    "verb""DELETE",
    "endpoint""api/v1/users/XeEsscGqweEttXsgY",
    "host""http://localhost:8085/"
  }
]
  1. 運行命令並獲取報告
pyhttptest execute data/filename.json
  • 來自測試用例的報告截圖

測試用例的屬性

  • name - 測試用例的名稱
  • verb - HTTP 方法
  • endpoint - 要在服務器上調用的資源
  • host - 服務器主機地址
  • headers - 一個 HTTP 報頭。所有的 HTTP 報頭
  • query_string - 查詢字符串-在問號后面的 URL 中的查詢字符串參數
  • payload - 數據

Tips

您可能會想到一個問題,如何將測試用例添加、結構和組織到我現有的 / 新的項目中。 每個 Python 項目,其中有測試包含在他的項目目錄一個文件夾即tests/。

從這個目錄按慣例,偉大的框架,如unittest and 及pytest發現並執行 Python 腳本中定義的測試用例。 為了不搞亂這些測試並打破常規,我建議在您的項目根目錄中創建一個名為live_tests/ 。

在新目錄中,可以將所有json文件,定義了 API 測試用例的文件。 通過這樣做,您的測試將很容易區分。


免責聲明!

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



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