Swagger UI是Swagger提供的交互式文档工具,支持直接在浏览器中测试API接口。
docker pull swaggerapi/swagger-ui:v4.15.5 docker run -d -p 38081:8080 -e URL=/api-docs swaggerapi/swagger-ui:v4.15.5 或手动下载Swagger UI(如v3.50.0),解压后修改config-url指向后端API文档地址(如/v2/api-docs),再通过Nginx等web服务器提供服务。http://<CentOS_IP>:38081(Docker部署)或http://<CentOS_IP>/swagger-ui.html(手动部署),进入Swagger UI界面。/user/query-user-info),点击右侧Try it out按钮,输入必填参数(如limit、page),点击Execute即可发送请求。响应结果会显示在下方,包括状态码、响应时间和数据内容。若习惯使用命令行,可通过curl模拟HTTP请求测试API,适用于脚本自动化或无图形界面的场景。
curl "http://<CentOS_IP>:9090/client/selectByPage?limit=10&page=1" curl -X POST "http://<CentOS_IP>:9090/factory/insert" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "factoryName=TestFactory&no=123&remark=TestRemark" curl -X POST "http://<CentOS_IP>:9090/material/selectAll" \ -H "Content-Type: application/json" \ -d '{"factory":"TestFactory","materialName":"TestMaterial","offset":0,"page":1,"pageSize":10}' curl -X POST "http://<CentOS_IP>:9090/api/all/order/money" \ -F "file=@/path/to/local/file.xlsx" \ -F "startTime=2020-01-01" \ -F "endTime=2020-06-30" -v参数查看详细请求/响应头信息。若需要集成到CI/CD流程或进行大规模测试,可使用以下工具生成测试代码或直接运行测试:
方案1:Swagger Codegen生成测试代码
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://<CentOS_IP>:8080/v2/api-docs -l python -o ./generated-client import pytest import requests BASE_URL = "http://<CentOS_IP>:8080/api" def test_get_user(): response = requests.get(f"{BASE_URL}/users") assert response.status_code == 200 assert isinstance(response.json(), list) def test_create_user(): user_data = {"name": "John Doe", "email": "johndoe@example.com"} response = requests.post(f"{BASE_URL}/users", json=user_data) assert response.status_code == 201 assert response.json()["name"] == "John Doe" pytest test_api.py -v 方案2:Postman Newman CLI
npm install -g newman newman run your-swagger-collection.json -r cli,json # 输出CLI结果和JSON报告 newman run your-swagger-collection.json -r cli,json,html --reporter-html-export report.html 方案3:Dredd(针对OpenAPI规范)
npm install -g dredd dredd swagger.yaml http://<CentOS_IP>:8080 Dredd会根据Swagger文档自动生成测试用例,验证接口是否符合规范。
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent sudo firewall-cmd --reload mvn spring-boot:run启动)。