【接口平台】数据库连接调试

接口平台提供配置数据库地址后直接根据名称即可根据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)

虽然实现的姿势有些问题,但是功能实现,期待后续的优化吧

posted @ 2019-10-14 21:12  guanqinghua  阅读(56)  评论(0编辑  收藏  举报