栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【Python自动化测试24】接口自动化测试实战四

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Python自动化测试24】接口自动化测试实战四

文章目录

一、前言

二、自动化数据库理论与操作
2.1 接口自动化为何要操作数据库2.2 接口自动化操作数据库的利弊2.3 Python操作数据库2.4 操作数据库封装

一、前言

  本文章主要会讲解接口自动化测试中Python如何操作数据库、为何要操作数据库,有哪些利弊,除此之外下方有系列文章的传送门,还在持续更新中,感兴趣的小伙伴也可以前往查看,话不多说,让我们一起看看吧~

系列文章:
  系列文章1:【Python自动化测试1】遇见Python之美
  系列文章2:【Python自动化测试2】Python安装配置及PyCharm基本使用
  系列文章3:【Python自动化测试3】初识数据类型与基础语法
  系列文章4:【Python自动化测试4】字符串知识总结
  系列文章5:【Python自动化测试5】列表与元组知识总结
  系列文章6:【Python自动化测试6】字典与集合知识总结
  系列文章7:【Python自动化测试7】数据运算符知识合集
  系列文章8:【Python自动化测试8】流程控制语句讲解
  系列文章9:【Python自动化测试9】函数知识合集
  系列文章10:【Python自动化测试10】文件基础操作
  系列文章11:【Python自动化测试11】模块、包与路径知识合集
  系列文章12:【Python自动化测试12】异常处理机制知识合集
  系列文章13:【Python自动化测试13】类、对象、属性与方法知识合集
  系列文章14:【Python自动化测试14】Python自动化测试基础与进阶练习题
  系列文章15:【Python自动化测试15】unittest测试框架的核心概念与作用
  系列文章16:【Python自动化测试16】测试用例数据分离
  系列文章17:【Python自动化测试17】openpyxl二次封装与数据驱动
  系列文章18:【Python自动化测试18】配置文件解析与实际应用
  系列文章19:【Python自动化测试19】日志系统logging讲解
  系列文章20:【Python自动化测试20】接口自动化测试框架模型搭建
  系列文章21:【Python自动化测试21】接口自动化测试实战一_接口概念、项目简介及测试流程问答
  系列文章22:【Python自动化测试22】接口自动化测试实战二_接口框架修改及用例优化
  系列文章23:【Python自动化测试23】接口自动化测试实战三_动态参数化与数据伪造

二、自动化数据库理论与操作
2.1 接口自动化为何要操作数据库

  接口自动化中操作数据库主要是根据业务层面决定的,部分情况例如查询手机号、或个人信息时需要操作数据库,有时候也有可能需要删除某个内容,通常而言不会这么做罢了。

  

2.2 接口自动化操作数据库的利弊
"""
利:
1、能够根据我们需要的业务情况来解决一定的业务问题

弊:
1、数据库的操作本身就会让自动化变得慢,需要建立连接 -- 查询 等等
2、数据库本身是一种依赖, 我们能不操作数据库尽可能不操作
"""

  

2.3 Python操作数据库

  要操作数据库,需要先进行pymysql库的安装,按照对应语法填写好对应数据即可:

import pymysql

"""
1、连接数据库:输入用户名,密码,地址,端口
2、游标:使用游标读取数据、修改数据(执行sql语句)
3、获取操作结果
4、关闭游标
5、关闭数据库连接
"""

conn = pymysql.connect(user="future",
                password="XXXXXX",
                host="XX.XX.XX.XX",
                port=3306
)

cursor = conn.cursor()

# 执行sql
sql = "SELECt mobile_phone,id,reg_name FROM XXXXXXX.member WHERe mobile_phone = 137XXXXXXXX"
cursor.execute(sql)

# 获取一个结果每条记录用元组表示
res = cursor.fetchone()
print(res)

# 关闭
cursor.close()
conn.close()

  输出的数据是元组,元组数据不可修改,我们需要进行类型转换,如要输出字典,需要加上DictCursor:

import pymysql
from pymysql.cursors import DictCursor

"""
1、连接数据库:输入用户名,密码,地址,端口
2、游标:使用游标读取数据、修改数据(执行sql语句)
3、获取操作结果
4、关闭游标
5、关闭数据库连接
"""

conn = pymysql.connect(user="future",
                password="XXXXXX",
                host="XX.XX.XX.XX",
                port=3306
)

cursor = conn.cursor(DictCursor)

# 执行sql
sql = "SELECt mobile_phone,id,reg_name FROM XXXXXXX.member WHERe mobile_phone = 137XXXXXXXX"
cursor.execute(sql)

# 获取一个结果每条记录用元组表示
res = cursor.fetchone()
print(res)

# 关闭
cursor.close()
conn.close()


  

2.4 操作数据库封装

  我们需要进行函数封装,数据库内容也属于公用内容,也可以放入至common包下,函数封装后:

class DBHandler:

    def __init__(self, host=setting.db_host, port=setting.db_port,
                 user=setting.db_user, password=setting.db_pwd):
        self.conn = pymysql.connect(user=user,
                                    password=password,
                                    host=host,
                                    port=port,
                                    autocommit=True
                                    )

    def query_one(self, sql, cursor_type=DictCursor):
        cursor = self.conn.cursor(cursor_type)
        cursor.execute(sql)
        data = cursor.fetchone()
        cursor.close()
        return data

    def query_all(self, sql, cursor_type=DictCursor):
        cursor = self.conn.cursor(cursor_type)
        cursor.execute(sql)
        data = cursor.fetchall()
        cursor.close()
        return data

    def query(self, sql, one=True, cursor_type=DictCursor):
        if one:
            return self.query_one(sql, cursor_type)
        return self.query_all(sql, cursor_type)

    def close(self):
        self.conn.close()

    # 自己实现上下文管理器
    # def __enter__(self):
    #     return self
    #
    # def __exit__(self, exc_type, exc_val, exc_tb):
    #     return self.close()


db_module = DBHandler()

if __name__ == '__main__':
    db = DBHandler()
    sql = 'select mobile_phone from futureloan.member limit 5'
    res = db.query(sql, one=False)
    db.close()
    print(res)
    #

    # with DBHandler_2() as db:
    #     sql = 'select mobile_phone from futureloan.member limit 5'
    #     res = db.query(sql, one=False)
    #     print(res)
# 数据库配置项
db_host = "XX.XX.XX.XX"
db_port = XXXX
db_user = "future"
db_pwd = "XXXXXX"

  
  

  好啦~以上就是本次文章分享的全部内容啦,你学会了吗?希望能给大家带来帮助哦!

  
  

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/754274.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号