首页 > 数据库技术 > 详细

从接口自动化测试框架设计到开发(八)--python操作数据库

时间:2020-03-12 16:55:23      阅读:80      评论:0      收藏:0      [点我收藏+]

1.连接数据库查询数据

安装mysql驱动,导入模块不报错就行

pip install -i https://pypi.douban.com/simple/ mysqlclient

技术分享图片

 

 

# -*- coding: utf-8 -*-
# @Author: jiujiu
# @Date:   2020-03-12 14:39:11
# @Last Modified time: 2020-03-12 14:51:48
import MySQLdb
conn = MySQLdb.connect(
        host=10.2.40.217,
        port=3306,
        user=root,
        passwd=123456,
        db=zc-car-info-manage,
        charset=utf8
        )
cur = conn.cursor()  #创建一个游标对象
cur.execute("select * from t_sys_user ")   #执行SQL语句,注意这里不返回结果,只是执行而已
print(cur.fetchall())#fetchall方法返回所有匹配的元组,给出一个大元组(每个元素还是一个元组);fetchone()只给出一条数据

执行结果

技术分享图片

 

 

2.获取数据库数据重构及数据转换

# -*- coding: utf-8 -*-
# @Author: jiujiu
# @Date:   2020-03-12 14:39:11
# @Last Modified time: 2020-03-12 15:26:35
import MySQLdb.cursors
import json
class operation_db:
    """docstring for operation_db"""
    def __init__(self):
        self.conn = MySQLdb.connect(
            host=10.2.40.217,
            port=3306,
            user=root,
            passwd=123456,
            db=zc-car-info-manage,
            charset=utf8,
            cursorclass=MySQLdb.cursors.DictCursor        #把表的列名显示出来
            )
        self.cur = self.conn.cursor()  #创建一个游标对象
    #查询一条数据
    def search_one(self,sql):
        self.cur.execute(sql)   #执行SQL语句,注意这里不返回结果,只是执行而已
        result = self.cur.fetchone()#fetchall方法返回所有匹配的元组,给出一个大元组(每个元素还是一个元组);fetchone()只给出一条数据
        result = json.dumps(result)#以json格式展示
        print(result)
        return result
if __name__ == __main__:
    op_mysql = operation_db()
    res = op_mysql.search_one("select * from t_sys_user")
    print(type(res))#输出返回值的类型,是字符串格式

运行结果:

技术分享图片

 

 

3.返回数据和数据库数据进行对比

 

        #通过sql获取预期结果
    def get_expect_data_for_mysql(self,row):
        op_mysql = operation_db()
        sql = self.get_expect_data(row)
        res = op_mysql.search_one(sql)
        return res.decode(unicode-escape)

 

def is_equal_dict(self,dict_one,dict_two):
    ‘‘‘ 判断2个字典‘‘‘
    if isinstance(dict_one,str):
        dict_one = json.loads(dict_one)
    if isinstance(dict_two,str):
        dict_two = json.loads(dict_two)
    return cmp(dict_one,dict_two)
    if self.com_util.is_equal_dict(expect,res) == 0:#判断,需去掉结果的格式化
                    self.data.write_result(i,pass)
                    pass_count.append(i)
                else:
                    self.data.write_result(i,res)
                    fail_count.append(i)

 

从接口自动化测试框架设计到开发(八)--python操作数据库

原文:https://www.cnblogs.com/dydxw/p/12469972.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!