python接口自动化测试框架结构接口自动化测试框架结构 ( 第二章第二章)-封装封装Excel方法方法
如果你不太明白这篇文章是做什么的,点击下方进入介绍篇:如果你不太明白这篇文章是做什么的,点击下方进入介绍篇:
python接口自动化测试框架结构 ( 第一章)
点击跳转到第一章,你可以知道框架结构!!点击跳转到第一章,你可以知道框架结构!!
前方高能!!正文开始!!前方高能!!正文开始!!
1、在、在utlis.py封装封装Excel读写方法读写方法 (文件位置跳转第一章看代码结构)(文件位置跳转第一章看代码结构)
大家需要知道,读取大家需要知道,读取Excel分两种情况,一种是写入,当然还有读取分两种情况,一种是写入,当然还有读取Excel
class Excel:
"""
初始化方法 参数type:为r是读取excel,为w是写入excel,参数file_name是w文件路径
"""
def __init__(self, type, file_name):
"""
:param type: r:读 w:写
:param file_name: 读取文件路径
"""
# 读取excel
if type == 'r':
# 打开文件
self.workbook = xlrd.open_workbook(file_name)
# 获取到所有的sheet_names获取到所有,得到的是一个list
self.sheet_names = self.workbook.sheet_names()
# 装载所有数据的list
self.list_data = [] # 写入excel
elif type == 'w':
self.filename = file_name
self.wb = load_workbook(self.filename) #读取存在文件
self.ws = self.wb.active
2、创建testcase.xlsx文件(文件位置跳转第一章看代码结构)
文件内容如下:
创建成功后新增read方法:
def read(self)->list:
# 根据sheet_name去读取用例,并获取文件的总行数获取到每行的内容
for sheet_name in self.sheet_names:
# 通过每个sheetname获取到每个页的内容
sheet = self.workbook.sheet_by_name(sheet_name)
# 获取总行数
max_ros = sheet.nrows
# 根据总行数进行读取
for i in range(0, max_ros):
rowvalues = sheet.row_values(i)
# 每一行的内容添加进去
self.list_data.append(rowvalues)
#返回ex数据,格式为list
return self.list_data
在utils.py底部加入如下代码:
if __name__ == '__main__':
file = '../element/elements.xlsx'
e = Excel('r', file)
list_read=e.read()
for i in list_read:
print(i)
输出结果为:
3、需进一步优化将ex表内表头修改为英文,并将每一行数据转换成一个个字典新建方法excel_dict:
def excel_dict(data):
"""
1.将excel头部替换成英文的
2.处理成dict格式
"""
header = {
'用例编号': 'id',
'请求类型': 'get_type',
'测试url': 'url',
'测试接口': 'interface',
'用例标题': 'title',
'测试数据': 'data',
'预期结果': 'expected',
'请求头': 'header',
'响应数据状态/json返回数据的code': 'code',
'状态码': 'status',
'响应状态': 'msg'
}
head = [] list_dict_data = [] for d in data[1]:
# 获取到英文的头部内容如果为中文,则替换成英文 进行改成一个k
# 传入两个参数的作用是 查到则返回查到的数据查不到则返回传入的原数据
d = header.get(d, d)
# 将去除的头部英文装进list中
head.append(d)
# 获取到数据进行切片处理,0坐标为标题,1坐标是头部
for b in data[2:]:
# 头部和内容拼接为json串
dict_data = {}