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))
# 返回的结果:
# { "表字段名": "字段值" }
相关推荐
counting money3 分钟前
Spring框架基础(依赖注入-全注解形式)
java·数据库·spring
计算机安禾10 分钟前
【Linux从入门到精通】第33篇:数据库MySQL/MariaDB安装与基础调优
linux·数据库·mysql
瀚高PG实验室14 分钟前
ERROR: invalid input syntax for type integer: “a“
数据库·瀚高数据库
S1998_1997111609•X14 分钟前
论next/js在打击省份及犯罪行为集团的系统分析[特殊字符]设计
网络·数据库·百度·ssh·开闭原则
dfdfadffa19 分钟前
如何创建仅在首次订阅时执行一次计算的 RxJS 懒加载 Observable
jvm·数据库·python
光影少年20 分钟前
前端SSR和ssg区别
前端·vue.js·人工智能·学习·react.js
Irene199121 分钟前
Oracle 中:为什么 from 子查询后面需要一个别名
数据库·oracle
m0_6245785922 分钟前
SQL分组后如何计算移动平均值_利用窗口函数AVG配合ROWS
jvm·数据库·python
搞科研的小刘选手26 分钟前
【高届数传感机电会议】第十二届传感器、机电一体化和自动化系统国际学术研讨会(ISSMAS 2026)
运维·人工智能·自动化·控制·传感器·传感·机电
2401_8242226929 分钟前
如何修复待办事项列表无法添加任务的 JavaScript 错误
jvm·数据库·python