• python


    # -*- coding:utf-8 -*-
    
    '''
    @project: ApiAutoTest
    @author: Jimmy
    @file: read_excel.py
    @ide: PyCharm Community Edition
    @time: 2018-12-20 10:34
    @blog: https://www.cnblogs.com/gotesting/
    
    '''
    
    
    import openpyxl
    import os
    from Common.contants import *
    
    class Case:
    
        def __init__(self):
            self.case_id = None
            self.url = None
            self.data = None
            self.title = None
            self.method = None
            self.expected = None
    
    class ReadExcel:
    
        def __init__(self,file_name):
            try:
                self.filename = os.path.join(data_dir,file_name)
                self.wb = openpyxl.load_workbook(self.filename)
            except FileNotFoundError as e:
                print('{0} not found , please check file path'.format(self.filename))
                raise e
    
        def get_cases(self,sheet_name):
            sheet = self.wb[sheet_name]
            max_row =  sheet.max_row
            test_cases = []
            for r in range(2,max_row+1):
                case = Case() # 实例化一个data对象,用于存放读取的测试数据
                case.case_id = sheet.cell(row=r,column=1).value
                case.title = sheet.cell(row=r,column=2).value
                case.method = sheet.cell(row=r,column=3).value
                case.url = sheet.cell(row=r,column=4).value
                case.data = sheet.cell(row=r,column=5).value
                case.expected = sheet.cell(row=r,column=6).value
                test_cases.append(case)
            return test_cases
    
        # 获取到workbook里面所有的sheet名称的列表
        def get_sheet_name(self):
            return self.wb.sheetnames
    
        # 根据sheet_name定位到sheet,根据case_id定位到行,写入result
        def write_result(self,sheet_name,case_id,actual,result):
            sheet = self.wb[sheet_name]
            max_row = sheet.max_row
            for r in range(2,max_row+1):
                # 获取第r行第1列的 case_id值
                case_id_r = sheet.cell(row=r,column=1).value
                # 判断excel读取的当前行的case_id_r是否与传入的case_id相同
                if case_id_r == case_id:
                    sheet.cell(row=r,column=7).value = actual
                    sheet.cell(row=r,column=8).value = result
                    self.wb.save(filename=self.filename)
                    break
  • 相关阅读:
    设计模式-适配器模式(09)
    windows电脑使用技巧及常用CMD
    接口调用方法
    矩阵对角线和
    函数基础小结
    文件处理实战之购物车系统
    文件处理小结
    Python进阶实战之三级菜单
    Python进阶小结
    Python深浅拷贝
  • 原文地址:https://www.cnblogs.com/gotesting/p/10156106.html
Copyright © 2020-2023  润新知