四十一、实战演练之接口自动化平台的测试计划接口设计

一、测试计划创建

接口名称: /test_plans/
请求方式: POST
参数格式: JSON
请求参数:

参数

变量名

类型

说明

是否必传

测试计划名称


name

字符串

测试步骤id

项目id


project

整数

测试场景id

测试场景id


scene

json

执行顺序

请求示例:json格式参数

{
"name": "回归测试",
"project": 1,
"scenes": [ 
    1,
	2
	]
}

返回示例
响应状态码:201
响应数据:

{
    "id": 1,
    "create_time": "2022-07-19T17:05:01.498082+08:00",
    "name": "回归测试",
    "project": 1,
    "scenes": [ 
        1,
    	2
    	]
}

二、删除测试计划

接口名称: /test_plans/id/

请求方式: DELETE

参数格式: 路径参数

请求参数: 无

返回示例

响应状态码:204

响应数据:无

三、修改测试计划

接口名称: /test_plans/id/

请求方式: PUT/PATCH

参数格式: JSON

请求参数:

参数

变量名

类型

说明

是否必传

测试计划名称

name

字符串

测试步骤id

项目id

project

整数

测试场景id

测试场景id

scene

json

执行顺序

请求示例:

json格式参数

{
    "name": "回归测试",
    "project": 1,
    "scenes": [ 		
        1,
    	2
	]
}

返回示例

响应状态码:200

响应数据:

{
    "id": 1,
    "create_time": "2022-07-19T17:05:01.498082+08:00",
    "name": "回归测试",
    "project": 1,
    "scenes": [ 
        1,
    	2
    ]
}

四、查看测试计划列表

接口名称: /test_plans/

请求方式: GET

参数格式: url参数

请求参数:

参数

变量名

类型

说明

是否必传

项目id

project

整数

项目id

返回示例

响应状态码:200

响应数据:

[{
    "id": 1,
	"create_time": "2022-07-19T17:05:01.498082+08:00",
	"name": "回归测试", 
    "project": 1,
	"scenes": [ 
        1,
		2
	]
}]

五、查看测试计划

接口名称: /test_plans/id/

请求方式: GET

参数格式: 路径参数

请求参数:

返回示例

响应状态码:200

响应数据:

{
	"id": 1,
	"create_time": "2022-07-19T17:05:01.498082+08:00",
	"name": "回归测试",
	"project": 1,
	"scenes": [ 	
        1,
		2
	]
}

六、 后端代码

1. 序列化器

class TestPlanSerializer(ModelSerializer):
	class Meta:
	model = TestPlan 
    fields = ' all '

2. 视图

class TestPlanViewSet(ModelViewSet):
    """测试计划视图"""
    queryset = TestPlan.objects.all()
    serializer_class = TestPlanSerializer
    permission_classes = [IsAuthenticated]
    filterset_fields = ['project']

    @action(methods=['post'], detail=True)
    def run(self, request, pk, *args, **kwargs):
        # 获取环境id
        env_id = request.data.get('env')
        # 生成测试记录
        serializer = RecordSerializer(data={
            'test_env': env_id,
            'plan': pk,
            'status': '执行中',
            'tester': request.user.username
        })
        # raise_exception这个参数为True,如果校验失败会直接抛出异常
        serializer.is_valid(raise_exception=True)
        record = serializer.save()
        # 同步执行测试计划
        run_plan(plan_id=pk,env_id=env_id,record_id=record.id)
        return Response(serializer.data)

添加了一个action用来进行排序

3. 路由

route.register('test_plans', views.TestPlanViewSet)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值