Swagger UI是Linux下最常用的可視化測試工具,無需編寫代碼即可快速驗證接口。
38081),確保能通過瀏覽器訪問。docker pull swaggerapi/swagger-ui:v4.15.5
docker run -d -p 38081:8080 swaggerapi/swagger-ui:v4.15.5
http://localhost:38081/swagger-ui.html,點擊“File”→“Import File”,上傳項目的swagger.json或swagger.yaml文件(需提前從后端服務獲取,如Spring Boot項目的/v2/api-docs接口)。page、limit,POST請求的JSON body),點擊“Execute”發送請求。下方會顯示響應狀態碼(如200表示成功)、響應時間及各字段的具體值,便于快速驗證接口功能。對于習慣命令行的用戶,curl是輕量級的測試工具,支持GET、POST等多種請求方式,適合快速驗證接口連通性。
curl "http://<server-ip>:<port>/api/user/query-user-info?page=1&limit=10"
curl -X POST "http://<server-ip>:<port>/api/factory/insert" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "factoryName=TestFactory&no=123&remark=TestRemark"
curl -X POST "http://<server-ip>:<port>/api/material/selectAll" \
-H "Content-Type: application/json" \
-d '{"factory":"TestFactory","materialName":"TestMaterial","offset":0,"page":1,"pageSize":10}'
curl -X POST "http://<server-ip>:<port>/api/all/order/money" \
-F "file=@/path/to/local/file.xlsx" \
-F "startTime=2025-01-01" \
-F "endTime=2025-06-30"
執行后,終端會輸出接口的響應內容(如JSON格式的數據),可直接查看結果。若需要頻繁測試或集成到CI/CD流程,可通過Swagger Codegen生成客戶端代碼,再用測試框架(如Python的pytest、Java的JUnit)編寫自動化測試腳本。
wget https://repo1.maven.org/maven2/io/swagger/codegen/v3/swagger-codegen-cli/3.0.44/swagger-codegen-cli-3.0.44.jar -O swagger-codegen-cli.jar
java -jar swagger-codegen-cli.jar generate -i http://localhost:8080/v2/api-docs -l python -o ./generated-client
pytest和requests庫編寫測試用例(如測試獲取用戶列表接口)。import pytest
import requests
BASE_URL = "http://localhost:8080/api"
def test_get_user_list():
response = requests.get(f"{BASE_URL}/users")
assert response.status_code == 200 # 驗證狀態碼
data = response.json()
assert isinstance(data, list) # 驗證返回數據為列表
if data: # 驗證列表不為空時的字段
assert "id" in data[0]
assert "name" in data[0]
pytest test_api.py,查看測試結果(如通過/失敗用例數)。Postman是常用的API測試工具,其Newman CLI組件支持將Postman集合轉換為命令行腳本,適合集成到CI/CD流程。
swagger.json導出為Postman Collection JSON文件(如swagger-collection.json)。npm install -g newman
report.html)。newman run swagger-collection.json -r cli,json,html
報告會顯示每個接口的狀態碼、響應時間、錯誤信息等,便于團隊協作分析。Dredd是一款專門針對OpenAPI規范的測試工具,可驗證接口實現是否符合文檔定義(如參數類型、響應格式)。
npm install -g dredd
swagger.yaml)和接口地址(http://localhost:8080)。dredd swagger.yaml http://localhost:8080
Dredd會自動比對文檔與實際接口的差異,輸出不符合規范的項目(如缺失的參數、錯誤的響應狀態碼),幫助維護接口文檔的一致性。若需快速檢測Swagger接口的安全漏洞(如未授權訪問、敏感信息泄露),可使用swagger-hacker.py腳本。
git clone https://github.com/jayus0821/swagger-hack.git
cd swagger-hack
https://example.com/swagger.json)。python swagger-hack.py -u https://example.com/swagger.json
腳本會自動發送請求,輸出接口的可用性、參數信息及潛在的安全風險(如缺少認證的接口),幫助提前修復安全問題。以上方法覆蓋了Linux環境下Swagger接口的手動測試、命令行測試、自動化測試及安全探測需求,可根據項目場景選擇合適的方式。例如,開發階段可使用Swagger UI快速調試,CI/CD流程可使用Newman或Dredd集成測試,安全檢查可使用Swagger Hacker掃描漏洞。