数据工厂系列(27)用例详情&参数组合增删改查-下篇

185 阅读3分钟

大家好~我是小方,欢迎大家关注笋货测试笔记体完记得俾个like

回顾

在上篇中,用例的展示功能我们已经开发完毕,列表的展示逻辑还是挺复杂的,接着我们得把目光转向用例的操作,长话短说,今天要完成的是用例详情展示以及用例参数组合的增删改查···

顺便说一句,数据工厂的前端项目我已经全部开源了,大家可拉取最新的代码体验一下···

用例详情展示

给大家看一下,用例详情具体是这样子的 这里可以通过case表关联project表查出所有的所有信息

    @classmethod
    def case_detail_by_id(cls, id: int, user = None):
        """
        获取某个造数场景
        :param id: 用例id
        :param user: 用户数据
        :return:
        """
        with Session() as session:
            case = session.query(DataFactoryCases.owner, DataFactoryCases.group_name, DataFactoryCases.description, DataFactoryCases.create_name, DataFactoryCases.create_time, DataFactoryCases.update_time,
                                 DataFactoryCases.id, DataFactoryCases.path, DataFactoryCases.project_id, DataFactoryCases.name, DataFactoryCases.example_param_in, DataFactoryCases.example_param_out,
                                 DataFactoryCases.param_in, DataFactoryCases.param_out, DataFactoryCases.title, DataFactoryProject.project_name, DataFactoryProject.git_project, DataFactoryProject.directory).\
                join(DataFactoryCases, DataFactoryCases.project_id == DataFactoryProject.id).\
                filter(DataFactoryCases.id == id,DataFactoryCases.del_flag == 0).first()
            if user:
                ProjectRoleDao.read_permission(case.project_id, user)
            if case is None:
                raise Exception("场景不存在")
            return case

这里逻辑比较简单,先不解释,至于这里的user数据为啥为空,不为空时判断权限,接着看后面你就知道了

详情接口前端接上后,展示美美哒

用例参数组合

参数组合顾名思义就是造数脚本的入参组合,数据工厂上的参数组合,其实就是将入参组合保存下来,给其他人作为一个demo示例或者生成外调链接给到其他人使用,譬如一个创建订单脚本,我要创建待付款的订单,入参是type=1,商品数据xxx,我们将该参数保存下来,其他人就可以快速知道,哦~用这个商品数据就可以创建待付款的订单数据;也可以将外调链接复制给到产品、测试、开发使用,岂不是美滋滋···

  • 设计表模型
from sqlalchemy import Column,INT,Text,String
from app.models.base import FunBaseModel

class DataFactoryCasesParams(FunBaseModel):
    """参数表"""
    __tablename__ = 'data_factory_cases_params'

    cases_id = Column(INT, nullable=False, comment="造数场景id")
    params = Column(Text, nullable=True, comment="请求参数")
    name = Column(String(32), nullable=False, comment="参数组合名称")
    out_id = Column(String(64), nullable=False, comment="外链id")

    def __init__(self, cases_id, params, name, out_id, user, del_flag=0, id=None):
        super().__init__(create_id=user['id'], create_name=user['username'], del_flag=del_flag, id=id)
        self.cases_id = cases_id
        self.params = params
        self.name = name
        self.out_id = out_id

表的话,主要存用例id、参数组合名称和外链id

  • 新增参数组合

比较普通的单表插入,插入之前先校验是否存在,是否重复

  • 编辑参数组合

也比较简单,这里先不说了

  • 删除参数组合

直接根据主键id查出数据,再置为删除

  • 参数组合列表

通过用例id查出所有的参数组合,再进行分页

  • 前端页面

    • 保存参数组合

    • 编辑参数组合

    • 参数组合展示

总结

用例详情以及用例的参数组合增删改查已经开发完毕,本篇还是比较简单···前端相关的页面,大家可看看前端项目源码,前端相关的暂时pass···下篇我们来进行用例执行的开发以及日志记录/展示···未完待续···