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))
# 返回的结果:
# { "表字段名": "字段值" }
相关推荐
IT大白鼠8 分钟前
Ansible vs 运维智能体:自动化工具的优劣对比与适用场景分析
运维·自动化·ansible
老王谈企服11 分钟前
从技术选型角度看跨境电商全流程自动化解决方案的演进
运维·自动化
YF021111 分钟前
深度解构Android OkDownload断点续传
android·数据库·okhttp
LPieces13 分钟前
【LPieces-UI】02-Icon组件的设计与实现
前端·vue.js
卤蛋fg614 分钟前
vxe组件 vxe-table 权限控制:通过 permission-code 实现按钮级显隐
vue.js
测试员周周14 分钟前
【Appium 系列】第04节-Page Object 模式 — BasePage 基类设计
开发语言·数据库·人工智能·python·语言模型·appium·web app
海棠Flower未眠16 分钟前
Spring Boot 2.4后,特定配置文件不能再使用spring.profiles.include的解决思路
数据库·spring boot·spring
jran-21 分钟前
MySQL单表操作
数据库·mysql
测试员周周23 分钟前
【Appium 系列】第02节-环境搭建 — Android + iOS 双平台环境配置
开发语言·人工智能·功能测试·appium·自动化·测试用例·web app
北秋,26 分钟前
SQL Server(Microsoft 数据库)基础用法 + 数字型 + 字符型 完整联合注入
数据库·microsoft