自动化测试时都有个数据准备和数据清理的操作,因此需要python连接mysql删除多余的数据
安装pymysql
pip install PyMySQL
当然测试库的ip及账号密码 自己总有的吧
查询操作:
假设查询了一条id=1的数据 如下
接下来使用python转换成对应的代码查询
import pymysql
# 打开数据库连接
db = pymysql.connect(host='47.111.x.x',
port=3306,
user='root',
passwd='XXXXXXXXXX',
db='test')
# 使用 cursor() 方法创建一个游标对象cur
cur = db.cursor()
# 使用 execute() 方法执行 SQL 查询
cur.execute("select * from sys_users where id=1")
# 使用 fetchall() 方法获取查询结果
data = cur.fetchall()
print(data)
# 关闭数据库连接
db.close()
如果想查询结果以字典格式输出,可以用db.cursor(cursor=pymysql.cursors.DictCursor)
取值的话直接 下标取值就可以了
update 更新操作 把name修改成test 0009
import pymysql
def update_db(sql):
'''查询数据库'''
# 打开数据库连接
db=pymysql.connect(host = "47.111.XX.XXX",
port=3309,
user="root",
password="XXXXXXX",
database='test')
# 使用 cursor() 方法创建一个游标对象cur
cur = db.cursor()
try:
cur.execute(sql)
db.commit()
# 更新 删除 插入 均需要commit 不然数据不生效
except Exception as e:
print('错误,错误:{}'.format(str(e)))
db.rollback()
finally:
db.close()
if __name__ == "__main__":
sql = "update `sys_users` name='test000009' where id=32"
update_db(sql)
除了查询的代码不一样,新增、删除、更新数据库操作代码都一样,只是执行的sql不一样