您的位置:首页 > 新闻 > 热点要闻 > Django+vue自动化测试平台(26)-- 接口自动化测试之连接数据库执行sql

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

2024/10/11 16:55:31 来源:https://blog.csdn.net/ljyljyyeah/article/details/140264730  浏览:    关键词:Django+vue自动化测试平台(26)-- 接口自动化测试之连接数据库执行sql

概述

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

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

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

函数封装

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 resultelif 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_dictexcept Exception as e:logger.info("数据库查询失败,原因:" + str(e))
# 返回的结果:
# { "表字段名": "字段值" }

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com