首页 > 数据库 >数据库断言

数据库断言

时间:2024-04-06 19:57:48浏览次数:19  
标签:断言 数据库 db assert sql data self

import ast
from api.conf.setting import assert_db_info
from api.tools.handle_replace import HandleReplace
from api.tools.handle_db import HandleDb
from api.tools.handle_response import HandleResponse
# 数据库断言
class HandleAssertDb:
    """
        思路:
        1、图片上传接口,返回的是图片上传后的路径,存在tz_attach_file表的file_path字段
        2、将返回的路径提取出来,做成全局变量(HandleAttr类属性)
        3、去excel中增加assert_db字段,写期望结果,和实际结果数据
            {"expected_data": 1, "actual_data": "select count(1) from tz_attach_file  where file_path ='2024/03/c2876474841b479dab280a9b1cfc63a2.png'"}
        4、获取excel中assert_db字段,拿到实际结果actual_data,替换sql语句,再执行sql语句,获取执行结果
        5、拿expected_data的值与actual_data中sql语句执行的结果进行对比断言
        """
    def __init__(self):
        # 参数替换类
        self.replace_data = HandleReplace()
        # 数据库操作
        self.handle_db = HandleDb()
        # 统一从HandleResponse类断言的类里面去断言
        self.handle_response = HandleResponse()
    # 删除换行符和空格 data:str给变量data制定数据格式,好处,可以使用制定格式的方法
    def __delete_space_wraps(self, data: str):
        """
        :param data:excel中获取的请求参数
        :return: 去掉空格和换行符的请求参数
        """
        for str_data in ["\n"]:  # assert_db不能存在空格
            data = data.replace(str_data, "")
        return data
    def assert_db(self, assert_db):  # expected_data,actual_data取数来源读取excel中的assert_db,数据库断言
        """
        :param assert_db: excel中的assert_db字段
        assert_db_info:配置文件setting中读取
        :return:
        """
        if assert_db:  # 判断是否需要进行sql断言
            # 去除空格和换行
            assert_db = self.__delete_space_wraps(assert_db)
            # 三元运算判断assert_db数据类型是否为dict
            assert_db = assert_db if isinstance(assert_db, dict) else ast.literal_eval(assert_db)
            # 拿到预期结果和实际结果
            expected_data = assert_db["expected_data"]
            sql = assert_db["actual_data"]
            # 拿到实际结果extract_data,替换sql语句
            new_sql = self.replace_data.replace_sql(sql=sql)
            # 操作数据库,拿到入库数据
            actual_data = self.handle_db.get_data(sql=new_sql)  # extract_data=[1] int类型
            # 数据断言
            self.handle_response.assert_db(expected_data, actual_data[0])
        else:
            print("excel中assert_db为空,无需进行mysql断言")

 

标签:断言,数据库,db,assert,sql,data,self
From: https://www.cnblogs.com/python-test001/p/18117824

相关文章

  • Redis数据库的入门学习
     关系型数据库和非关系型数据库的区别:简介Redis数据库和MySql数据库的区别:Redis数据库是基于内存的key-value结构的数据库。本质上是内存存储。而MySql数据库是通过数据文件的方式存在磁盘当中,本质上是磁盘存储。且MySql当中是通过二维表存储数据。注:Redis数据库并不......
  • 使用Python插入100万条数据到MySQL数据库并将数据逐步写出到多个Excel
    Python插入100万条数据到MySQL数据库步骤一:导入所需模块和库首先,我们需要导入MySQL连接器模块和Faker模块。MySQL连接器模块用于连接到MySQL数据库,而Faker模块用于生成虚假数据。importmysql.connector#导入MySQL连接器模块fromfakerimportFaker#导入......
  • web学习笔记(五十二)数据库
    目录1.数据库的相关概念1.1什么是数据库1.2常见数据库的分类1.3 传统型数据库的数据组织结构1.4补充2.  使用SQL管理数据库2.1 什么是SQL?2.2 SQL能做什么2.3  SQL的SELECT语句2.4  SQL的INSERTINTO语句2.5 SQL的UPDATE语句2.6 SQL......
  • E-R模型图-->关系模型-->数据库模型图
    一、问候语欢迎你来到我的博客!二、题目三、如何分析问题并绘制E-R模型图1、认识E-R模型三要素  在分析问题前,我们首先要知道E-R模型的三要素分别是实体(用矩形表示)、属性(用椭圆形表示)、联系(用菱形表示)。  客观存在并可相互区分的事物叫实体,例如学生、教师。  实......
  • 阿里云安装Mysql数据库
    阿里云安装mysql数据库安装数据库&创建数据库用户参照以下步骤在Linux实例中安装MySQL数据库新建数据库实例上述文章止步于新建数据库用户,下面是心间数据库实例的操作。mysql-ulhkTest-p登陆mysql(lhkTest是用户名)showdatabases;查询已有数据库createdatabasehome_......
  • CS 7280数据库管理专题
    CS7280数据库管理专题2024春季项目3:大数据分析目标:1.了解Hadoop生态系统和数据分析2.熟悉MapReduce编程和Spark3.获得大数据和数据分析研究经验这将是一个为期一学期的小组项目(由两名学生)。这样做的主要目的项目是为了熟悉大数据平台,包括Hadoop系统,MapReduce编程和基于云的大......
  • Arm架构下麒麟操作系统安装配置Mariadb数据库
    1、安装配置JDK(1)检查机器是否已安装JDK执行java-version命令查看机器是否安装JDK,一般麒麟操作系统默认安装openjdk1.8。  (2)安装指定版本JDK如果麒麟操作系统默认安装的openjdk1.8不符合需求的话,可以卸载机器安装的openjdk1.8并按需安装所需的openjdk版本,此步骤本文不......
  • 游戏攻略|基于Springboot和vue的游戏分享平台系统设计与实现(源码+数据库+文档)
    游戏攻略分享平台目录基于Springboot的在线考试管理系统设计与实现一、前言二、系统设计三、系统功能设计 1、前台:2、后台5.2.1管理员功能模块四、数据库设计 五、核心代码 六、论文参考七、最新计算机毕设选题推荐八、源码获取:博主介绍:✌️大厂码农|毕设布道......
  • MySQL 数据库重置密码
    1.Linux中MySQL数据库重置密码停止服务:systemctlstopmysql打开my.cnf(没有则创建一个):vim/etc/my.cnf在[mysqld]下添加:skip-grant-tables;[mysqld]skip-grant-tables启动数据库:systemctlstartmysqld重置密码:#无需密码,直接登录mysql-uroot-p#设置密码mys......
  • 向量数据库+知识图谱构建高效 RAG 系统
    向量数据库+知识图谱构建高效RAG系统数据的智能化存储向量数据库__RAG中的向量数据库知识图谱__构建智能化的知识体系向量数据库+知识图谱构建高效RAG第一、数据预处理和嵌入第二、检索和信息提取第三、生成和优化第四、多模态融合数据的智能化存储向量数据库是......