前言
本章主要讲述【构建记录】相关功能
之前说过,整个需求的流程是:
--> 当我前端在勾选测试用例后,然后会点击生成计划
这会不仅会将测试计划和测试用例同步关联上,还会同步生成一条构建记录,
且自动调用jenkins,并拿到测试报告链接
那这个操作的话,我们应当在保存测试计划的时候去实现,而上一篇【测试计划】功能的实现,
我们只将【测试计划】和【测试用例】关联起来了,但未生成【构建记录】,也没接入jenkins
那本章的话,我们需要实现的功能:
--> 1、生成【测试计划】的时候,同步生成一条【构建记录】
--> 2、能自动调用jenkins,生成测试报告,并返回给我们
--> 3、根据【测试计划id】,查询当前计划所有的【构建记录】
如果看得比较模糊的话,建议回顾一下我之前写的需求介绍篇,里面附有前端原型图,我写的比较详细了
环境
- flask
- python3.6
- mysql5.7
一、构建记录功能具体代码实现
- 这代码实现就和之前一样,比较简单,直接贴代码了
1、controller层/build_controller.py
"""
构建记录控制层
"""
from flask import request
from flask_restx import Namespace, Resource
from app import api
from do import BuildEntity
from service.build_service import BuildService
from utils.log_utils import logger
build_ns = Namespace("build", description="构建记录管理")
build_service = BuildService()
@build_ns.route("")
class BuildController(Resource):
get_paresr = api.parser()
# 查看的是某个测试计划的构建记录
get_paresr.add_argument("plan_id", type=int, location="args")
@build_ns.expect(get_paresr)
def get(self):
"""
根据测试计划id查询构建记录(单个/所有)
:return:
"""
# 把对象转换成python的字典格式。
plan_id = request.args.get("plan_id")
logger.info(f"获取构建记录通过测试计划ID<===== {
plan_id}")
if plan_id:
build_res = build_service.get_list_by_plan_id(plan_id)
res = [build.as_dict() for build in build_res]
return {
"code": 0, "msg": {
"data": res}}
else:
return {
"code": 40005, "msg": "plan_id is not exist"}
post_paresr = api.parser