您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

bubuko 2022/1/25 20:06:14 python 字数 9031 阅读 1377 来源 http://www.bubuko.com/infolist-5-1.html

1.连接数据库查询数据 安装mysql驱动,导入模块不报错就行 pip install -i https://pypi.douban.com/simple/ mysqlclient # -*- coding: utf-8 -*- # @Author: jiujiu # @Date: 2020-03- ...

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


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