在Linux系统上,首先需要安装Swagger CLI和Swagger UI,用于解析Swagger文档和启动文档服务。
npm install -g swagger-jsdoc swagger-ui-express
npm install -g swagger-editor
Swagger性能测试的前提是有清晰的API规范文档(Swagger JSON/YAML)。可通过代码注解自动生成:
@Api(tags = "用户管理")
@RestController
@RequestMapping("/api/v1/users")
public class UserController {
@ApiOperation(value = "获取用户列表", notes = "分页获取用户信息")
@GetMapping
public ResponseEntity<List<User>> getUsers(
@ApiParam(value = "页码", example = "1") @RequestParam int page,
@ApiParam(value = "每页数量", example = "10") @RequestParam int size) {
// 业务逻辑
}
}
swagger generate spec -o ./swagger.json
将生成的Swagger文档集成到Web服务中,方便通过浏览器访问和测试:
const express = require('express');
const swaggerUi = require('swagger-ui-express');
const swaggerDocument = require('./swagger.json');
const app = express();
// 挂载Swagger UI到/api-docs路径
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocument));
// 启动服务
app.listen(3000, () => {
console.log('Swagger UI运行在 http://localhost:3000/api-docs');
});
http://localhost:3000/api-docs
,即可查看接口文档。Swagger UI提供了简单的交互式测试功能,可快速验证接口响应时间:
若需评估API在高并发下的性能(如吞吐量、并发处理能力),需借助Linux下的专业工具:
ab -n 100 -c 10 http://localhost:3000/api/v1/users
参数说明:-n 100
表示总请求数,-c 10
表示并发数。siege -c 50 -t 30s http://localhost:3000/api/v1/users
参数说明:-c 50
表示并发数,-t 30s
表示测试时长。sysbench cpu --threads=4 run
若需实现持续集成(CI)中的性能测试,可将Swagger与自动化测试框架结合:
import requests
import pytest
# 从Swagger文档中读取接口URL
BASE_URL = "http://localhost:3000/api/v1/users"
@pytest.mark.performance
def test_get_users_response_time():
start_time = time.time()
response = requests.get(BASE_URL)
end_time = time.time()
# 断言响应时间小于1秒
assert (end_time - start_time) < 1.0
assert response.status_code == 200
测试完成后,需分析结果并优化API性能:
top
、htop
、vmstat
等命令查看CPU、内存、磁盘IO的使用情况;通过以上步骤,可在Linux上利用Swagger完成API性能测试,从基础验证到系统级压力测试,再到自动化和深度分析,全面保障API的性能和稳定性。