• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

【python接口自动化】- PyMySQL数据连接

python miki_peng 2030次浏览 0个评论

如果想从头学起接口自动化测试,可以去看看这个系列的文章哦!

https://www.cnblogs.com/miki-peng/category/1671261.html

前言

什么是 PyMySQL?

​ PyMySQL是在Python3.x版本中用于连接MySQL服务器的一个库,Python2中则使用mysqldb。它是一个遵循 Python数据库APIv2.0规范,并包含了pure-Python MySQL客户端的库。

为什么需要连接数据库?

​ 在接口测试过程中,常常会有增删改查的操作,但是单从接口返回不能确保数据是否真的按照我们期望的结果来走,这时就需要查询数据库来核对,如注册接口,需要查询账号是否新建成功;接口修改数据,数据库的数据是否被更新到最新等等。

安装

​ cmd命令行执行pip install pymysql

操作数据库

​ 连接数据库之前,要先确保数据库已经建立。操作数据库的步骤可以简单分为三步:

​ 1. 连接数据库pymysql.connect(host, user, password, port, charset)

​ 2. 创建游标对象cursor()

​ 3. 执行sqlexecute(sql)

import pymysql


con = pymysql.connect(host="192.168.100.101",	# 连接数据库
                      user="test",
                      password="123456",
                      port=3306,
                      charset="utf8"
                      )
cur = con.cursor()	# 创建游标
sql = "SELECT * FROM member WHERE username ='test'"
res = cur.execute(sql) 	# 执行sql

​ 上面中提到一个概念:游标,实际上就是一种能从包括多条数据记录的结果集中每次提取一条记录的机制,就等于光标的上下移动,尽管游标能遍历结果中的所有行,但它一次只指向一行。游标的作用就是用于对查询数据库所返回的记录进行遍历,以便进行相应的操作,就像电脑的鼠标一样。

【python接口自动化】- PyMySQL数据连接

提取查询结果

fetchall:返回的是一个查询集(元祖的形式,查询到的每一条数据为这个元祖中的一个元素)

fatchone:获取查询到的数据中的第一条

import pymysql


con = pymysql.connect(host="127.0.0.1",
                      user="test",
                      password="123456",
                      port=3306,
                      charset="utf8"
                      )
cur = con.cursor()	# 创建游标
sql = "SELECT mobile_phone FROM futureloan.member limit 4"
res = cur.execute(sql)
datas = cur.fetchall()
print(datas)
for i in datas:
    print(i)

​ 运行结果:

C:\software\python\python.exe D:/learn/test.py
(('13678703234',), ('15690403234',), ('15680113234',), ('13503071234',))
('13678703234',)
('15690403234',)
('15680113234',)
('13503071234',)

Process finished with exit code 0

特别注意:

​ 执行完增删改的sql语句之后,需要进行commit提交确认,这里commit的作用相当于数据库中的提交事务。

封装

​ 按需封装,想怎么封就怎么装。

import pymysql
from common.my_config import conf


class HandleDB:

    def __init__(self):
        # 读取配置文件的数据库信息
        self.con = pymysql.connect(host=conf.get_str("mysql", "host"),
                                   user=conf.get_str("mysql", "user"),
                                   password=conf.get_str("mysql", "password"),
                                   port=conf.get_int("mysql", "port"),
                                   charset="utf8"
                                   )
        self.cur = self.con.cursor()

    def get_one(self, sql):
        """获取查询到的第一条数据"""
        self.con.commit()
        self.cur.execute(sql)
        return self.cur.fetchone()

    def get_all(self, sql):
        """获取sql语句查询到的所有数据"""
        self.con.commit()
        self.cur.execute(sql)
        return self.cur.fetchall()

    def count(self, sql):
        """统计sql语句查询到的数据"""
        self.con.commit()
        res = self.cur.execute(sql)
        return res

    def close(self):
        self.cur.close()	 # 关闭游标对象
        self.con.close()	# 断开连接


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明【python接口自动化】- PyMySQL数据连接
喜欢 (0)

您必须 登录 才能发表评论!

加载中……