class DependdentData: def __init__(self, case_id): self.case_id = case_id self.data = GetData() self.opera_excel = OpenrationExcel() # 获取casr_id去获取该casr——id正航数据 def get_case_line_data(self): rows_data = self.opera_excel.get_rows_data(self.case_id) return rows_data #返回依赖接口的所属行 def run_depemdent(self): run_menthon = RunMethod() row_num = self.opera_excel.get_row_num(self.case_id) #执行数据依赖的行数获取结果 data = self.data.get_data_for_json(row_num) request_data = json.dumps(data) header = self.data.is_headel(row_num) method = self.data.get_request_method(row_num) url = self.data.get_request_url(row_num) res = run_menthon.run_main(method, url, request_data, header) #传入所需行的请求数据 return json.loads(res) #返回所需行的接口返回数据 def get_data_for_key(self, row): depend_data = self.data.get_depend_key(row) #获取依赖上个接口的字段 response_data = self.run_depemdent() #获取依赖接口返回的数据 json_exe = parse(depend_data) madle = json_exe.find(response_data) return [math.value for math in madle][0] #数据依赖的具体数据
class DependdentData: def __init__(self, case_id): self.case_id = case_id self.opera_excel = OpenrationExcel() self.data = GetData() # 通过case_id去获取该case_id的整行数据 def get_case_line_data(self): rows_data = self.opera_excel.get_rows_data(self.case_id) return rows_data # 返回依赖数据的data def run_dependent(self): # 获取依赖id所在的行 row_num = self.opera_excel.get_row_num(self.case_id) # 获取依赖id的接口返回数据 res = self.data.get_api_return_data(row_num) return json.loads(res) # 根据依赖的key去获取执行依赖测试case的响应,然后返回 def get_data_for_key(self, row,new_data): """ :param row: 传入行 :param new_data:传入要修改的数据 :return: """ # 获取接受的字段 if new_data !='': data_new=json.loads(new_data) depend_key = self.data.get_data_depend_new(row) depend_key_new = depend_key.split(';') if depend_key != '': for key in range(len(depend_key_new)): # 获取数据依赖字段 depend_data = self.data.get_field_depend(row) depend_data_new = depend_data.split(';') # 获取依赖数据 response_data = self.run_dependent() # 获取依赖字段 json_exe = parse(depend_data_new[key]) madle = json_exe.find(response_data) new_data = [math.value for math in madle][0] data_new[depend_key_new[key]] = new_data return json.dumps(data_new) else: return json.dumps(data_new) else: return None
def __init__(self): self.run_method=RunMethod() self.data=GetData() self.com_util=CommonUtil()
class RunTest: def __init__(self): self.run_method=RunMethod() self.data=GetData() self.com_util=CommonUtil() # 程序执行流程 def go_on_run(self): res=None # 获取所有行 roes_count=self.data.get_case_lines() # 跳过1在行里循环 for i in range(1,3): is_run = self.data.get_is_run(i) if is_run:#执行 url=self.data.get_request_url(i)#接口地址 method=self.data.get_request_method(i)#请求方式 aaa=self.data.get_data_for_json(i)#请求数据 data=json.dumps(aaa) expect=self.data.get_expcet_data(i)#预期结果 header=self.data.is_headel(i)#获取header depend_case=self.data.is_depend(i)#获取是否有数据依赖 if depend_case !=None:#判断数据依赖不是空 self.depend_data=DependdentData(depend_case)#实列化depend_data depend_response_data=self.depend_data.get_data_for_key(i)#获取依赖返回data # 获取依赖的key depend_key=self.data.get_depend_field(i)#获取数据依赖字段 aaa[depend_key]=depend_response_data print(aaa) res=self.run_method if is_run:#判断是否执行 res=self.run_method.run_main(method,url,data,header) if self.com_util.is_contain(expect,res):#判断预期结果 self.data.write_result(i,"测试通过") else: self.data.write_result(i,"测试失败") print(res)
def __init__(self, case_id): self.case_id = case_id self.data = GetData() self.opera_excel = OpenrationExcel()
class RunTest: def __init__(self): self.run_method = RunMethod() self.data = GetData() self.com_util = CommonUtil() self.send_mai = SendEmail() # 程序执行流程 def go_on_run(self): res = None pass_count = [] fail_count = [] # 获取所有行 roes_count = self.data.get_case_lines() # 跳过1在行里循环 for i in range(1, roes_count): is_run = self.data.get_is_run(i) if is_run: #执行 urls = self.data.get_url(i) #接口地址 url = host_api + urls method = self.data.git_method_way(i) #请求方 former = self.data.get_api_data(i) #请求数据 expect = self.data.get_expcet_data(i) #预期结果 header = operation_header.gain_herder() #获取header depend_case = self.data.is_depend(i) #获取是否有数据依赖 if depend_case != None: #判断数据依赖不是空 self.depend_data = DependdentData( depend_case) #实列化depend_data data = self.depend_data.get_data_for_key( i, former) #获取依赖返回data print(type(data), i) res = self.run_method if is_run: #判断是否执行 if method != 'Post' and data != None: datas = eval(data) else: datas = data res = self.run_method.run_main(method, url, datas, header) self.data.write_api_return_data(i, res) if self.com_util.is_contain(expect, res): #判断预期结果 self.data.write_resuit(i, "测试通过") pass_count.append(i) else: self.data.write_resuit(i, "测试失败") fail_count.append(i) self.send_mai.send_main(pass_count, fail_count)