centos

centos swagger自动化测试

小樊
37
2025-08-02 16:51:44
栏目: 智能运维

在CentOS系统上进行Swagger自动化测试,可以按照以下步骤进行:

1. 安装Swagger

首先,需要在CentOS系统上安装Swagger。可以通过以下几种方法进行安装:

使用pip安装

确保Python和pip已安装:

sudo yum install python3 python3-pip

安装Swagger:

pip3 install swagger-ui-express

创建一个简单的Swagger应用(可选):

from flask import Flask
from flask_swagger_ui import get_swaggerui_blueprint

app = Flask(__name__)
SWAGGER_URL = '/api-docs'
API_URL = 'http://petstore.swagger.io/v2/swagger.json'  # 这里可以使用你自己的API文档URL
swaggerui_blueprint = get_swaggerui_blueprint(SWAGGER_URL, API_URL, config={'app_name': "Swagger UI"})
app.register_blueprint(swaggerui_blueprint, url_prefix=SWAGGER_URL)

if __name__ == '__main__':
    app.run(debug=True)

运行应用:

python3 app.py

然后在浏览器中访问 http://localhost:5000/api-docs 即可看到Swagger UI界面。

使用Docker安装

安装Docker:

sudo yum install docker
sudo systemctl start docker
sudo systemctl enable docker

拉取Swagger UI镜像:

docker pull swaggerapi/swagger-ui-express

运行容器:

docker run -p 80:80 -d swaggerapi/swagger-ui-express

这样,Swagger UI将会在 http://localhost 上可用。

2. 配置Swagger

在CentOS上配置Swagger的步骤如下:

  1. 安装Node.js和npm:
sudo yum install gcc-c make -y
curl -sL https://rpm.nodesource.com/setup_12.x | bash -
sudo yum install nodejs -y

验证Node.js和npm是否安装成功:

node -v
npm -v
  1. 安装Swagger Editor和Swagger UI:
mkdir /opt/swagger
cd /opt/swagger

# 安装Swagger Editor
wget https://github.com/swagger-api/swagger-editor/archive/v3.14.0.tar.gz
tar -xf v3.14.0.tar.gz
cd swagger-editor-3.14.0
npm install -g http-server
http-server -p 8080

# 安装Swagger UI
wget https://github.com/swagger-api/swagger-ui/archive/v3.34.0.tar.gz
tar -xf v3.34.0.tar.gz
cd swagger-ui-3.34.0
npm init -y
npm install express --save
cat > index.js <<EOF
var express = require('express');
var app = express();
var http = require('http');
app.use('/static', express.static('public'));
app.get('/', function (req, res) { res.send('Hello World!'); });
app.listen(3000, function () { console.log('Example app listening on port 3000!'); });
EOF
node index.js

访问 http://your-server-ip:3000/static/index.html 确认可以访问。

3. 自动化测试

结合Swagger进行自动化测试,可以使用以下工具和方法:

使用Swagger Codegen生成测试框架

安装Swagger Codegen:

wget https://repo1.maven.org/maven2/io/swagger/swagger-codegen-cli/2.4.19/swagger-codegen-cli-2.4.19.jar -O swagger-codegen-cli.jar

生成Python测试客户端:

java -jar swagger-codegen-cli.jar generate -i https://petstore.swagger.io/v2/swagger.json -l python -o /tmp/python-api-client

结合Postman/Newman进行自动化测试

安装Newman:

npm install -g newman

从Swagger导入到Postman集合:

# (使用Postman GUI导入后导出为JSON)

运行测试:

newman run my_api_collection.json --environment=test_environment.json --reporters cli,html

使用Schemathesis进行基于属性的测试

安装Schemathesis:

pip install schemathesis

运行测试:

schemathesis run https://petstore.swagger.io/v2/swagger.json --checks all --base-url http://localhost:8080 --hypothesis-max-examples=100

结合Dredd进行API一致性测试

安装Dredd:

npm install -g dredd

创建配置文件:

echo '{
  "language": "python",
  "server": "python -m SimpleHTTPServer 8080",
  "blueprint": "apiary.apib",
  "endpoint": "http://localhost:8080"
}' > dredd.yml

运行测试:

dredd

使用Rest-Assured框架

示例测试代码:

given()
  .contentType("application/json")
  .body("{ \"id\": 1, \"name\": \"Fido\" }")
.when()
  .post("/v2/pet")
.then()
  .statusCode(200)
  .body("name", equalTo("Fido"));

通过以上步骤,你可以在CentOS系统上进行Swagger自动化测试。根据具体需求,可以选择合适的工具和方法进行API文档生成、可视化、测试和自动化测试。

0
看了该问题的人还看了