python接口自动化(三)——从excel中获取数据
1、按照之前的设计思路,我们需要从excel中去获取测试用例,所我们先封装一个获取数据的工具
from Data.with_config import * from api_gj.with_excel import with_excel from api_gj.with_json import open_json class GetData: def __init__(self): self.read_excel = with_excel() #获取数据量(行数) def get_case_lines(self): return self.read_excel.get_lines() #获取是否运行 def get_if_run(self, row): col = int(if_run()) run_model = self.get_case_cell(row, col) if run_model == 'Y': return run_model else: return None #获取是否携带header def get_if_header(self, row): col = int(get_data()) header = self.get_case_cell(row, col) if header != 'None': return header else: return None #判断请求方式 def get_request_methed(self, row): col = int(run_way()) methed = self.get_case_cell(row, col) return methed #获取url def get_request_url(self, row): col = int(get_url()) url = self.get_case_cell(row, col) return url #获取请求数据 def get_request_data(self, row): col = int(get_data()) data = self.get_case_cell(row, col) return data #通过关键字拿到json数据 def get_json_data(self, row): opera_json = open_json('aaaa.json') data = self.get_request_data(row) if data == 'None': request_data = None else: request_data = opera_json.get_data(data) return request_data #获取预期结果 def get_expcet_reult(self, row): col = int(get_expect()) request_reult = self.get_case_cell(row, col) if request_reult == 'None': return None else: return request_reult #获取某一单元格的内容 def get_case_cell(self, row, col): return self.read_excel.get_cell_data(row, col) #获取数据字典 def get_data_dict(self): return self.read_excel.to_dict()
2、由于excel中表头中的字段较多,且是固定的,所以传入获取数据的时候传入的列的参数可以做一个转换:
#coding:utf-8 class global_var: #case_id Id = '0' name = '1' url = '2' run = '3' request_way = '4' header = '5' case_depend = '6' data_depend = '7' field_depend = '8' data ='9' expect = '10' result = '11' #获取case_id def get_id(): return global_var.Id #获取url def get_url(): return global_var.url #获取是否运行 def if_run(): return global_var.run #获取request_way(运行方式) def run_way(): return global_var.request_way #获取header def get_header(): return global_var.header #获取case_depend def case_depend(): return global_var.case_depend #获取data_depend def data_depend(): return global_var.data_depend #获取field_depend def field_depend(): return global_var.field_depend #获取data def get_data(): return global_var.data #获取expect(预期结果) def get_expect(): return global_var.expect #获取result(返回结果) def get_result(): return global_var.result
将这两部分代码合起来看就容易懂很多,主要是为了便捷传入对应的‘’列数‘’可以获取到对应的字段