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))