class RunTest: def __init__(self): self.run_method = RunMethod() self.data = GetData() self.com = CommonUtil() #程序执行的入口 def go_on_run(self): res = None rows_count = int(self.data.get_case_lines()) 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_way(i) request_data = self.data.get_data_for_json(i) expect = self.data.get_expect_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 res = self.run_method.run_main(method, url, request_data, header) #print res if self.com.is_contain(expect, res): # self.data.write_result(i,'pass') print 'pass' else: # self.data.write_result(i, 'fail') print 'fail'
class RunTest: def __init__(self): self.run_method = RunMethod() self.data = GetData() self.com_util = CommonUtil() def go_on_run(self): pass_count = [] fail_count = [] rows_count = self.data.get_case_lines() 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_data1 = self.data.get_data_for_json(i) request_data = json.dumps(request_data1) expect = self.data.get_expect_data(i) header1 = self.data.is_header(i) header = eval(header1) token = self.data.get_token(i) depend_case = self.data.is_depend(i) if depend_case != None: self.depend_data = DependentData(depend_case) # 响应数据 depend_response_data = self.depend_data.get_data_for_key(i) # 获取依赖的key depend_key = self.data.get_depend_field(i) # 数据更新 request_data1[depend_key] = depend_response_data request_data = json.dumps(request_data1) if token == 'write': res = self.run_method.run_main(method, url, request_data, header) res = json.loads(res) op_header = OperationHeader() op_header.write_token(res["data"]) res = json.dumps(res) elif token == 'yes': # 获取当前文件路径 current_path = os.path.abspath(__file__) # 获取当前文件的父目录 father_path = os.path.dirname(current_path) path = os.path.join(father_path, "wenjian", "cookie.json") op_json = OperationJson(path) token = op_json.get_data("access_token") tokens = {'Authorization': "Bearer " + token} # 将header与token合并 header = dict(header, **tokens) res = self.run_method.run_main(method, url, request_data, header) if self.com_util.is_contain(expect, res): self.data.write_result(i, "pass") pass_count.append(i) else: self.data.write_result(i, res) fail_count.append(i) send_main(pass_count, fail_count)
class main(): def __init__(self): self.run_method = RunMethod() self.data = GetData() self.json = UseJson() def run(self): res = header = method = None pass_count = [] fail_count = [] rows_count = self.data.get_case_lines() 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_data_for_json(i) # expect = self.data.get_expcet_data_for_mysql(i) header = self.data.is_header(i) request_name = self.data.get_request_name(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 == 'yes': token = self.json.get_data("token") head = {"token": token} res = self.run_method.main(method)(url, request_data, head) else: res = self.run_method.main(method)(url, request_data) if res['error_code'] & res['error_code'] == 0: print("测试:" + request_name + ",", "结果:success") #存token到文件 if 'token' in res['data']: self.json.write_data("token", res['data']['token']) elif res['error_code'] & res['error_code'] != 0: print("测试:" + request_name + ",", "结果:fail" + ",", "原因:" + res["msg"]) else: print("测试:" + request_name + ",", "结果:fail" + ",", "原因:" + res)
class RunTest: def __init__(self): self.run_method = RunMethod() self.data = GetData() def go_on_run(self): rows_count = self.data.get_case_lines() for i in range(1, rows_count): url = self.data.get_request_url(i) method = self.data.get_request_method(i) is_run = self.data.get_is_run(i) data = self.data.get_data_for_json(i) header = self.data.is_header(i) if is_run: res = self.run_method.run_main(method, url, data, header) return res
class RunMain: def __init__(self): self.server = Server() self.data = GetData() def run_method(self): self.server.main() action_method = ActionMethod() # print('20秒后开始执行用例') # action_method.time_sleep(20) print('开始执行用例') lines = self.data.get_case_lines() # print(lines) for i in range(1, lines): # 操作步骤 handle_step = self.data.get_method_name(i) # 操作界面 handle_page = self.data.get_handle_page(i) # 操作元素 handle_element = self.data.get_handle_element(i) # 操作值 handle_value = self.data.get_handle_value(i) # 预期步骤 expect_handle = self.data.get_expect_handle(i) # 预期元素的界面 expect_page = self.data.get_expect_page(i) # 预期元素 expect_element = self.data.get_expect_element(i) # 运行开关 switch_value = self.data.get_is_run(i) # 备注信息 # tips = self.data.get_tips(i) # if handle_step == 'input': # # 输入 # if handle_element == None: # print('操作元素为空。使用‘input’方法时,必须输入操作元素') # return None # elif handle_value == None: # print('操作值为空。使用‘input’方法时,必须输入操作值') # return None # action_method.input(handle_element, handle_value) # elif handle_step == 'click_on': # # 点击 # if handle_element == None: # print('操作元素为空。使用‘click_on’方法时,必须输入操作元素') # return None # action_method.click_on(handle_element) # elif handle_step == 'time_sleep': # # 延时等待 # if handle_value == None: # print('操作值为空。使用‘time_sleep’方法时,必须输入操作值') # return None # action_method.time_sleep(handle_value) # elif handle_step == 'swipe_left': # # 左滑 # action_method.swipe_left() # elif handle_step == 'swipe_right': # # 右滑 # action_method.swipe_right() # elif handle_step == 'swipe_up': # # 上滑 # action_method.swipe_up() # elif handle_step == 'swipe_down': # # 下滑 # action_method.swipe_down() # else: # print('你输入的操作方法有误,请按规范输入相应操作方法') # return None if switch_value == True: if handle_step != None: excute_method = getattr(action_method, handle_step) if handle_value != None: if handle_element != None: print(handle_element, handle_page, handle_value) excute_method(handle_element, handle_page, handle_value) print('完成case', i) else: excute_method(handle_value) print('完成case', i) elif handle_element != None: excute_method(handle_element, handle_page) print('完成case', i) else: excute_method() print('完成case', i) if expect_handle != None: result_method = getattr(action_method, expect_handle) # if expect_page != None: result = result_method(expect_element, expect_page) # print(result) # else: # result = result_method(expect_element) if result == None: print('case{}验证通过'.format(i)) self.data.write_file(i, 'Pass') else: print('case{}验证未通过'.format(i)) self.data.write_file(i, 'Fail') else: print('未找到cese{}的操作方法,因此跳过该条case'.format(i))
class RunTest: """docstring for RunTest""" def __init__(self): # 实例化http请求方法对象 self.run_method = RunMain() # 实例化获取excel内容方法的对象 self.data = GetData() self.com_util = CommonUtil() # 执行程序,遍历case(除了表头) def start_mycase(self): pass_count = [] fail_count = [] rows_count = self.data.get_case_lines() for i in range(2, rows_count + 1): # 拿到是否执行的boolean is_run = self.data.get_is_run(i) if is_run: # 拿到url url = self.data.get_request_url(i) # 拿到请求类型 request_method = self.data.get_request_method(i) # 拿到请求需要的json参数 request_json = self.data.get_data_json(i) # 是否需要填写header is_header = self.data.get_is_header(i) # 拿到预期结果 expected_data = self.data.get_expected_results(i) # 判断用例是否需要依赖别的用例 depend_case = self.data.is_denpend(i) if depend_case != None: print(depend_case) print(type(depend_case)) self.depend_data = DependData(depend_case) #获取依赖的响应数据 # print(i) depend_response_data = self.depend_data.get_data_key(i) # 获取依赖的key depend_key = self.data.get_depend_file(i) # 更新依赖key的数据 # request_json[self.depend_data] = depend_response_data # print("请求需要的参数:",request_json) # print("header:",is_header) res = self.run_method.run_main(url, request_method, request_json, is_header) # print(res) # if int(res_status) == 200 : # self.data.write_result(i,'pass') # pass_count.append(i) # # print('成功执行') # else: # self.data.write_result(i,'fail') # fail_count.append(i) # print('成功执行') print(type(expected_data)) print(type(res)) if self.com_util.is_contain(expected_data, res): self.data.write_result(i, 'pass') pass_count.append(i) else: self.data.write_result(i, res) fail_count.append(i) print('成功的个数:', len(pass_count)) print('失败的个数:', len(fail_count))