首先简述一下自动化测试对于数据库的应用场景:无论在接口自动化还是 UI 自动化的测试中,我们都需要准备一些测试数据,类似于账号信息。比如我们需要一个未注册的手机号,我们不能保证给出的测试数据是未注册的,这个时候就需要通过数据库的相关操作将此条数据更改为我们需要的状态。但是手动的操作不能实现完全的自动化测试,所以学习了通过 python 连接 db 实现相应的操作,完善测试数据的准确性。
1.安装部分:
1)先准备 Python 3 以上的版本(安装不再赘述)。
2)安装 pymysql,在命令行中输入如下命令
pip3 install PyMySQL
2.创建连接部分
import pymysql #导入MySQL的包
db = pymysql.connect("host","username","password","dbname ",charset='utf8')
#使用pymysql的connect方法,配置host数据库地址,username用户名,password密码,dbname库名等信息
cursor = db.cursor # 创建一个游标 ,这个是连接数据库最重要的,相当于创建一个连接对象
3.主要的语句使用
1)查询语句
例:user 表下有 id、name、phone 三个字段,查询 ID 为 1 的 name 和 phone
select_sql = "select name,phone from user where id = '%s' " %(1) #需要执行的sql语句
data = cursor.fetchone #获取查询出的数据
data = cursor.fetchall #获取查询出的数据(以数组的方式展示)
db.close() # 关闭连接
2)更新语句
例:user 表下有 id、name、phone 三个字段,更新 ID 为 1 的 name 为小白和 phone 为 123456789
update_sql = "update user set name = '小白',phone = '%s' where id = '%s'"('123456789','1')
try :
cursor.execute(update_sql) #执行sql
db.commit() #提交到数据库
expect:
db.rollback() #如果出现错误进行回滚操作
finally:
db.close() #关闭连接
实践后小结:
1.查询跟更新是我们在测试中比较常用的方法,另外插入和删除操作都不建议使用。
2.sql 中很多函数或方法不能直接在 python 代码中使用,需要使用 python 的方法进行处理
3.在实际的使用过程中可以将数据库操作直接写成方法进行调用会比较方便,在完成相应的数据库操作时一定要记得关闭数据库连接。