excle脚本驱动+动态执行case

目录:

数据xlsx

  读取数据的文件data.py:

import xlrd
"""
xlrd.open_workbook 打开excel文件
sheets()#读取所有sheet表
sheets[index] #读取指定工作表
nrows:所有行数
col_values(i)#读取指定列的所有数据
row_values(i)#读取指定行的所有数据
cell_values(1,1)   #获取某单元格数据
"""
def read_excel(dir,index=0):
    book=xlrd.open_workbook(filename=dir)
    sheets=book.sheets() #读取所有sheet表
    sheet=sheets[index] #读取指定工作表
    return sheet
if __name__=='__main__':
    kk=read_excel("D:jodiejodiepydata_drivedate.xlsx")
    for i in range(1,kk.nrows):
      rows=kk.row_values(i)
      print(rows)

运行脚本 的run_test.py

from data_drive.date import read_excel
import sys
import data_drive.case.login
import openpyxl

result_list={}
filename="D:jodiejodiepydata_drivedate.xlsx"
sheet=read_excel(filename)
for i in range(1,sheet.nrows):
    print(sheet.row_values(i))
    row=sheet.row_values(i)
    mk='data_drive.case.'+row[0] #取模块
    cs=row[1] #取类名
    fun=row[2] #到出方法
    user=row[3].split(',')[0].split('=')[1]
    pw=row[3].split(',')[1].split('=')[1]

    __import__(mk) #动态加载模块
    m=sys.modules[mk] #将模块加载到内存里

    obj=getattr(m,cs) #用getattr找模块m下的cs类
    print("12",obj)

    mtd=getattr(obj(),fun) #用getattr找模块m下的cs类的fun方法
    res=mtd(user,pw)
    result_list[i+1]=res #保存执行结果


wb = openpyxl.load_workbook(filename)
sheet = wb["Sheet1"]
print(sheet)
for i,k in result_list.items():
    sheet.cell(i, 6).value =result_list[i]
    print(sheet.cell(i, 6).value)
wb.save(filename)

将执行结果写入exclel中

from xlutils.copy import copy
import xlrd
#写入数据 def write_value(self,row,col,value): ''' 写入excel数据 ''' read_data = xlrd.open_workbook(self.file_name)#先打开文件 write_data = copy(read_data) sheet_data = write_data.get_sheet(0) sheet_data.write(row,col,value) write_data.save(self.file_name)
原文地址:https://www.cnblogs.com/jodie2019/p/11958502.html