Django+vue自动化测试平台(26)-- 接口自动化测试之连接数据库执行sql

概述

做过接口自动化的朋友都知道,接口自动化很重要的一个环节就是,结果对比。

结果对比又分很多种:

  • 响应结果对比
  • 入库对比
  • redis对比
  • 等...

今天就来讲讲怎么使用python连接数据,并执行sql查询数据,示例:mysql,clickhouse

函数封装

python 复制代码
def local_db_execute(data):
    try:
        db = Api_db_config.objects.filter(id=data["db_id"]).values().first()
        # db是维护在数据库里的配置,通过db_id查询相关配置
        if db["db_type"] == 1:
            conn = pymysql.connect(host=db["db_host"],
                                   user=db["db_username"], passwd=db["db_password"],
                                   db=db["db_name"], port=int(db["db_port"]))
            cur = conn.cursor()

            cur.execute(f"SELECT * FROM {data['table_name']} where {data['where']} limit 1")
            result = [dict(zip([column[0] for column in cur.description], row)) for row in cur.fetchall()]
            return result
        elif db["db_type"] == 2:
            # 建立连接,注意这里的参数赋值方式
            cur = Client(host=db["db_host"], port=int(db["db_port"]), user=db["db_username"],
                         password=db["db_password"], database=db["db_name"])
            result = cur.execute(f"SELECT * FROM {data['table_name']} where {data['where']} limit 1")
            result_dict = [{column: value for column, value in zip(result.columns, result.fetchone())}]
            cur.disconnect()
            return result_dict

    except Exception as e:
        logger.info("数据库查询失败,原因:" + str(e))
# 返回的结果:
# { "表字段名": "字段值" }
相关推荐
国冶机电安装几秒前
非标系统控制柜制造:从特殊工况到定制控制的完整解析
数据库·制造
雨辰AI1 分钟前
完整版信创微服务国产化架构实战:Nacos+Seata+Redis + 人大金仓(生产可落地)
数据库·redis·微服务·架构·政务
网管NO.114 分钟前
SQL 模糊查询 + NULL 空值。LIKE 通配符 % 和_、IS NULL
数据库
Mr. zhihao14 分钟前
Redis 内存管理深度解析:过期删除与内存淘汰策略
数据库·redis·缓存
九皇叔叔16 分钟前
高斯性能分析【第一天】单表执行计划分析
java·数据库·性能分析·执行计划·gauss
笔优站长19 分钟前
vue-sign-canvas v2 重构复盘:从 Vue 2 签名板到 Vue 3 + TypeScript 组件库
前端·vue.js
Aolith23 分钟前
事件驱动设计:我如何为校园论坛实现消息通知功能
前端·vue.js
代码煮茶24 分钟前
Vue3 Mock 数据实战 | 用 Mockjs + vite-plugin-mock 搭建前端独立开发环境
javascript·vue.js
難釋懷29 分钟前
Redis内存回收-过期key处理
数据库·redis·缓存
KaMeidebaby29 分钟前
卡梅德生物技术快报|PROTAC 药物降解蛋白原理及数据库平台开发全流程
前端·数据库·其他·百度·新浪微博