2021-06-26,利用配置文件,从Excel中获取指定的测试用例

from openpyxl import load_workbook
from tools.read_config import ReadConfig
from tools import project_path
class DoExcel:
    @staticmethod
    def get_data(file_name):

        wb=load_workbook(file_name)
        mode=eval(ReadConfig.get_config(project_path.case_config_path,"MODE","mode"))
        print("mode是:",mode)

        test_data=[]
        for key in mode: #遍历这个存在配置文件里面的字典 key是表单名
            sheet=wb[key] #定位表单名
            if mode[key]=="all":  #key表单名的value等于all,就把数据全部获取
                for i in range(2,sheet.max_row+1):
                    row_data={}
                    row_data["case_id"]=sheet.cell(i,1).value
                    row_data["url"]=sheet.cell(i,2).value
                    row_data["data"]=sheet.cell(i,3).value
                    row_data["http_method"]=sheet.cell(i,4).value
                    row_data["headers"]=sheet.cell(i,5).value
                    row_data["title"]=sheet.cell(i,6).value
                    row_data["expeced"]=sheet.cell(i,7).value
                    row_data["sheet_name"]=key
                    test_data.append(row_data)
            else:
                for case_id in mode[key]:
                    row_data={}
                    row_data["case_id"]=sheet.cell(case_id+1,1).value
                    row_data["url"]=sheet.cell(case_id+1,2).value
                    row_data["data"]=sheet.cell(case_id+1,3).value
                    row_data["http_method"]=sheet.cell(case_id+1,4).value
                    row_data["headers"]=sheet.cell(case_id+1,5).value
                    row_data["title"]=sheet.cell(case_id+1,6).value
                    row_data["expeced"]=sheet.cell(case_id+1,7).value
                    row_data["sheet_name"]=key  #传表单名,用于写入的那个表单
                    test_data.append(row_data)

        return test_data
    @staticmethod
    def write_back(file_name,sheet_name,i,result,TestResult):  #专门写回数据
        wb=load_workbook(file_name)
        sheet=wb[sheet_name]
        sheet.cell(i,8).value=result #写入值
        sheet.cell(i,9).value=TestResult
        wb.save(file_name)  #保存结果
if __name__ == '__main__':
    test_data=DoExcel.get_data(project_path.test_case_path)
    # print(test_data)
    # print(len(test_data))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值