atest v0.0.18 提供了強大、靈活的 HTTP API Mock 功能

LinuxSuRen發表於2024-11-05

atest 釋出 v0.0.18

atest 是致力於幫助開發者持續保持高質量 API 的開源介面工具。

你可以在命令列終端或者容器中啟動:

docker run -p 8080:8080 ghcr.io/linuxsuren/api-testing:v0.0.18

亮點

  • 在開源之夏 2024 中 atest 增加了基於 MySQL 的測試用例歷史的支援
  • HTTP API Mock 功能的支援

在系統和平臺的開發過程中,我們通常會採用前後端分離的開發模式。在後端 API 尚未開發完成、穩定化,並且未部署到公共整合測試環境之前,前端開發者往往需要透過硬編碼資料來推進頁面開發。待後端開發完成後,會進入所謂的 “聯調” 階段,這時可能會遇到以下問題:

  • 前端可能需要調整資料結構、頁面佈局和邏輯,並重新進行測試
  • 在實際檢視頁面後,可能會發現後端的資料結構和 API 的請求與響應需要調整

在最壞的情況下,前後端的聯調可能會耗費遠超預期的時間。為了更有效地解決這一問題,atest 提供了 HTTP API Mock 功能。

在設計評審階段,我們可以根據 API 設計提供相應的 Mock 服務配置,從而快速模擬後端 API 的響應資料。例如:

objects:
  - name: users
    sample: |
      {
        "name": "LinuxSuRen",
        "age": 18
        "gender": "male"
      }
proxies:
  - path: /api/v1/projects/{projectID}
    target: http://localhost:8080

把上面的內容放到 mock.yaml 檔案中,然後使用 atest mock --prefix /api/v1 --port 6060 mock.yaml 命令即可啟動一個 HTTP Mock 服務。

此時,Mock 服務就會把代理模組指定的 API 轉發到已有服務的的介面上,並同時提供了 users 物件的增刪查改(CRUD)的標準 API。你可以用 atest 或者 curl 命令來呼叫這些 API。

curl -X POST -d '{"name": "Rick"}' http://localhost:6060/api/v1/users
curl -X GET http://localhost:6060/api/v1/users
curl -X PUT -d '{"name": "Rick", "age": 20}' http://localhost:6060/api/v1/users/Rick
curl -X GET http://localhost:6060/api/v1/users/Rick
curl -X DELETE http://localhost:6060/api/v1/users/Rick

非常期待 atest 可以幫助更多的專案持續提升、保持 API 穩定性。

🚀 主要的新功能

  • Mock 功能的增強,包含物件、原始、代理三種模式 (#552) @LinuxSuRen
  • 支援重新命名測試用例、測試集 (#550) @LinuxSuRen
  • 支援給定頻率下重複執行測試用例 (#548) @LinuxSuRen
  • 下載外掛檔案時顯示進度資訊 (#544) @LinuxSuRen
  • 支援生成隨機圖片並上傳 (#541) @LinuxSuRen
  • 支援上傳嵌入式檔案(基於 base64 編碼)(#538) @LinuxSuRen
  • 支援匯入其他 atest 例項的用例資料 (#539) @LinuxSuRen
  • UI 上顯示響應體的大小 (#536) @LinuxSuRen
  • 增加基於 MySQL 位儲存的測試用例執行歷史記錄 (#524) @SamYSF
  • 支援設定外掛下載的 “字首” 資訊 (#532) @SamYSF
  • 最佳化儲存外掛管理介面 (#518) @LinuxSuRen
  • 在 UI 上增加快捷鍵支援 (#510) @LinuxSuRen
  • 重構 API 風格為 restFul (#497) @LinuxSuRen
  • 增加 Mock 配置的 JSON schema (#499) @LinuxSuRen
  • 增加了對 JSON 相容性的響應格式的支援 (#496) @LinuxSuRen

🐛 缺陷修復

  • 修復測試用例重複時被覆蓋的問題 (#531) @LinuxSuRen

致謝

本次版本釋出,包含了以下 3 位 contributor 的努力:

  • @LinuxSuRen
  • @SamYSF
  • @yuluo-yx

相關資料

下面是 atest 截止到 v0.0.18 的部分資料:

  • watch 9
  • fork 50
  • star 249 (+40)
  • contributor 25 (+1)
  • 二進位制檔案下載量 6.3k (+3.2k)
  • 部分映象 6.4k (+0.9k)
  • 單元測試覆蓋率 76% (+2%)

想了解完整資訊的話,請訪問 https://github.com/LinuxSuRen/api-testing/releases/tag/v0.0.18

相關文章