一、测试场景创建
接口名称:/test_scenes/
请求方式:POST
参数格式:JSON
请求参数:
参数 | 变量名 | 类型 | 说明 | 是否必传 |
场景名称 | name | 字符串 | 场景名称 | 是 |
项目id | project | 整数 | 所属项目id | 是 |
请求示例:
json格式参数
{
"name": "登录接口测试", "project": 1,
}
返回示例
响应状态码: 201
响应数据:
{
"id": 1,
"name": "登录接口测试",
"project": 1
}
二、删除测试场景
接口名称:/test_scenes/pk/
请求方式:DELETE
参数格式:路径参数
请求参数: 无返回示例
响应状态码: 204
响应数据:无
三、 修改测试场景
接口名称:/test_scenes/pk/
请求方式:PUT/PATCH
参数格式:JSON
请求参数:
参数 | 变量名 | 类型 | 说明 | 是否必传 |
场景名称 | name | 字符串 | 场景名称 | 是 |
项目id | project | 整数 | 所属项目id | 是 |
请求示例:
json格式参数
{
"name": "注册接口测试",
"task": 1,
}
返回示例
响应状态码: 200
响应数据:
{
"id": 1,
"name": "登录接口测试",
"project": 1
}
四、查看测试场景列表
接口名称:/test_scenes/
请求方式:GET
参数格式:无
请求参数:
参数 | 变量名 | 类型 | 说明 | 是否必传 |
测试计划id | testplan | 整数 | 测试计划id | 否 |
项目id | project | 整数 | 项目id | 否 |
返回示例
响应状态码: 200
响应数据:
[
{
"id": 1,
"name": "登录接口测试",
"project": 1
},
{
"id": 2,
"name": "注册接口测试",
"project": 1
}
]
五、查看测试场景
接口名称:/test_scenes/id/
请求方式:GET
参数格式:路径参数
请求参数:无
返回示例
响应状态码: 200
响应数据:
{
"id": 1,
"name": "登录接口测试",
"project": 1
}
六、 后端代码
1. 序列化器
class TestSceneSerializer(serializers.ModelSerializer):
"""测试场景序列化器"""
class Meta:
model = TestScene
fields = '__all__'
2. 视图
class TestSceneViewSet(ModelViewSet):
"""测试场景视图"""
queryset = TestScene.objects.all()
serializer_class = TestSceneSerializer
permission_classes = [IsAuthenticated]
filterset_fields = ['testplan', 'project']
@action(methods=['post'], detail=True)
def run(self, request, pk, *args, **kwargs):
# 获取环境id
env_id = request.data.get('env')
# 执行测试场景
res = run_scene(pk=pk, env_id=env_id)
return Response(res)
3. 路由
route.register('test_scenes', views.TestSceneViewSet)