一、 环境创建
接口名称:/test_envs/
请求方式:POST
参数格式:JSON
请求参数:
参数 | 变量名 | 类型 | 说明 | 是否必传 |
环境名称 | name | 字符串 | 测试环境名称 | 是 |
项目主机 | host | 字符串 | 项目主机地址 | 是 |
数据库设置 | db | json | 数据库设置 | 否 |
所属项目id | project | 整数 | 所属项目id | 是 |
请求头 | headers | json | 全局请求头 | 否 |
全局变量 | global_variable | json | 环境全局变量 | 否 |
debug模式全局变量 | debug_global_variable | json | 调试模式全局变量 | 否 |
全局工具函数 | global_func | 字符串 | 全局工具函数脚本 | 否 |
请求示例:
json格式参数
{
"name": "ali",
"global_variable": {
"key": "Value"
},
"debug_global_variable": {},
"db": [
{
"name": "db1",
"type": "mysql",
"config": {
"user": "future",
"password": "123456",
"host": "api.lemonban.com",
"port": 3306
}
},
{
"name": "db2",
"type": "mysql",
"config": {
"user": "future",
"password": "123456",
"host": "api.lemonban.com",
"port": 3306
}
},
],
"host": "http://www.hhxpython.com/",
"headers": {},
"global_func": "",
"project": 1
}
返回示例
响应状态码: 201
响应数据:
{
"id": 2,
"name": "ali",
"global_variable": {
"key": "Value"
},
"debug_global_variable": {},
"db": [
{
"name": "db1",
"type": "mysql",
"config": {
"user": "future",
"password": "123456",
"host": "api.lemonban.com",
"port": 3306
}
},
{
"name": "db2",
"type": "mysql",
"config": {
"user": "future",
"password": "123456",
"host": "api.lemonban.com",
"port": 3306
}
}
],
"host": "http://www.hhxpython.com/",
"headers": {},
"global_func": "",
"project": 1
}
二、删除环境
接口名称:/test_envs/环境id/
请求方式:DELETE
参数格式:路径参数
请求参数: 无
返回示例
响应状态码: 204
响应数据:无
三、修改环境
接口名称:/test_envs/环境id/
请求方式:PUT/PATCH
参数格式:JSON
请求参数:
参数 | 变量名 | 类型 | 说明 | 是否必传 |
环境名称 | name | 字符串 | 测试环境名称 | put请求必传 |
项目主机 | host | 字符串 | 项目主机地址 | put请求必传 |
数据库设置 | db | json | 数据库设置 | 否 |
所属项目id | project | 整数 | 所属项目id | put请求必传 |
请求头 | headers | json | 全局请求头 | 否 |
全局变量 | global_variable | json | 环境全局变量 | 否 |
debug模式全局变量 | debug_global_variable | json | 调试模式全局变量 | 否 |
全局工具函数 | global_func | 字符串 | 全局工具函数脚本 | 否 |
请求示例:
json格式参数
{
"name": "ali",
"global_variable": {
"key": "Value"
},
"debug_global_variable": {},
"db": [
{
"name": "db1",
"type": "mysql",
"config": {
"user": "future",
"password": "123456",
"host": "api.lemonban.com",
"port": 3306
}
},
{
"name": "db2",
"type": "mysql",
"config": {
"user": "future",
"password": "123456",
"host": "api.lemonban.com",
"port": 3306
}
},
],
"host": "http://www.hhxpython.com/",
"headers": {},
"global_func": "",
"project": 1
}
返回示例
响应状态码: 200
响应数据:
{
"id": 2,
"name": "ali",
"global_variable": {
"key": "Value"
},
"debug_global_variable": {},
"db": [
{
"name": "db1",
"type": "mysql",
"config": {
"user": "future",
"password": "123456",
"host": "api.lemonban.com",
"port": 3306
}
},
{
"name": "db2",
"type": "mysql",
"config": {
"user": "future",
"password": "123456",
"host": "api.lemonban.com",
"port": 3306
}
}
],
"host": "http://www.hhxpython.com/",
"headers": {},
"global_func": "",
"project": 1
}
四、查看环境列表
接口名称:/test_envs/
请求方式:GET
参数格式:url参数
请求参数:
参数 | 变量名 | 类型 | 说明 | 是否必传 |
项目id | project | 整数 | 所属项目id | 否 |
请求示例:/test_envs/?project=1
返回示例
响应状态码: 200
响应数据:
[
{
"id": 1,
"name": "本地",
"global_variable": {
"key1": "value1",
"key2": "value2"
},
"debug_global_variable": {}, "db": [],
"host": "http://127.0.0.1:8080", "headers": {
"customer-header": "wahaha" },
"global_func": "\"\"\"\n自定义全局工具函数
\n============================\n\"\"\"\nfrom apitestengine.core.tools import *", "project": 1
},
{
"id": 2,
"name": "ali",
"global_variable": {
"key": "Value"
},
"debug_global_variable": {},
"db": [
{
"name": "db1",
"type": "mysql",
"config": {
"user": "future",
"password": "123456",
"host": "api.lemonban.com",
"port": 3306
}
},
{
"name": "db1",
"type": "mysql",
"config": {
"user": "future",
"password": "123456",
"host": "api.lemonban.com",
"port": 3306
}
}
],
"host": "http://www.hhxpython.com/", "headers": {},
"global_func": "",
"project": 1
}
]
五、查看环境
接口名称:/test_envs/环境id/
请求方式:GET
参数格式:路径参数
请求参数:无
返回示例
响应状态码: 200
响应数据:
{
"id": 2,
"name": "ali",
"global_variable": {
"key": "Value"
},
"debug_global_variable": {},
"db": [
{
"name": "db1",
"type": "mysql",
"config": {
"user": "future",
"password": "123456",
"host": "api.lemonban.com",
"port": 3306
}
},
{
"name": "db2",
"type": "mysql",
"config": {
"user": "future",
"password": "123456",
"host": "api.lemonban.com",
"port": 3306
}
}
],
"host": "http://www.hhxpython.com/",
"headers": {},
"global_func": "",
"project": 1
}
六、后端代码
(1). 序列化器
在 projects/serializers.py模块中添加如下序列化器:
class TestEnvSerializer(serializers.ModelSerializer):
"""测试环境序列化器"""
class Meta:
model = TestEnv
fields = '__all__'
(2)视图
class TestEnvViewSet(ModelViewSet):
queryset = TestEnv.objects.all()
serializer_class = TestEnvSerializer
permission_classes = [IsAuthenticated]
# def get_queryset(self):
# queryset = super().get_queryset()
# # 获取参数
# project = self.request.query_params.get('project')
# # 过滤
# if project:
# queryset = queryset.filter(project=project)
# return queryset
filterset_fields = ['project']
(3)路由
from rest_framework.routers import DefaultRouter
from . import views
router = DefaultRouter()
router.register('test_envs',views.TestEnvViewSet)
urlpatterns = router.urls