在Linux系统下,Swagger(现在称为OpenAPI)可以通过多种方式实现API自动化测试。以下是一些常见的方法和步骤:
安装Swagger Codegen CLI:
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
生成客户端SDK或测试代码:
java -jar swagger-codegen-cli.jar generate -i http://localhost:8080/v2/api-docs -l python -o ./generated-client
用测试框架编写测试逻辑:
例如,使用Python的pytest
和requests
库编写测试脚本:
import pytest
import requests
def test_get_user():
response = requests.get('http://localhost:8080/api/users')
assert response.status_code == 200
def test_create_user():
user_data = {
"name": "John Doe",
"email": "johndoe@example.com"
}
response = requests.post('http://localhost:8080/api/users', json=user_data)
assert response.status_code == 201
assert response.json()['name'] == "John Doe"
运行测试:
pytest test_api.py
导出Swagger为Postman Collection: 可以使用Swagger Editor或Swagger Codegen将Swagger导出为Postman Collection JSON文件。
安装Newman(Postman的CLI工具):
npm install -g newman
运行测试:
newman run your-swagger-collection.json
支持CI/CD环境执行:
newman run your-swagger-collection.json -r cli,json,html
安装Dredd:
npm install -g dredd
运行测试:
dredd swagger.yaml http://localhost:8080
安装Swagger Codegen CLI:
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 java -o ./generated-client
编写自动化测试脚本: 使用JUnit或其他测试框架编写测试逻辑,并使用相应的运行工具执行测试。
拉取并运行Swagger Editor和Swagger UI:
docker pull swaggerapi/swagger-editor:v4.6.0
docker run -d -p 38080:8080 swaggerapi/swagger-editor:v4.6.0
docker pull swaggerapi/swagger-ui:v4.15.5
docker run -d -p 38081:8080 swaggerapi/swagger-ui:v4.15.5
配置和使用Swagger: 通过浏览器访问Swagger Editor和Swagger UI,进行API文档的导入和测试。
通过以上几种方法,可以在Linux系统下利用Swagger实现API自动化测试,提高开发和测试效率。