首页主机资讯Linux里Swagger接口如何测试

Linux里Swagger接口如何测试

时间2025-11-10 20:31:03发布访客分类主机资讯浏览956
导读:Linux环境下Swagger接口测试方法 1. 准备工作:安装Swagger相关工具 在Linux系统中,可通过Docker快速部署Swagger的可视化工具(Swagger Editor、Swagger UI),或使用命令行工具(如sw...

Linux环境下Swagger接口测试方法

1. 准备工作:安装Swagger相关工具

在Linux系统中,可通过Docker快速部署Swagger的可视化工具(Swagger Editor、Swagger UI),或使用命令行工具(如swagger CLI)辅助测试。

  • Swagger Editor(在线编辑与调试):
    拉取镜像并运行容器:

    docker pull swaggerapi/swagger-editor:v4.6.0
    docker run -d -p 38080:8080 swaggerapi/swagger-editor:v4.6.0
    

    访问http://localhost:38080即可打开编辑器,支持实时预览接口文档。

  • Swagger UI(可视化测试界面):
    拉取镜像并运行容器:

    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,通过“Import File”导入swagger.json/swagger.yaml文件,即可查看接口详情。

  • Swagger命令行工具(可选,用于本地验证):
    使用npm全局安装:

    npm install -g swagger
    

    可用于验证Swagger文档语法或生成代码。

2. 导入Swagger配置文件

无论使用Swagger Editor还是Swagger UI,都需要将项目的OpenAPI规范文件(swagger.jsonswagger.yaml)导入工具中:

  • 在Swagger Editor中,点击左上角【File】→【Import File】,选择本地配置文件;
  • 在Swagger UI中,通过“Import File”按钮上传文件,或直接输入API地址(如http://localhost:8080/v2/api-docs)。

3. 交互式测试:Swagger UI/Editor的“TRY IT OUT”功能

导入配置文件后,可直接在Swagger UI或Editor中测试接口:

  • 浏览接口列表,找到目标接口(如/user/query-user-info);
  • 点击接口下方的**“TRY IT OUT”**按钮;
  • 输入必要参数(如查询参数、请求体、Headers等,支持JSON、表单等多种格式);
  • 点击**“Execute”**发送请求,查看响应结果(包括状态码、响应体、Headers等)。
    例如,测试一个POST接口时,可在“Request Body”中输入JSON数据:{ "factory":"TestFactory","no":"123"} ,点击“Execute”即可验证接口是否返回预期结果。

4. 命令行测试:使用curl工具

若习惯使用命令行,Linux自带的curl是测试接口的高效工具,支持GET、POST、PUT等多种请求方法:

  • GET请求(参数在URL中)
    curl "http://172.16.110.147:9090/client/selectByPage?limit=10&
        page=1"
    
  • POST请求(表单参数)
    curl -X POST "http://172.16.110.147:9090/factory/insert" \
    -H "Content-Type: application/x-www-form-urlencoded" \
    -d "factoryName=TestFactory&
        no=123&
    remark=TestRemark"
    
  • POST请求(JSON参数)
    curl -X POST "http://172.16.110.147:9090/material/selectAll" \
    -H "Content-Type: application/json" \
    -d '{
    "factory":"TestFactory","materialName":"TestMaterial","offset":0,"page":1}
        '
    
  • 文件上传(FormData)
    curl -X POST "http://172.16.110.147:9090/api/all/order/money" \
    -F "file=@/path/to/file.xlsx" \
    -F "startTime=2020-01-01" \
    -F "endTime=2020-06-30"
    
    执行后,curl会输出接口的响应结果,便于快速验证。

5. 自动化测试:生成代码与脚本

若需要频繁测试或集成到CI/CD流程,可通过以下方式实现自动化:

  • Swagger Codegen生成测试代码
    使用swagger-codegen-cli生成客户端SDK(如Python、Java),再用测试框架(如pytest、JUnit)编写测试脚本。
    示例(生成Python SDK并测试):

    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
    

    编写测试脚本(test_api.py):

    import requests
    
    def test_get_user():
        response = requests.get('http://localhost:8080/api/users')
        assert response.status_code == 200
    

    运行测试:

    pytest test_api.py
    
  • Postman Newman CLI
    将Swagger导出为Postman Collection(通过Swagger Editor/UI),再用Newman执行自动化测试。
    示例:

    npm install -g newman
    newman run your-swagger-collection.json -r cli,json  # 输出CLI结果和JSON报告
    
  • Dredd(针对OpenAPI的测试工具)
    直接解析Swagger文档并测试接口是否符合规范。
    示例:

    npm install -g dredd
    dredd swagger.yaml http://localhost:8080  # 验证接口响应与文档一致
    

自动化测试可将脚本集成到Jenkins、GitLab CI等工具中,实现代码提交后自动运行测试,提高测试效率。

注意事项

  • 确保Swagger UI/Editor容器正在运行,且端口映射正确(如-p 38080:8080);
  • 若接口需要认证(如JWT、API Key),需在Swagger UI的“Authorize”按钮中添加认证信息,或在curl命令中通过-H添加Headers(如-H "Authorization: Bearer xxx");
  • 自动化测试时,需确保测试环境与生产环境隔离,避免影响线上数据。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Linux里Swagger接口如何测试
本文地址: https://pptw.com/jishu/746614.html
Swagger在Linux怎样进行数据验证 Swagger于Linux怎样定制样式

游客 回复需填写必要信息