如何使用python连接mysql数据库 ?编写自动化测试进行连接数据库你离不开它。 您所在的位置:网站首页 python连接wincc数据库 如何使用python连接mysql数据库 ?编写自动化测试进行连接数据库你离不开它。

如何使用python连接mysql数据库 ?编写自动化测试进行连接数据库你离不开它。

2024-04-18 10:12| 来源: 网络整理| 查看: 265

1.常用数据库模块

在做自动化测试时,我们经常会查库的需求 ,那么该如何使用python去查找数据库呢 ? 这里介绍一个python的第三方包PyMySQL . 通过它使用python语言可以连接mysql数据库 。

以下为安装和验证 :

#安装: pip install pymysql #验证: pip show pymysql

2.数据库操作流程

首先我们可以通过查看客户端工具连接数据库的流程 :

如果使用pymysql进行连接数据库的流程具体如下:

导包创建数据库连接获取游标对象执行操作关闭游标对象关闭数据库连接

将工具和pymysql的连接流程放在一起做个比对,将会是如下:

3.使用pymysql操作3.1 建立连接

如果想使用pymysql操作数据库 ,你就需要调用pymysql中的connect()方法建立连接 。

# 建立连接对象 conn = pymysql.connect(host=None,user=None,password="",database=None,port=0,charset="") ​ # 参数说明: host :数据库服务器地址 user :登录用户名 password : 密码 database : 数据库名称 port : 数据库连接端口,默认为3306时刻不填写。 charset : 数据库编码,一般设置为utf8

案例 :使用pymysql进行建立连接数据库 ,连接school数据库

conn = pymysql.connect(host="localhost",user="root",password="root",database="school",charset='utf8')3.2常用方法

常用的操作数据库方法:

cursor() : 获取游标对象 close() : 关闭对象execute(sql) : 执行SQL语句 ,sql参数为需要传入的SQL语句。fetchone() : 查询一条数据返回,从指针的下一条开始查一条数据。 。fetchmany(num) : 查询num条数据返回fetchall() : 获取全部的返回行 rowcount : 获取execute()方法执行后影响的行数

将以上的方法和操作步骤进行对应

3.3项目案例

对数据库表数据进行查询

""" 连接数据库的流程 : 1. 导包 :import pymysql 2. 建立连接 : connect(host,user,password,port,database,chaset) 3. 创建游标 : cursor() 4. 执行SQL语句 (1) 执行SQL :execute(sql) (2) 查询一条数据 : fetchone() (3) 查询多条数据 : fetchmany(number) , number代表的是传入多条数据 (4) 查询所有数据 : fetchall() 5. 关闭游标 : close() 6. 关闭连接 : close() """ ​ # 1. 导包 import pymysql ​ # 2. 建立连接对象 connect = pymysql.connect(host='localhost',user='root',password='root',database='school',charset='utf8') ​ print(connect) ​ # 3. 创建游标 cursor = connect.cursor() ​ # 4. 执行SQL语句 sql = "select * from students" res = cursor.execute(sql) print(res) ​ # 需求1 :查询所有的数据 # all_data = cursor.fetchall() # print(all_data) , 查询结果返回一个元组,每一条数据也是一个元组 ​ # 需求2 : 查询一条数据 # one_data = cursor.fetchone() # print(one_data) ,返回的这条数据为元组 ​ # 需求3 : 查询5条数据 five_data = cursor.fetchmany(5) print(five_data) # 查询结果返回一个元组,每一条数据也是一个元组 ​ # 5. 关闭游标 cursor.close() ​ # 6. 关闭连接对象 connect.close() ​ # 总结 :以上的三个查询方法,若只返回一条数据 ,这一条数据就在一个元组中。若返回多条数据 ,每一条数据是构成一个元组 ,然后多条数据又放在一个大的元组中。

对数据库表数据进行增删改

