Python + openpyxl 读取测试数据,通过Excel管理我们的测试用例数据
一、首先安装openpyxl。
pip install openpyxl
二、首先我们新建一个Excel文件,写入内容。
三、读取测试用例数据(注意:在使用openpyxl操作Excel文件时,一定要关闭Excel文件哦,否则会报错!)
import openpyxl
class ReadExcel():
def __init__(self, file_name, sheet_name):
"""
初始化ReadExcel该方法
:param file_name: Excel文件名
:param sheet_name: 指定读取的sheet页
"""
self.file_name = file_name
self.sheet_name = sheet_name
def open_excel(self):
"""打开指定的Excel文件中的Sheet页"""
# 通过.load_workbook方法加载Excel文件
self.wb = openpyxl.load_workbook(filename=self.file_name)
# 然后打开指定的sheet页
self.sh = self.wb['data']
def read_excel(self):
"""
定义读取Excel指定表单内容数据的方法
:return:
"""
self.open_excel() # 首先打开Excel中的sheet页
cases = [] # 新建一个空列表,用于存放读取出的数据
titles = [] # 新建一个空列表,用于存放读取到的表头,也就是1,2,3,4,5这一行
# 新建以上这两个空列表呢,为了方便我们把每一行测试数据与表头进行打包
rows = list(self.sh.rows) # 这里是将指定的sheet页中所有存在数据的行全都读取出来,转换成列表类型存放,方便我们进行遍历
# 这里是要将表头(1,2,3,4,5这些),通过遍历的方式,提取出来,存放到空列表
for row in rows[0]:
titles.append(row.value) # 将每一个表格的value值,也就是我们需要的数据,添加的空列表中。
# 这里是遍历除了表头一行,剩下的所有行
for row in rows[1:]:
data = []
for r in row: # 遍历每一行的每一个表格
data.append(r.value)
data_zip = dict(zip(titles, data)) # 然后将每一行读取到的测试数据,和表头进行打包成一个字典的形式存放。
cases.append(data_zip) # 将所有测试数据添加到一个空列表中
return cases
if __name__ == '__main__':
cases = ReadExcel(file_name='cases.xlsx',sheet_name='data').read_excel()
# 获取到所有的测试数据
# 遍历出每一条测试数据
for i in cases:
print(i['用例编号']) # 打印出每一条测试数据,表头是 用例编号 的数据
运行结果:
四、写入测试结果
import openpyxl
class ReadExcel():
def __init__(self, file_name, sheet_name):
"""
初始化ReadExcel该方法
:param file_name: Excel文件名
:param sheet_name: 指定读取的sheet页
"""
self.file_name = file_name
self.sheet_name = sheet_name
def open_excel(self):
"""打开指定的Excel文件中的Sheet页"""
# 通过.load_workbook方法加载Excel文件
self.wb = openpyxl.load_workbook(filename=self.file_name)
# 然后打开指定的sheet页
self.sh = self.wb['data']
def write_excel(self, row, column, value):
"""
定义一个写入数据的方法
:param row: 指定写入的行
:param column: 指定写入的列
:param value: 指定写入的数据
:return:
"""
# 第一步:打开
self.open_excel()
# 第二步:写入
self.sh.cell(row=row, column=column, value=value)
# 第三步:保存
self.wb.save(self.file_name)
if __name__ == '__main__':
ReadExcel(file_name=r'cases.xlsx',sheet_name='data').write_excel(row=2, column=13, value="测试通过")
运行结果:
作者:Treasure丶
如何本篇文章对你有所帮助,记得右下角“推荐”一下哦,博主再此谢过啦
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.