一组测试数据就代表一个用例,就是测试类下的一个方法
自动化测试之前,先有手工测试的用例,一般保存在excel,xmind,tapd
测试数据的运转:
通过手工写入excel
通过python读取excel数据-用pip安装第三方库--openpyxl
-导入load_workbook:加载工作簿
sheet:工作表 cell:单元格 row:行 column:列
from openpyxl import load_workbook
-通过变量获取工作簿
wb = load_workbook(r"E:lemmon-publiclessonlesson14_测试数据分离和excelxlsxcases.xlsx")
得到工作簿
需要注意:
excel表格默认要放在跟它进行操作的py文件同一个目录下才能获取,不能像调用其他模块(py文件)一样操作,因为from..impirt只能导入python文件
如果是在A模块调用B模块的数据,而B模块是要获取excel文件的话,那么A模块和B模块所在的目录下,都必须要有这个excel文件,不然调用时候会报错
为了方便管理,我们会把excel文件存放在一个专门的目录下,所以在对excel进行操作的py文件里,获取工作簿时候需要用到excel文件的绝对路径
-获取表格(Sheet)sheet= wb["Sheet1"] print(sheet)
-获取一个表的全部值
data = list(sheet.values) print(data)
sheet也是一个对象,获取对象属性,sheet.values 获取表格数据时候需要转换list类型
-获取一个单元格(cell)
cell = sheet.cell(row=2,column=1) #参数传入行和列 print(cell)
得出这是A2单元格
获取单元格的值
info = cell.value print(info)
cell是一个对象,获取对象的属性就是cell.属性名
-封装成函数
from openpyxl import load_workbook
def change_dict(list):
list_1 = []
key = list[0] #字典的key是固定
for value in list[1:]: #从列表的第二个嵌套列表开始遍历到最后
result = get_dict(key,value) ##调用zip函数的操作,操作完成,已经从2个列表转换成一个字典
list_1.append(result)
return list_1
def get_dict(key, value):
result = dict(zip(key, value))
return result
def read_excel(excel_name,sheet_name):
#得到工作簿
wb = load_workbook(excel_name)
#得到工作表
sheet = wb[sheet_name]
#读取所有数据
data = list(sheet.values) #得到一个列表,包括标题,值
data_1 = change_dict(data) #调用函数
return data_1
result = read_excel(r"E:lemmon-publiclessonlesson14_测试数据分离和excelxlsxcases.xlsx","Sheet1")
print(result)
得到的用例数据方便查看



