selenium自动化-数据驱动2
1 # -*- coding: utf-8 -*- 2 import xlrd 3 4 class ExcelUtil(): 5 6 #初始化 7 def __init__(self,excelpath,sheetname): 8 #先初始化打开数据文件 9 self.data = xlrd.open_workbook(excelpath) 10 #再通过sheetname读取数据文件内容 11 self.table = self.data.sheet_by_name(sheetname) 12 13 # 从第一行去对应的key值 14 self.keys = self.table.row_values(0) 15 16 #获取所有的行数 17 self.allrow = self.table.nrows 18 #获取所有列数 19 self.allcol = self.table.ncols 20 21 22 def dict_data(self): 23 if self.allrow <= 1: 24 print("总行数小于1") 25 26 else: 27 r = [] 28 j = 1 29 #加一个while循环判断,如果数据文件在遍历时超出range定义的边界,会报错,在测试登陆时或者其他需求登陆用户的地方,一般在数据文件中设置几个用户就可以了 30 while j < 3: 31 for i in range(self.allrow-1): 32 s = {} 33 #从第二行去对应的values值 34 values = self.table.row_values(j) 35 for x in range(self.allcol): 36 s[self.keys[x]] = values[x]#遍历出一个{k:v}的键值对 37 j+=1 38 39 r.append(s) 40 return r 41 42 if __name__ == "__main__": 43 filepath = "user.xlsx"#你的数据文件所在的路径,由于我的数据文件和我的测试脚本在同一个目录下,所以不需要加前面的路径 44 sheetname = "userinfo" 45 data = ExcelUtil(filepath,sheetname) 46 47 print(data.dict_data())
输出结果:
C:\Users\Jayson\PycharmProjects\test\venv\Scripts\python.exe D:/tes1t/test/data/testdata.py
[{'username': 'zzz', 'password': 123456.0}, {'username': 'aaa', 'password': 234567.0}, {'username': 'qqq', 'password': 345678.0}]
Process finished with exit code 0
这个的userinfo是我提前在数据文件中报错的数据