• 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)
  • 相关阅读:
    设计模式——代理模式
    设计模式——建造者模式
    设计模式——模板方法
    springboot+mybatis项目自动生成
    【小坑】java下载excel文件
    设计模式——工厂方法模式 和 抽象工厂模式
    设计模式——单例模式
    容易忽略的递归当中的return
    Android 4.0以后正确的获取外部sd卡存储目录
    Android 串口设置校验位、速率、停止位等参数
  • 原文地址:https://www.cnblogs.com/jodie2019/p/11958502.html
Copyright © 2020-2023  润新知