用python+openpyxl从表格中读取测试用例的多条数据,然后将执行结果写入表格中
1 # -*- coding: utf-8 -*- 2 from selenium import webdriver 3 from openpyxl import load_workbook 4 class mylogintest(): 5 '''打开百度测试''' 6 7 def openBD(self): 8 '''打开百度''' 9 print("begin") 10 self.driver = webdriver.Firefox() 11 book = load_workbook("mylogintest.xlsx") # 默认可读写,若有需要可以指定write_only和read_only为True 12 b = book.active 13 datadict = {} #创建一个字典变量 14 maxC = b.max_column#获取最大列 15 maxR = b.max_row#获取最大行 16 for i in range(1, maxC + 1):#range默认从0开始,到后面参数的-1结束,而openpyxl都是从第一行第一列开始的,所以参数为1,maxC+1;意思就是遍历第一列到最后一列, 17 datadict.setdefault(b.cell(1, i).value)#设置字典datadict的键值,从第一行第一列,到第一行最后一列,也就是第一行的标题设置为键值,i表示列 18 # print(datadict) 19 for i in range(2, maxR + 1):#除去第一行标题,从第二行遍历到最后一行 20 for j in range(1, maxC + 1):#从第一列遍历到最后一列 21 datadict[b.cell(1, j).value] = b.cell(i, j).value#在字典里设置键对应的值,j表示列 22 # print(datadict) 23 # if datadict["url"] & datadict["校验"] != None: 24 self.driver.get(datadict["地址"])#从对应键里取出值地址对应的URL值,这里的键就是表格的第一行标题,所以EXCEL的标题要按照规定来写 25 if self.driver.title == datadict["校验"]:#如果打开地址后,title值跟校验对应的值一致 26 b.cell(i, maxC, '通过')#就将测试通过结果写入表格中 27 else: 28 b.cell(i, maxC, '不通过')#就将测试不通过结果写入表格中 29 book.save("mylogintest.xlsx")#最后记得关闭 30 self.driver.quit() 31 print("end") 32 33 mylogintest().openBD()
脚本运行后,表格如下: