class DependentData: def __init__(self,case_id): self.case_id=case_id self.opera_excle=OperationExcle() self.data=GetData() #通过case_id去获取该case_id的整行数据 def get_case_line_data(self): rows_data=self.opera_excle.get_rows_data(self.case_id) return rows_data #执行依赖测试,获取结果 def run_dependent(self): run_method=RunMethod() row_num=self.opera_excle.get_row_num(self.case_id) # request_data=self.data.get_data_for_json(row_num) request_data = self.data.get_request_data(row_num) header=self.data.get_is_header(row_num) method=self.data.get_request_method(row_num) url=self.data.get_url(row_num) res=run_method.run_main(method,url,request_data,header) return json.loads(res) #根据依赖key去获取执行依赖测试case的响应,然后返回 def get_data_for_key(self,row): depend_data=self.get_data_for_key(row) #response_data为依赖测试的执行结果 response_data=self.run_dependent() #定义要获取的key json_exe=parse(depend_data) #定义响应数据,key从响应数据里获取 madle=json_exe.find(response_data) #math.value返回的是一个list,可以使用索引访问特定的值jsonpath_rw的作用就相当于从json里面提取响应的字段值 return [math.value for math in madle][0]
class Run_test: def __init__(self): self.data = GetData() self.runMethod = RunMethod() def run_case(self): rows = self.data.get_case_lines() #row = 0 for row in range(1, rows): is_run = self.data.get_is_run(row) print(is_run) if is_run == True: url = self.data.get_url(row) print(url) method = self.data.get_request_method(row) print(method) #header = self.data.get_header(row) depend_case = self.data.is_depend(row) print(depend_case) #request_data = self.data.get_data_for_json(row) request_data = self.data.get_request_data(row) body = json.dumps(request_data) print(request_data) #method = 'post' #url = 'http://10.128.0.150:8002/backend/user/login' headers = {"Content-Type": "application/json;charset=UTF-8"} #headers = json.dumps(headerstring) '''bodystring = {"username" : "super", "password" : "Connext@0101"} body = json.dumps(bodystring)''' #res = self.runMethod.run_main(method, url, request_data, headers) print("==========") #print(res) if depend_case != None: depend_data = DependentData(depend_case) depend_res = depend_data.run_dependent(depend_data.case_id) print(depend_res) #self.depend_data = DependentData(depend_case) # 获取依赖响应数据 depend_response_key = depend_data.get_data_for_key(row) # 获取依赖的key(数据依赖字段excel) depend_key = self.data.get_depend_field(row) print(depend_key) #request_data[depend_key] = depend_response_key #op_json = OperrationJson('../dataconfig/user.json') # header = OperrationJson.get_data('token') #headers = {'Content-Type': 'application/json;charset=UTF-8'} #body = {'username': '******', 'password': '******'} else: res = self.runMethod.run_main(method, url, request_data, headers) print(res) else: print("NO way")
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 = [] #10 0,1,2,3 #获取单元格的行数 rows_count = self.data.get_case_lines() print rows_count for i in range(1, rows_count): 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) request_data = self.data.get_request_data(i) expect = self.data.get_expcet_data(i) header = self.data.is_header(i) depend_case = self.data.is_depend(i) if depend_case != None: self.depend_data = DependdentData(depend_case) #获取的依赖响应数据 depend_response_data = self.depend_data.get_data_for_key(i) #获取依赖的key depend_key = self.data.get_depend_field(i) request_data[depend_key] = depend_response_data if header == 'write': res = self.run_method.run_main(method, url, request_data) op_header = OperationHeader(res) op_header.write_cookie() elif header == 'yes': op_json = OperationJson('../dataconfig/cookie.json') cookie = op_json.get_data('apsid') cookies = {'apsid': cookie} res = self.run_method.run_main(method, url, request_data, cookies) else: res = self.run_method.run_main(method, url, request_data) print res if res == 200: self.data.write_result(i, 'pass') pass_count.append(i) else: self.data.write_result(i, 'fail') fail_count.append(i)