Swagger UI是可視化測試工具,無需編寫代碼,適合快速驗證接口功能。
docker pull swaggerapi/swagger-ui:v4.15.5
docker run -d -p 38081:8080 -e SWAGGER_FILE=/app/swagger.yaml -v /path/to/your/swagger.yaml:/app/swagger.yaml swaggerapi/swagger-ui:v4.15.5
其中/path/to/your/swagger.yaml
為本地Swagger定義文件的路徑。http://localhost:38081
,界面會自動加載并顯示API列表。找到目標接口,點擊Try it out按鈕,輸入必填參數(如路徑參數、查詢參數、請求體),點擊Execute即可發送請求,響應結果會直接顯示在下方。cURL是Linux原生命令行工具,適合自動化腳本或快速驗證接口。
curl "http://localhost:8080/api/users?page=1&limit=10"
curl -X POST "http://localhost:8080/api/users" \
-H "Content-Type: application/json" \
-d '{"username": "testuser", "password": "123456"}'
curl -X POST "http://localhost:8080/api/login" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "username=testuser&password=123456"
curl -X POST "http://localhost:8080/api/upload" \
-F "file=@/path/to/local/file.txt" \
-F "description=Test file upload"
http://localhost:8080
為實際API地址,根據Swagger文檔調整參數和Headers(如Authorization
)。通過Swagger Codegen生成客戶端SDK,再用測試框架(如Python的pytest)編寫自動化測試腳本。
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 \ # Swagger API文檔地址
-l python \
-o ./generated-client
pytest
和requests
庫編寫測試用例(示例):import pytest
import requests
BASE_URL = "http://localhost:8080/api"
def test_get_users():
response = requests.get(f"{BASE_URL}/users?page=1&limit=10")
assert response.status_code == 200
assert "data" in response.json()
def test_create_user():
user_data = {"username": "testuser", "password": "123456"}
response = requests.post(f"{BASE_URL}/users", json=user_data)
assert response.status_code == 201
assert response.json()["username"] == "testuser"
運行測試:pytest test_api.py
。Postman Newman是Postman的命令行工具,適合將Postman集合集成到CI/CD流程中。
swagger.yaml
導出為Postman Collection JSON文件(如swagger-collection.json
)。npm install -g newman
newman run swagger-collection.json
輸出HTML報告(適合CI/CD):newman run swagger-collection.json -r cli,json,html --reporter-html-export report.html
支持添加環境變量(如API地址)、認證信息等。Dredd是針對OpenAPI規范的自動化測試工具,用于驗證API實現是否符合文檔定義。
npm install -g dredd
dredd swagger.yaml http://localhost:8080
Dredd會讀取swagger.yaml
中的接口定義,發送請求到實際API,并對比響應是否符合預期(如狀態碼、響應體結構)。以上方法覆蓋了從交互式測試到自動化測試的場景,可根據需求選擇合適的方式。例如,開發階段用Swagger UI快速調試,CI/CD流程用Newman或Dredd進行自動化驗證,代碼開發用Swagger Codegen生成測試框架。