​ # 1. 导包 import pymysql ​ # 2. 建立连接对象 connect = pymysql.connect(host='localhost',user='root',password='root',database='school',charset='utf8') ​ print(connect) ​ # 3. 创建游标 cursor = connect.cursor() ​ # 4. 执行SQL语句 #需求1 :数据的修改 # sql = "update students set age = 54 where name = '王伟'" # res = cursor.execute(sql) # print(res) ​ # 需求2数据的插入 # sql = "insert into students values(27,'李四',19,'男','2班',345678943,'天津')" # res = cursor.execute(sql) # print(res) ​ # 需求3 :数据的删除 sql = "delete from students where name = '李四'" res = cursor.execute(sql) print(res) ​ ​ # 5. 关闭游标 cursor.close() ​ # 6. 关闭连接对象 connect.close() ​ # 总结 : 使用cursor.execute()方法就可以进行增删改,只需要将SQL语句传入该方法中即可。4.数据库封装

这里的数据库封装其实就是将项目的数据库连接对象封装进来,大家不需要每次进行初始化连接,而是执行调用一个方法就可以执行相应的SQL语句即可 。

当然数据库封装应该是最灵活的一种情况 ,10个人有10个人的封装法 ,这里只给出一种最基本的封装方式 。具体如下 :

​ # 数据库类 import pymysql from setting import DB_INFO from loguru import logger ​ ​ class MysqlClient(object): ​ # 初始化方法,建立连接 def __init__(self): self.conn = pymysql.connect(**DB_INFO) # 初始化数据库连接 ​ # 执行SQL语句的增删改 def execute(self,sql): try: with self.conn.cursor() as cursor: cursor.execute(sql) self.conn.commit() logger.info("执行的SQL语句:{}".format(sql)) except Exception as e: logger.error("执行SQL错误,报错原因{},执行SQL:{}".format(e,sql)) self.conn.rollback() ​ ​ # 执行查询 def get_data(self,sql): try: with self.conn.cursor() as cursor: cursor.execute(sql) result = cursor.fetchall() logger.info("执行的SQL语句:{}".format(sql)) return result except Exception as e: logger.error("执行SQL错误:{},执行SQL:{}".format(e, sql)) # 关闭对象 def close(self): self.conn.close() ​5.项目集成

在项目中添加一个mysql的包名,在此包中除了编写封装数据库连接的代码,主要就是编写各模块需要执行的SQL语句。 具体如下 :

在创建项目框架时,创建mysql包名 。然后此包下创建一个连接数据库的模块 。 比如:mysql_client.py在mysql包下可以创建项目中所需要的SQL语句模块 ,比如user_sql.py在测试用例中调用响应的SQL语句 。5.1 创建连接数据和所需执行的SQL语句模块

5.2 在测试用例中调用对应模块

6.项目总结

至此,我们已经实现了五步了 ,分别是 :

第一 、如何编写一个接口自动化框架 ,在第一篇博文中介绍了 。雨滴测试:软件自动化测试系列之从整体角度了解自动化测试框架(一)

第二、如何使用unittest编写测试用例 ,已经在第二篇博文中介绍了 。雨滴测试:如何搭建接口自动化框架系列之unittest测试框架详解(二)

第三、如何使用requests实现接口请求 ,并和测试用例如何对接 ,已经在第三篇博文中介绍了。雨滴测试:如果你有意学习接口自动化测试 ?这个包是你要首先掌握的。

第四、如何使用yaml编写测试数据 ,已经在第四篇博文中介绍了 。雨滴测试:测试开发高手编写的自动化测试框架,管理用测试用例都离不开这个包。

第五,如何使用allure生成测试报告,已经在第五篇博文中介绍了 。雨滴测试:一款强大而美观的测试报告工具allure,无论做什么自动化使用它都合适 ,一文讲透此工具的使用 。

第六 ,如何使用loguru记录日志 ,已经在第六篇博文中介绍了 。雨滴测试:软件自动化测试框架使用loguru模块记录,让你的日志记录更便捷、更美观、可读性更强。

第七,如何使用pymysql连接数据库,也就是本篇博文了 。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有