DDT-csv文件
导入类库
import csv
打开csv文件
#打开文件
file = open('D:\\test.csv','r')
读取csv文件
#定义一个列表
data = []
# 读文件
txt = csv.reader(file)
#跳过首行
txt.__next__()
#取出内容
for i in txt:
print(type(i[1]),i[1])
# 内容放入一个列表中,方便引用
data.append(i[1])
print(data)
# 用列表返回所有数据
data_list = list(txt)
写入csv文件
file02 = open("文件",'ab')
writers = csv.writer(file02)
writers.writerows('需要写入的内容最好是列表')
关闭csv文件
file1.close()
file02.close()
DDT-Excel文件
导入类库
import pandas as pd
第一次使用需要安装pandas库和xlrd库
读取Excel
file03 = pd.read_excel('文件路径')
提取相应行
cle = file03.loc[[1,2]].values #读取跳过首行的第1行或第2行,从0开始计算行数
提取相应列
list1 = file03['列名'].values #获取到的类型是<class 'numpy.ndarray'>,需要我们转换为list使用
list = list1.tolist() #可以把<class 'numpy.ndarray'>转换为list类型
# 但是在真正引用的时候return 返回的还是自定义的类型需要我们把return的结果进行一个转换为字典使用eval()方法
DDT-数据库读取
导入类库
import pymysql
数据库链接
conn = pymysql.connect(
host="", # 域名
port=int(3306), # 端口号,需要是整形
user='', # 用户名
password='', # 密码
db='', # 链接的库名称
charset='utf8' # 如果查询有中文需要指定数据库编码,此处的编码是utf8不是utf-8
)
数据库访问
cursor = db.cursor()
提取内容
cursor.execute('SQL命令')
# 获取查询结果。cur.fetchall()
response = cur.fetchall()
#更改数据库信息:
cur.execute("SQL命令")
# 提交更改数据,修改的数据必须提交才能生效
conn.commit()
# 回滚所有操作:
conn.rollback() # 回滚所有更改(注意用的是conn)
# 4、使用完成之后需要关闭游标和链接
关闭数据库链接
cur.close() # 关闭游标
conn.close() # 关闭链接
# 封装数据库的增/改/删操作:
def update_sql(sql):
conn = get_db_conn() # 建立链接
cur = conn.cursor() # 建立游标
try:
cur.execute(sql) #输入sql语句
conn.commit #提交内容
except Exception as e:
conn.rollback() #回滚
cur.close # 关闭游标
conn.close # 关闭链接
return response # 返回结果
===========================================DDT数据驱动小结================================================
一、数据结构
列表
读取方法
for循环从列表中获取数据:for i in a:
下标获取a[1]
追加:list.append('内容')
字典
读取方法:userinfo = {'name':'哈哈','pwd':'123456'}
读取key:for key in userinfo.key():
读取value:for vale in userinfo.values()
追加:userinfo['moble'] = '15552533859'
json串
读取方法:
先转换为字典:d =json.load(d)
二、文件
文本txt
打开:fi01 = open('文件路径及名称','r',encoding='utf-8')
读取:data01 = fi01.read()
写:
fi011 = open('文件路径','a')
fi011.write('内容')
关闭:fi01.close()
csv
导入库:import csv
打开: fi02 = open('文件','r')
读取: data02 = csv.reader(fi02)
写:
fi021 = open('文件','a')
fi021.write('内容')
关闭:fi021.close()
excel
导入库:import pandas as pd #需要导入pandas 和xlrd库
读取:
fi03 = pd.read_excel('文件') #读取出的格式是
提取相应行
cle = fi03.loc[[1,2]].values #读取跳过首行的第1行或第2行,从0开始计算行数
提取相应列
list1 = fi03['列名'].values #获取到的类型是<class 'numpy.ndarray'>,需要我们转换为list使用
list = list1.tolist() #可以把<class 'numpy.ndarray'>转换为list类型
# 但是在真正引用的时候return 返回的还是自定义的类型需要我们把return的结果进行一个转换为字典使用eval()方法
三、数据库
导入类库
import pymysql
数据库链接
conn = pymysql.connect(
host="", # 域名
port=int(3306), # 端口号,需要是整形
user='', # 用户名
password='', # 密码
db='', # 链接的库名称
charset='utf8' # 如果查询有中文需要指定数据库编码,此处的编码是utf8不是utf-8
)
数据库访问
cursor = db.cursor()
提取内容
cursor.execute('SQL命令')
# 获取查询结果。cur.fetchall()
response = cur.fetchall()
# 更改数据库信息:
cur.execute("SQL命令")
# 提交更改数据,修改的数据必须提交才能生效
conn.commit()
# 回滚所有操作:
conn.rollback() # 回滚所有更改(注意用的是conn)
# 4、使用完成之后需要关闭游标和链接
关闭数据库链接
cur.close() # 关闭游标
conn.close() # 关闭链接
四、pytest参数化
五、如何进行框架DDT设计
设计风格1:
前提:已经具备的脚本:
前期准备:明确
确定哪些脚本需要使用批量的数据
哪些脚本使用外部数据文件
哪些脚本需要使用数据库
分析数据是否需要公用,私有数据放于脚本中,共有的则可以放在独立脚本中(数据种类比较少),也可以分类存在,放于comment数据层放置多个py文件(适用与多数据)
风格2:
前提:没有自动化脚本
方案:
先根据数据特点先设计数据层
或者先写脚本然后遇到后再规划DDT划分
====================================================结束================================================
pytest笔记(6)——DDT(终)
最新推荐文章于 2024-12-16 14:45:13 发布