def test_flow_15(self, flow_9_6): """缓存中不存在提现记录,在数据库中存在一条orderid为test1的数据,重新请求,金额相同。 withdraw_status2。提现完成订单返回 分为status为失败""" PreconditionWithdrawal.mct_update_amount_pre(flow_9_6) # 补充测试商户的余额与可结算余额 # 创造一个提现数据 self.after_treatment_data = Handle.machaccnt_withdraw_handle(flow_9_6) befor_dic = MachAntWithdrawUp(self.after_treatment_data).amt_expected_results(is_borrow_money=False, is_service_charge=False, type=False) befor_dic['info_index']['with_draw_info_index'] = 1 befor_dic['info_index']['mch_accnt_info_index'] = 2 befor_dic['info_index']['his_settled_amount_index'] = 2 RequestBase.send_request(**self.after_treatment_data) PreconditionWithdrawal.update_pay_url(pay_type='fail') PreconditionWithdrawal.send_deal_withdraw() # 触发提现定时器 ClearingWithdrawal.redis_clear(self.after_treatment_data) # 清理缓存记录 try: res, html = RequestBase.send_request(**self.after_treatment_data) # 发送请求 self.assertNotEqual(len(html.get('biz_content').get('errmsg')), '交易失败', msg='没有返回数据库以存在的T0020181229204406000002交易失败的信息') log.info('本次请求结果为%s' % html) aft_dic = MachAntWithdrawUp(self.after_treatment_data).amt_expected_results(is_borrow_money=False, is_service_charge=False, type=False) excepted = json.loads(self.after_treatment_data['excepted_code']) Handle.machaccnt_withdraw_assert(self, html, excepted, befor_dic, aft_dic) except Exception as e: PreconditionWithdrawal.update_pay_url(pay_type='default') # 回复默认url地址 raise e PreconditionWithdrawal.update_pay_url(pay_type='default') # 回复默认url地址
def test_flow_16(self, flow_9_7): """缓存中不存在提现记录,在数据库中存在一条orderid为test1的数据, 有提现手续费,无准备金借取,重新请求,金额相同。 withdraw_status2。提现完成订单返回 分为status为失败""" PreconditionWithdrawal.mct_update_amount_pre(flow_9_7) # 创造一个提现数据 self.after_treatment_data = Handle.machaccnt_withdraw_handle(flow_9_7) PreconditionWithdrawal.mch_update_fixed_poundage(button=Constants.RESULT.TRUE) # 开启提现手续费 befor_dic = MachAntWithdrawUp(self.after_treatment_data).amt_expected_results(is_borrow_money=False, is_service_charge=True, type=False) befor_dic['info_index']['with_draw_info_index'] = 1 befor_dic['info_index']['mch_accnt_info_index'] = 4 # 提现扣减 手续费扣减 提现退还 手续费退还 befor_dic['info_index']['his_settled_amount_index'] = 6 # 三条正向操作提现记录 三条退还提现记录 befor_dic['info_index']['profit_index'] = 2 # 提现增加手续费 退还减少手续费 RequestBase.send_request(**self.after_treatment_data) PreconditionWithdrawal.update_pay_url(pay_type='fail') PreconditionWithdrawal.send_deal_withdraw() # 触发提现定时器 ClearingWithdrawal.redis_clear(self.after_treatment_data) # 清理缓存记录 try: res, html = RequestBase.send_request(**self.after_treatment_data) # 发送请求 self.assertNotEqual(len(html.get('biz_content').get('errmsg')), '交易失败', msg='没有返回数据库以存在的T0020181229204406000002交易失败的信息') log.info('本次请求结果为%s' % html) aft_dic = MachAntWithdrawUp(self.after_treatment_data).amt_expected_results(is_borrow_money=False, is_service_charge=True, type=False) excepted = json.loads(self.after_treatment_data['excepted_code']) Handle.machaccnt_withdraw_assert(self, html, excepted, befor_dic, aft_dic) except Exception as e: PreconditionWithdrawal.mch_update_fixed_poundage(button=Constants.RESULT.FALSE) # 关闭提现手续费 PreconditionWithdrawal.update_pay_url(pay_type='default') # 回复默认url地址 raise e PreconditionWithdrawal.mch_update_fixed_poundage(button=Constants.RESULT.FALSE) # 关闭提现手续费 PreconditionWithdrawal.update_pay_url(pay_type='default') # 回复默认url地址
def __init_data(self, button): """支付记账,退款data""" if button == 'zfb': data_list = Constants.CREATE.zfb_pay data_refund_list = Constants.CREATE.zfb_refund elif button == 'cib': data_list = Constants.CREATE.zfb_pay data_refund_list = Constants.CREATE.zfb_refund self.__u_t(data_list, key='20692') self.__u_t(data_refund_list, key='20692') elif button == 'dlb': data_list = Constants.CREATE.zfb_pay data_refund_list = Constants.CREATE.zfb_refund self.__u_t(data_list, key='2091') self.__u_t(data_refund_list, key='2091') elif button == 'yl': data_list = Constants.CREATE.zfb_pay data_refund_list = Constants.CREATE.zfb_refund self.__u_t(data_list, key='2056') self.__u_t(data_refund_list, key='2056') elif button == 'qq': data_list = Constants.CREATE.zfb_pay data_refund_list = Constants.CREATE.zfb_refund self.__u_t(data_list, key='20061') self.__u_t(data_refund_list, key='20061') else: data_list = Constants.CREATE.zfb_pay data_refund_list = Constants.CREATE.zfb_refund for i in data_list: data = self.zfb_pay_data(i) RequestBase.send_request(**data) for r in data_refund_list: data = self.zfb_pay_data(r, refund=True) RequestBase.send_request(**data)
def test_flow_3(self, flow_3): """ 缓存中存在一条提现记录,在未过期的情况下发起提现 """ PreconditionWithdrawal.mct_update_amount_pre(flow_3) # 补充测试商户的余额与可结算余额 self.after_treatment_data = Handle.machaccnt_withdraw_handle(flow_3) RequestBase.send_request(**self.after_treatment_data) self.err_public(flow_3)
def test_flow_5(self, flow_5): """ 缓存存在,但数据库不存在,发起提现请求 """ PreconditionWithdrawal.mct_update_amount_pre(flow_5) # 补充测试商户的余额与可结算余额 self.after_treatment_data = Handle.machaccnt_withdraw_handle(flow_5) RequestBase.send_request(**self.after_treatment_data) # 清理数据库记录 ClearingWithdrawal.withdrawal_clear(self.after_treatment_data) self.err_public(flow_5)
def test_flow_6(self, flow_6): """ 缓存中不存在提现记录,在数据库中存在一条orderid为test1的数据,重新请求,金额相同。 """ PreconditionWithdrawal.mct_update_amount_pre(flow_6) # 补充测试商户的余额与可结算余额 self.after_treatment_data = Handle.machaccnt_withdraw_handle(flow_6) RequestBase.send_request(**self.after_treatment_data) # 清理缓存记录 ClearingWithdrawal.redis_clear(self.after_treatment_data) self.err_public(flow_6)
def test_flow_4(self, flow_4): """ 缓存中不存在提现记录,在数据库中存在一条orderid为test1的数据,重新请求,金额不同。 """ PreconditionWithdrawal.mct_update_amount_pre(flow_4) # 补充测试商户的余额与可结算余额 self.after_treatment_data = Handle.machaccnt_withdraw_handle(flow_4) self.after_treatment_data['data']['biz_content']['amount'] = '5000' RequestBase.send_request(**self.after_treatment_data) # 清理缓存的记录 ClearingWithdrawal.redis_clear(self.after_treatment_data) self.after_treatment_data['data']['biz_content']['amount'] = '4000' self.err_public(flow_4)
def test_flow_18(self, flow_9_9): """超时时数据回滚流程测试""" PreconditionWithdrawal.mct_update_amount_pre(flow_9_9) # 补充测试商户的余额与可结算余额 # 创造一个提现数据 self.after_treatment_data = Handle.machaccnt_withdraw_handle(flow_9_9) befor_dic = MachAntWithdrawUp(self.after_treatment_data).amt_expected_results(is_borrow_money=False, is_service_charge=False, type=False) befor_dic['info_index']['with_draw_info_index'] = 1 befor_dic['info_index']['mch_accnt_info_index'] = 2 befor_dic['info_index']['his_settled_amount_index'] = 2 try: res, html = RequestBase.send_request(**self.after_treatment_data) # 发送请求 PreconditionWithdrawal.update_pay_url(pay_type='time_out') PreconditionWithdrawal.mch_update_request_num('5') PreconditionWithdrawal.send_deal_withdraw() # 触发提现定时器 log.info('本次请求结果为%s' % html) aft_dic = MachAntWithdrawUp(self.after_treatment_data).amt_expected_results(is_borrow_money=False, is_service_charge=False, type=False) excepted = json.loads(self.after_treatment_data['excepted_code']) Handle.machaccnt_withdraw_assert(self, html, excepted, befor_dic, aft_dic) except Exception as e: PreconditionWithdrawal.update_pay_url(pay_type='default') # 回复默认url地址 raise e PreconditionWithdrawal.update_pay_url(pay_type='default') # 回复默认url地址
def test_flow_not_change_pay(self, flow_not_change_pay): log.info('准备开始执行:^^^^^ %s ^^^^^ 编号的测试用例' % flow_not_change_pay['编号']) # 数据初次处理,将数据data中的变量进行替换 self.after_treatment_data = Handle.machaccnt_pay_dispatch_handle( flow_not_change_pay) log.info('参数化处理后的测试数据为:--%s' % self.after_treatment_data) # model模块中的事前调用预处理,主要是返回出数据库查询所使用的条件,和数据库层面的预期结果构造,对象MachPayDispatchUp self.mach_pay_up_obj = MachPayDispatchUp(self.after_treatment_data) log.info('预处理返回的内容 mach_pay_up_obj:: %s' % self.mach_pay_up_obj) # 通过precondition事前处理器拿到数据库在请求前所需要记录的数据,为了验证请求后的数据变化,去不同的子表中查询出 金额 事前 事后等数据 该子商户现有金额 amt_info_bef, mch_ant_bef = PreconditionKeepingAccounts.mct_pay_dispatch_pre( self.mach_pay_up_obj) res, html = RequestBase.send_request(** self.after_treatment_data) # 发送请求 log.info('本次请求结果为%s' % html) # 请求后查询数据变化 excepted = json.loads(self.after_treatment_data['excepted_code']) self.amt_info_after, mch_ant_after = PreconditionKeepingAccounts.mct_pay_dispatch_pre( self.mach_pay_up_obj) log.info('本次数据库查询实际结果返回为 amt_info_after:%s \n mch_ant_after:%s' % (self.amt_info_after, mch_ant_after)) # 进行结果校验对比,对比内容为excl中的验证点 Handle.machaccnt_pay_dispatch_assert(self, html, excepted, self.mach_pay_up_obj, mch_ant_bef, mch_ant_after, self.amt_info_after) log.info( '********************************测试结束 -- 数据清理完成 --********************************************' )
def err_public(self, data): log.info('准备开始执行:^^^^^ %s ^^^^^ 编号的测试用例' % data['编号']) self.after_treatment_data = Handle.machaccnt_pay_dispatch_handle(data) log.info('参数化处理后的测试数据为:--%s' % self.after_treatment_data) res, html = RequestBase.send_request(**self.after_treatment_data) # 发送请求 log.info('本次请求结果为%s' % html) excepted = json.loads(self.after_treatment_data['excepted_code']) Handle.machaccnt_promotion_refund_dispatch_assert(self, html, excepted, part=Constants.RESULT.TRUE)
def test_unusual_parameter(self, unusual_parameter): """异常参数校验方法""" log.info('准备开始执行:^^^^^ %s ^^^^^ 编号的测试用例' % unusual_parameter['编号']) self.after_treatment_data = Handle.machaccnt_withdraw_handle(unusual_parameter) log.info('参数化处理后的测试数据为:--%s' % self.after_treatment_data) res, html = RequestBase.send_request(**self.after_treatment_data) # 发送请求 log.info('==============================本次请求结果为:::%s' % html) excepted = json.loads(self.after_treatment_data['excepted_code']) Handle.machaccnt_withdraw_assert(self, html, excepted, part=True)
def test_flow_1(self, flow_1): """缓存中不存在提现记录,在数据库中存在一条orderid为test1的数据,重新请求,金额相同,状态为3。 """ PreconditionWithdrawal.mct_update_amount_pre(flow_1) # 补充测试商户的余额与可结算余额 # 创造一个提现数据 self.after_treatment_data = Handle.machaccnt_withdraw_handle(flow_1) RequestBase.send_request(**self.after_treatment_data) PreconditionWithdrawal.mch_update_request_num('6') # 将request_num置为6 PreconditionWithdrawal.update_pay_url(pay_type='time_out') PreconditionWithdrawal.send_deal_withdraw() # 触发提现定时器 ClearingWithdrawal.redis_clear(self.after_treatment_data) # 清理缓存记录 # 构造预期结果 kwargs = MachRefundPass.creat_except_data(with_draw_info_index=1, mch_accnt_info_index=3, his_settled_amount_index=3) try: self.flow_pass_public(data=flow_1, is_borrow_money=False, is_service_charge=False, type_befor=True, type_after=False, **kwargs) except Exception as e: PreconditionWithdrawal.update_pay_url(pay_type='default') # 回复默认url地址 raise e PreconditionWithdrawal.update_pay_url(pay_type='default') # 回复默认url地址
def test_unusual_parameter2(self, unusual_parameter): # 提前准备一条数据 PreconditionKeepingAccounts.mct_promotion_refund_pre( Constants.PRE_DATA.PAY_DATA) self.after_treatment_data = Handle.machaccnt_pay_dispatch_handle( unusual_parameter) log.info('参数化处理后的测试数据为:--%s' % self.after_treatment_data) res, html = RequestBase.send_request(** self.after_treatment_data) # 发送请求 log.info('本次请求结果为%s' % html) excepted = json.loads(self.after_treatment_data['excepted_code']) Handle.machaccnt_pay_dispatch_assert(self, html, excepted, part=True)
def flow_pass_public(self, data, is_borrow_money, is_service_charge, type_befor, type_after, **kwargs): """流程公用""" log.info('准备开始执行:^^^^^ %s ^^^^^ 编号的测试用例' % data['编号']) befor_dic = MachAntWithdrawUp(self.after_treatment_data).amt_expected_results(is_borrow_money, is_service_charge, type_befor, **kwargs) res, html = RequestBase.send_request(**self.after_treatment_data) # 发送请求 log.info('本次请求结果为%s' % html) aft_dic = MachAntWithdrawUp(self.after_treatment_data).amt_expected_results(is_borrow_money, is_service_charge, type_after, **kwargs) excepted = json.loads(self.after_treatment_data['excepted_code']) Handle.machaccnt_withdraw_assert(self, html, excepted, befor_dic, aft_dic)
def flow_pass_public(self, data, pay_type, *args, **kwargs): """流程公用 pay_type 为 模拟返回结果""" log.info('准备开始执行:^^^^^ %s ^^^^^ 编号的测试用例' % data['编号']) befor_tuple = MachAntWithdrawUp( self.after_treatment_data).timer_expected_results(True, *args) res, html = RequestBase.send_request(** self.after_treatment_data) # 发送请求 if kwargs.get('update_withdraw') is not None: PreconditionWithdrawal.mch_update_withdraw_status( kwargs['update_withdraw']) if kwargs.get('request_num') is not None: PreconditionWithdrawal.mch_update_request_num( kwargs['request_num']) PreconditionWithdrawal.update_pay_url(pay_type=pay_type) PreconditionWithdrawal.send_deal_withdraw() # 触发提现定时器 time.sleep(2) log.info('本次请求结果为%s' % html) after_tuple = MachAntWithdrawUp( self.after_treatment_data).timer_expected_results(False, *args) excepted = json.loads(self.after_treatment_data['excepted_code']) Handle.machaccnt_timer_assert(self, html, excepted, befor_tuple, after_tuple)
def test_unusual_parameter3(self, unusual_parameter): # 提前准备一条数据 PreconditionKeepingAccounts.mct_promotion_refund_pre( Constants.PRE_DATA.PAY_DATA) self.after_treatment_data = Handle.machaccnt_pay_dispatch_handle( unusual_parameter) log.info('参数化处理后的测试数据为:--%s' % self.after_treatment_data) res, html = RequestBase.send_request(** self.after_treatment_data) # 发送请求 log.info('本次请求结果为%s' % html) excepted = json.loads(self.after_treatment_data['excepted_code']) try: Handle.machaccnt_pay_dispatch_assert(self, html, excepted, part=True) except Exception as e: ClearingKeepingAccounts.err_data_clear( self.after_treatment_data, trans_no='MH20181229115220NBUu') raise e ClearingKeepingAccounts.err_data_clear(self.after_treatment_data, trans_no='MH20181229115220NBUu')
def __init_true_data(self): button_list = ['zfb','cib','dlb','yl','qq'] for button in button_list: if button == 'zfb': data_creat_pay_true_list = Constants.CREATE().get_creat_pay_true_list() data_creat_refund_true_list = Constants.CREATE().get_creat_refund_true_list() data_creat_dispatch_true_list = Constants.CREATE().get_creat_dispatch_true_list() data_creat_dispatch_refund_true_list = Constants.CREATE().get_creat_dispatch_refund_true_list() elif button == 'cib': data_creat_pay_true_list = Constants.CREATE().get_creat_pay_true_list() data_creat_refund_true_list = Constants.CREATE().get_creat_refund_true_list() data_creat_dispatch_true_list = Constants.CREATE().get_creat_dispatch_true_list() data_creat_dispatch_refund_true_list = Constants.CREATE().get_creat_dispatch_refund_true_list() self.__u_t(data_creat_pay_true_list, key='20692') self.__u_t(data_creat_refund_true_list, key='20692') self.__u_t(data_creat_dispatch_true_list, key='20692') self.__u_t(data_creat_dispatch_refund_true_list, key='20692') elif button == 'dlb': data_creat_pay_true_list = Constants.CREATE().get_creat_pay_true_list() data_creat_refund_true_list = Constants.CREATE().get_creat_refund_true_list() data_creat_dispatch_true_list = Constants.CREATE().get_creat_dispatch_true_list() data_creat_dispatch_refund_true_list = Constants.CREATE().get_creat_dispatch_refund_true_list() self.__u_t(data_creat_pay_true_list, key='2091') self.__u_t(data_creat_refund_true_list, key='2091') self.__u_t(data_creat_dispatch_true_list, key='2091') self.__u_t(data_creat_dispatch_refund_true_list, key='2091') elif button == 'yl': data_creat_pay_true_list = Constants.CREATE().get_creat_pay_true_list() data_creat_refund_true_list = Constants.CREATE().get_creat_refund_true_list() data_creat_dispatch_true_list = Constants.CREATE().get_creat_dispatch_true_list() data_creat_dispatch_refund_true_list = Constants.CREATE().get_creat_dispatch_refund_true_list() self.__u_t(data_creat_pay_true_list, key='2056') self.__u_t(data_creat_refund_true_list, key='2056') self.__u_t(data_creat_dispatch_true_list, key='2056') self.__u_t(data_creat_dispatch_refund_true_list, key='2056') elif button == 'qq': data_creat_pay_true_list = Constants.CREATE().get_creat_pay_true_list() data_creat_refund_true_list = Constants.CREATE().get_creat_refund_true_list() data_creat_dispatch_true_list = Constants.CREATE().get_creat_dispatch_true_list() data_creat_dispatch_refund_true_list = Constants.CREATE().get_creat_dispatch_refund_true_list() self.__u_t(data_creat_pay_true_list, key='20061') self.__u_t(data_creat_refund_true_list, key='20061') self.__u_t(data_creat_dispatch_true_list, key='20061') self.__u_t(data_creat_dispatch_refund_true_list, key='20061') else: data_creat_pay_true_list = '' data_creat_refund_true_list = '' data_creat_dispatch_true_list = '' data_creat_dispatch_refund_true_list = '' for i in data_creat_pay_true_list: data = self.zfb_pay_data(i, refund=False) RequestBase.send_request(**data) for i in data_creat_refund_true_list: data = self.zfb_pay_data(i, refund=True) RequestBase.send_request(**data) for i in data_creat_dispatch_true_list: data = self.diapatch_data(i, refund=False) RequestBase.send_request(**data) for i in data_creat_dispatch_refund_true_list: data = self.diapatch_data(i, refund=True) RequestBase.send_request(**data)
def mct_promotion_refund_pre(data): """ 活动退款记账时需要提前准备一条活动记账的准备数据 :return: """ RequestBase.send_request(**data)