前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python对mysql数据库的操作(一)

python对mysql数据库的操作(一)

作者头像
无涯WuYa
发布2018-10-25 16:11:09
1.1K0
发布2018-10-25 16:11:09
举报

本文章介绍python对mysql数据库的基本操作,以及编写一个模拟用户的注册。在自动化测试中,某些人认为是没有必要操作数据库的,理由是大多数的自动化测试都是UI的,非接口的自动化测试,其实,在一个项目的自动化测试中,这种定义很模糊,或者说很不明确,比如在自动化测试中,怎么来验证用户登录成功,用户注册成功?先来说登录,用户登录成功后,验证点首先是用户的昵称,再有么?是的,有,必须得验证url,这是一个完整的测试用例,再来说注册,注册成功后,验证点再我看来,一是到数据库查看,用户注册的信息是否insert到对应了表了,满足一的基础上,再验证注册的用户可不可以登录。所以说,在自动化测试中,对数据库的操作,具体看得场景,业务,具体问题得具体分析。

mysql操作mysql需要安装对应的库,下载地址为:https://pypi.python.org/pypi/MySQL-python/1.2.4,见截图:

下载安装后,在python的命令行中,输入import MySQLdb ,无任何的错误,表示该模块操作成功,见截图:

在上面的截图中,可以看到可以正常的导入MySQLdb库,dir()是查看库的方法。python操作mysql会使用到很多的方法,具体总结经常使用的,见如下的:

connect():连接mysql 的数据库

commit():提交

rollback():回滚

fetchone():返回一条语句

fetchall():返回所有语句

fetchmany():返回多条数据

close():关闭数据库

在这里,前提条件的安装mysql(本人的安装在windows终端中),另外,确保mysql的编码是utf-8,关于修改mysql的编码见如下:

在[client]下添加

default-character-set=utf8

在[mysqld]下添加

default-character-set=utf8

切记,修改mysql的配置文件后,一定要重新启动服务。

操作mysql的命令为:

net start mysql (启动mysql的服务)

mysql -h localhost -u root -p (进入到mysql的命令行)

show database (查看数据库)

use databaseName(到XX数据库)

show tables(查看库下的表)

创建表user,见详细信息的截图:

ok,创建了表user吗,字段分别是id,username,password,email。

增,删,修,查是对数据库的基本操作,先看这部分,见实现的代码:

import MySQLdb

class MySQLHelper(object):

def __init__(self):

pass

@property

def selectMySQL(self):

try:

conn=MySQLdb.connect(host='localhost',user='root',

passwd='server',db='db',,charset='utf8')

cur=conn.cursor()

except Exception,e:

print u'操作mysql数据库失败'

else:

cur.execute('select * from user;')

data=cur.fetchall()

for d in data:

print d

finally:

cur.close()

conn.close()

@property

def insertMySQL(self):

try:

conn=MySQLdb.connect(host='localhost',user='root',

passwd='server',db='db',,charset='utf8')

cur=conn.cursor()

sql="insert into user(id,name,sex,email) VALUES (%s,%s,%s,%s)"

params=(1,'selenium2','boy','USA@qq.com')

cur.execute(sql,params)

conn.commit()

except Exception,e:

print u'操作mysql数据库失败'

else:

print u'插入后表的数据为:'

self.selectMySQL

finally:

cur.close()

conn.close()

@property

def updateMySQL(self):

try:

conn=MySQLdb.connect(host='localhost',user='root',

passwd='server',db='db',,charset='utf8')

cur=conn.cursor()

sql="update user set NAME=%s where id=%s"

params=('selenium webdriver',1)

cur.execute(sql,params)

conn.commit()

except Exception,e:

print u'操作mysql数据库失败'

else:

print u'修改后表的数据为:'

self.selectMySQL

finally:

cur.close()

@property

def deleteMySQL(self):

try:

conn=MySQLdb.connect(host='localhost',user='root',

passwd='server',db='db',,charset='utf8')

cur=conn.cursor()

sql="delete from USER WHERE id=%s"

params=(1)

cur.execute(sql,params)

conn.commit()

except Exception,e:

print u'操作mysql数据库失败'

else:

print u'删除后表的数据为:'

self.selectMySQL

finally:

cur.close()

注释:定义了类MySQLHelper,再分别定义了对数据库操作的增,删,改,查的方法,依据方法名称就可以看到,这里依次来解释代码部分,import MySQLdb是先导入MySQLdb的库,这样可以对mysql进行操作,MySQLdb.connect(host='localhost',user='root',passwd='server',db='db',charset='utf8')是连接mysql数据库host,user,passwd,db很好理解,charset='utf8'主要是为了解决编码问题,mysql的编码为status,python读取mysql后(中文),编码是unicode,导致的结果是中文显示为?,带了charset='utf8'后,读取到的为utf8,这样中文就不会显示为?了。cur=conn.cursor()是创建游标,特别提醒,在删,改,增的方法中,一定要调用commit()方法,这样才提交了数据。

这部分代码还有重构的空间,到下个文章进行重构代码,让代码更加简单。关于这部分,我已整理到百度阅读,可在百度阅读搜索selenium-python自动化测试,就可以可以看到,或者点击“原文”,会直接链接到百度阅读我写的资料。

祝安!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-12-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档