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

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

回顾

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

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

用例详情展示

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

python 复制代码
    @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,我们将该参数保存下来,其他人就可以快速知道,哦~用这个商品数据就可以创建待付款的订单数据;也可以将外调链接复制给到产品、测试、开发使用,岂不是美滋滋···

  • 设计表模型
python 复制代码
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···下篇我们来进行用例执行的开发以及日志记录/展示···未完待续···

相关推荐
hhzz1 小时前
Python大数据实战(十六):音乐推荐系统——基于协同过滤算法构建个性化歌单引擎
大数据·人工智能·python·数据挖掘·数据分析
SunnyDays10112 小时前
Python PDF 转 Markdown 详解(转换整个文档,特定页面,表格,扫描 PDF)
python·pdf 转 markdown·pdf 转 md·扫描 pdf 转 md·pdf 表格转 md
2601_954706492 小时前
云手机 API 自动化实战:Python 批量控机、挂机脚本完整实现
python·智能手机·自动化
Alan_6916 小时前
聊聊 Swagger/Postman/Apifox 的真实选型与 Python 项目实战
python·测试工具·postman
智慧物业老杨7 小时前
物业绿化数智化权责管控方案:基于工单平台的双层权限追溯模块落地实践
python
Metaphor6927 小时前
使用 Python 在 Word 文档中添加批注
python·word
FreakStudio8 小时前
WIZnet 开源方案分享:W55MH32 开发板 + 小智 AI实现以太网版本的小智机器人
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy·电子计算机
会周易的程序员8 小时前
使用 pybind11 封装 C++ 日志库 microLog 为 Python 模块
java·c++·python·物联网·架构·日志·aiot
一只专注api接口开发的技术猿8 小时前
电商评论自动化监控与情感数据分析完整落地教程(附可直接运行 Python 代码)
大数据·数据库·python·数据分析·自动化
HAPPY酷8 小时前
【ROS2】 Conda 环境搭建(命令行版)
linux·运维·python·ubuntu·机器人·conda