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))
# 返回的结果:
# { "表字段名": "字段值" }
相关推荐
PingCAP3 分钟前
Agent 从 Demo 到生产,到底卡在哪?
数据库·tidb·agent
郝学胜-神的一滴13 分钟前
AI 编程智能体 09:零门槛调用教程
人工智能·数据分析·自动化·numpy·pandas·量化投资
SelectDB1 小时前
开源替代怎么选:能力对照、三条部署路径与四类边界速查
数据库·云原生·开源
SelectDB1 小时前
自建与托管怎么选:开源自建、私有化与云上托管三条路径速查
数据库·云原生·开源
这个DBA有点耶1 小时前
深入 OLTP 锁与并发:从行锁到分布式事务的一致性权衡
数据库·架构·产品
SelectDB1 小时前
数仓 TCO 怎么算:五项成本拆解框架速查
大数据·数据库·开源
虚拟世界AI1 小时前
Kronos 时间序列数据库新手部署与实战指南
数据库
愤怒火龙果1 小时前
AI攻防 AIRT03-RAG Exploitation & Vector Database Attacks
数据库·人工智能·网络安全
戴西软件2 小时前
制造研发中的AI视觉与仿真:戴西工程图纸智能审图智能体、戴西3DViz_CAE AI集成与戴西3DViz_CAD AI集成
大数据·运维·人工智能·3d·自动化·制造·rpa
SelectDB2 小时前
高并发 BI 看板怎么撑住:隔离与加速配置速查
大数据·数据库·数据分析