数据工厂系列(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···下篇我们来进行用例执行的开发以及日志记录/展示···未完待续···

相关推荐
无语的小歪歪3 分钟前
ATF 智测 1.0
python·测试工具·集成测试
czq_26867194878 分钟前
Python打卡第45天
开发语言·python
java_prinln11 分钟前
9. Agent 的长短期记忆系统怎么做的?记忆是怎么存的?粒度是多少?怎么用的?
数据库·python·agent
FOAF-lambda15 分钟前
Python实战:基于OpenCV与单调栈,精准定位PDF中最大的空白区域
python·opencv·pdf
terry60020 分钟前
企业数据查询接口防爬实战:图形验证码服务端校验接入与限流设计(附Python)
python·信息与通信·图形验证码·反爬虫·人机验证·行为验证码·滑动拼图验证
量化炼金 (CodeAlchemy)22 分钟前
【Python】pandas vs polars 简单性能对比测试
开发语言·python·pandas
学习论之费曼学习法24 分钟前
无人值守AI内容矩阵实战(7):Playwright 发布器避坑——编辑器竞态、索引延迟与风控
python·线性代数·矩阵·编辑器·浏览器自动化·playwright·踩坑记录
wuyk55529 分钟前
PyQt6-第06讲-主窗口框架
python·pyqt
ss.li31 分钟前
rppg相关论文阅读笔记10.22
论文阅读·笔记·python
tryCbest31 分钟前
Python之Flask项目部署到阿里云
python·阿里云·flask