【接口平台】数据库连接调试
接口平台提供配置数据库地址后直接根据名称即可根据sql操作对应的数据库
大家经常遇到配置数据库后,在执行用例时对应的操作并没有成功,但是这个语句直接在navicat或其他界面化的工具中执行是正确无误的,很多时候可能是因为数据库的信息配置有误导致,故需要完成一个功能,即提供数据库连接测试
其实数据库目前支持的类型包括mysql和redis,python中是否有根据连接属性,然后ping或者其他字段判断连接是否成功呢?
mysql直接连接,若连接失败则抛出异常
def mysql(self,host,port,username,pwd,table):
"""
数据库连接测试
"""
conf = {'host': host, 'port': port, 'user': username, 'password': pwd, 'db': table,
'charset': 'utf8mb4',
'cursorclass': pymysql.cursors.DictCursor}
try:
connection = pymysql.connect(**conf)
connection.close()
return {'ping': True, 'message': '连接成功'}
except Exception as e:
return {'ping': False, 'message': str(e)}
redis提供了ping的方式,但ping失败同样是抛出异常的方式
def redis(self,host,port,username,pwd,table):
"""
redis连接测试
"""
try:
redis.Redis(host=host, port=port, password=pwd, db=table).ping()
return {'ping': True, 'message': '连接成功'}
except Exception as e:
return {'ping': False, 'message': str(e)}
通过动态的方式调用
def db_ping(self,db_type,host,port,username,pwd,table):
"""
db连接调试
"""
return getattr(DbPing(),db_type)(host,port,username,pwd,table)
虽然实现的姿势有些问题,但是功能实现,期待后续的优化吧