def testCouponSendAndCancel(self, data):
        '''发券并撤销业务场景:发券->撤销'''

        # 场景顺序执行
        biz_id_01 = scripts.rndTimeStr() + '010'
        # ----修改数据----
        data['CouponSend']['biz_id'] = biz_id_01

        # 整合数据,调用接口,获取返回结果
        sendResult = scripts.loadtestInterface(instance=HttpWebRequest(),
                                               instance_pro='post',
                                               data=data['CouponSend'],
                                               appid=data['Appid'],
                                               desc=data['Desc'],
                                               url=data['CouponSendUrl'])
        self.assertEqual(sendResult['errcode'], 0, sendResult['errmsg'])  #发券断言

        #撤销发券
        data['CouponCancel']['biz_id'] = biz_id_01

        # 整合数据,调用接口,获取返回结果
        cancelResult = scripts.loadtestInterface(instance=HttpWebRequest(),
                                                 instance_pro='post',
                                                 data=data['CouponCancel'],
                                                 appid=data['Appid'],
                                                 desc=data['Desc'],
                                                 url=data['CouponCancelUrl'])
        #断言
        self.assertEqual(cancelResult['errcode'], 0,
                         cancelResult['errmsg'])  #撤销发券断言
    def testChargeAndCancel(self,data):
        '''储值撤销场景:储值预览->储值提交->储值撤销'''
        '''--------------------------交易预览接口----------------------'''
        biz_id_01 = scripts.rndTimeStr() + '007'
        data['ChargePreview']['biz_id'] = biz_id_01

        # 整合数据,调用接口,获取返回结果
        res = scripts.loadtestInterface(
            instance=HttpWebRequest(),instance_pro='post',data=data['ChargePreview'],appid=data['Appid'],
            desc=data['Desc'],url=data['ChargePreviewUrl'],v=data['V']
        )
        self.assertEquals(res['errcode'], 0, res['errmsg']) #交易预览断言

        '''--------------------------交易提交接口----------------------'''
        data['ChargeCommit']['biz_id'] = biz_id_01

        # 整合数据,调用接口,获取返回结果
        commitResult = scripts.loadtestInterface(
            instance=HttpWebRequest(),instance_pro='post',data=data['ChargeCommit'],appid=data['Appid'],
            desc=data['Desc'],url=data['ChargeCommitUrl'],v=data['V']
        )
        self.assertEquals(commitResult['errcode'], 0, commitResult['errmsg']) #交易提交断言

        '''--------------------------交易撤销接口----------------------'''
        data['ChargeCancel']['biz_id'] = biz_id_01

        # 整合数据,调用接口,获取返回结果
        cancelResult = scripts.loadtestInterface(
            instance=HttpWebRequest(),instance_pro='post',data=data['ChargeCancel'],appid=data['Appid'],
            desc=data['Desc'],url=data['ChargeCancelUrl'],v=data['V']
        )
        self.assertEquals(cancelResult['errcode'], 0, cancelResult['errmsg']) #交易撤销断言
    def testDealAndRollback(self,data):
        '''消费并冲正场景: 交易预览->交易冲正'''

        #交易预览
        biz_id_01 = scripts.rndTimeStr() +'012'
        data['DealPreview']['biz_id'] = biz_id_01
        # 整合数据,调用接口,获取返回结果
        reviewResult = scripts.loadtestInterface(
            instance=HttpWebRequest(),instance_pro='post',data=data['DealPreview'],appid=data['Appid'],
            desc=data['Desc'],url=data['DealPreviewUrl']
        )
        #断言
        self.assertEqual(reviewResult['errcode'],0,reviewResult['errmsg']) #消费预览断言

        #交易冲正
        data['DealRollback']['biz_id'] = biz_id_01
        # 整合数据,调用接口,获取返回结果
        rollResult = scripts.loadtestInterface(
            instance=HttpWebRequest(),instance_pro='post',data=data['DealRollback'],appid=data['Appid'],
            desc=data['Desc'],url=data['DealRollbackUrl']
        )
        #断言
        self.assertEqual(rollResult['errcode'],0,rollResult['errmsg']) #交易冲正断言

        #交易提交,冲正之后不允许提交3032交易异常
        data['DealCommit']['biz_id'] = biz_id_01
        # 整合数据,调用接口,获取返回结果
        commitResult = scripts.loadtestInterface(
            instance=HttpWebRequest(),instance_pro='post',data=data['DealCommit'],appid=data['Appid'],
            desc=data['Desc'],url=data['DealCommitUrl']
        )
        #断言
        self.assertEqual(commitResult['errcode'],3032,commitResult['errmsg']) #交易冲正断言
    def testCouponSendAndAdjust(self, data):
        '''发券并手工调账核销券:发券->获取用户账户信息->手工调账核销券'''

        #发券
        biz_id_01 = scripts.rndTimeStr() + '013'
        # ----修改数据----
        data['CouponSend']['biz_id'] = biz_id_01

        # 整合数据,调用接口,获取返回结果
        sendResult = scripts.loadtestInterface(instance=HttpWebRequest(),
                                               instance_pro='post',
                                               data=data['CouponSend'],
                                               appid=data['Appid'],
                                               desc=data['Desc'],
                                               url=data['CouponSendUrl'])
        self.assertEqual(sendResult['errcode'], 0,
                         sendResult['errmsg'])  #发送券接口断言

        #获取用户账户信息
        # 整合数据,调用接口,获取返回结果
        accountResult = scripts.loadtestInterface(instance=HttpWebRequest(),
                                                  instance_pro='post',
                                                  data=data['UserAccount'],
                                                  appid=data['Appid'],
                                                  desc=data['Desc'],
                                                  url=data['UserAccountUrl'])
        #接口断言
        self.assertEqual(accountResult['errcode'], 0,
                         accountResult['errmsg'])  #获取用户账户信息接口断言
        self.assertTrue(accountResult['res'], accountResult['errmsg'])
        coupon_id_02 = accountResult['res'][0]['coupons'][0]['coupon_ids'][
            0]  #券id结构取值

        #手工调账核销券
        data['CouponAdjust']['coupon_ids'].append(
            coupon_id_02)  #将上一步查到的id传给核销接口

        # 整合数据,调用接口,获取返回结果
        adjustResult = scripts.loadtestInterface(instance=HttpWebRequest(),
                                                 instance_pro='post',
                                                 data=data['CouponAdjust'],
                                                 appid=data['Appid'],
                                                 desc=data['Desc'],
                                                 url=data['CouponAdjustUrl'])
        #断言
        self.assertEqual(adjustResult['errcode'], 0,
                         adjustResult['errmsg'])  #手工调帐核销断言
        self.assertEqual(adjustResult['res']['result'], 'SUCCESS',
                         adjustResult['res']['result'])  #手工调帐返回结果断言
    def testChargeAndReceipt(self, data):
        '''储值并开发票场景:储值预览->储值提交->可开发票查询->开发票'''
        '''step-1--------------------------交易预览接口----------------------'''
        biz_id_01 = scripts.rndTimeStr() + '007'
        data['ChargePreview']['biz_id'] = biz_id_01

        # 整合数据,调用接口,获取返回结果
        res = scripts.loadtestInterface(instance=HttpWebRequest(),
                                        instance_pro='post',
                                        data=data['ChargePreview'],
                                        appid=data['Appid'],
                                        desc=data['Desc'],
                                        url=data['ChargePreviewUrl'])
        self.assertEquals(res['errcode'], 0, res['errmsg'])  #交易预览断言
        '''step-2--------------------------交易提交接口----------------------'''
        data['ChargeCommit']['biz_id'] = biz_id_01

        # 整合数据,调用接口,获取返回结果
        commitResult = scripts.loadtestInterface(instance=HttpWebRequest(),
                                                 instance_pro='post',
                                                 data=data['ChargeCommit'],
                                                 appid=data['Appid'],
                                                 desc=data['Desc'],
                                                 url=data['ChargeCommitUrl'])
        self.assertEquals(commitResult['errcode'], 0,
                          commitResult['errmsg'])  #交易提交断言
        '''step-3--------------------------用户可开发票查询接口----------------------'''
        # 整合数据,调用接口,获取返回结果
        selectResult = scripts.loadtestInterface(
            instance=HttpWebRequest(),
            instance_pro='post',
            data=data['ChargeReceiptstat'],
            appid=data['Appid'],
            desc=data['Desc'],
            url=data['ChargeReceiptstatUrl'])
        self.assertEquals(selectResult['errcode'], 0, selectResult['errmsg'])
        self.assertTrue(selectResult['res'])
        '''step-4--------------------------开发票接口----------------------'''
        data['ChargeReceiptbatch']['biz_id'] = str(biz_id_01)
        # 整合数据,调用接口,获取返回结果
        batchResult = scripts.loadtestInterface(
            instance=HttpWebRequest(),
            instance_pro='post',
            data=data['ChargeReceiptbatch'],
            appid=data['Appid'],
            desc=data['Desc'],
            url=data['ChargeReceiptbatchUrl'])
        self.assertEquals(batchResult['errcode'], 0, batchResult['errmsg'])
        self.assertTrue(batchResult['res']['result'] == "开发票成功")
    def testUseruopencard(self, data):
        '''用户接口:unionid开卡/user/uopencard'''

        #unionid电子卡号
        data['UserUopencard']['unionid'] = scripts.rndTimeStr() + '005'

        # 整合数据,调用接口,获取返回结果
        res = scripts.loadtestInterface(instance=HttpWebRequest(),
                                        instance_pro='post',
                                        data=data['UserUopencard'],
                                        appid=data['Appid'],
                                        desc=data['Desc'],
                                        url=data['Url'])
        #断言
        self.assertEqual(res['errcode'], 0, res['errmsg'])
    def testCouponsend(self, data):
        '''券接口:发券/coupon/send'''

        biz_id = scripts.rndTimeStr() + '006'
        data['CouponSend']['biz_id'] = biz_id

        # 整合数据,调用接口,获取返回结果
        res = scripts.loadtestInterface(instance=HttpWebRequest(),
                                        instance_pro='post',
                                        data=data['CouponSend'],
                                        appid=data['Appid'],
                                        desc=data['Desc'],
                                        url=data['Url'])
        #断言
        self.assertEqual(res['errcode'], 0, res['errmsg'])
        self.assertTrue(res['res'].has_key('biz_id'))
    def testCouponOtherSendAndCancel(self, data):
        '''异业营销发券并撤销场景: 获取异业营销活动列表->异业营销发券->异业营销券码核销'''

        # 获取异业营销活动列表
        # 整合数据,调用接口,获取返回结果
        result = scripts.loadtestInterface(instance=HttpWebRequest(),
                                           instance_pro='post',
                                           data=data['OtherList'],
                                           appid=data['Appid'],
                                           desc=data['Desc'],
                                           url=data['OtherListUrl'])
        self.assertTrue(result['res'])
        aid = str(result['res'][0]['id'])

        # 异业营销发券
        biz_id_01 = scripts.rndTimeStr() + '011'
        #----------参数给值------------#
        data['OtherSend']['biz_id'] = biz_id_01  #唯一值
        data['OtherSend']['aid'] = aid  #活动id

        # 整合数据,调用接口,获取返回结果
        sendresult = scripts.loadtestInterface(instance=HttpWebRequest(),
                                               instance_pro='post',
                                               data=data['OtherSend'],
                                               appid=data['Appid'],
                                               desc=data['Desc'],
                                               url=data['OtherSendUrl'])
        self.assertEqual(sendresult['errcode'], 0,
                         sendresult['errmsg'])  #异业营销发券接口断言
        coupon_code = sendresult['res']['coupon_codes'][0]['code']

        #异业营销券码核销
        data['OtherVerification']['coupon_code'] = coupon_code

        # 整合数据,调用接口,获取返回结果
        cancelresult = scripts.loadtestInterface(
            instance=HttpWebRequest(),
            instance_pro='post',
            data=data['OtherVerification'],
            appid=data['Appid2'],
            desc=data['Desc'],
            url=data['OtherVerificationUrl'],
            Appkey=data['Appkey2'])
        self.assertEqual(cancelresult['errcode'], 0,
                         cancelresult['errmsg'])  #断言
    def testChargeAndDeal(self, data):
        '''自定义充值并消费储值业务场景:储值预览->储值提交->交易预览->交易提交->交易撤销'''

        biz_id_01 = str(scripts.rndTimeStr()) + '008'
        data['ChargePreview']['biz_id'] = biz_id_01
        '''--------------------------储值预览----------------------'''
        # 整合数据,调用接口,获取返回结果
        previewResult = scripts.loadtestInterface(instance=HttpWebRequest(),
                                                  instance_pro='post',
                                                  data=data['ChargePreview'],
                                                  appid=data['Appid'],
                                                  desc=data['Desc'],
                                                  url=data['ChargePreviewUrl'],
                                                  Appkey=data['Appkey'])
        self.assertEquals(previewResult['errcode'], 0,
                          previewResult['errmsg'])  #储值预览
        '''--------------------------储值提交----------------------'''
        data['ChargeCommit']['biz_id'] = biz_id_01

        # 整合数据,调用接口,获取返回结果
        commitResult = scripts.loadtestInterface(instance=HttpWebRequest(),
                                                 instance_pro='post',
                                                 data=data['ChargeCommit'],
                                                 appid=data['Appid'],
                                                 desc=data['Desc'],
                                                 url=data['ChargeCommitUrl'],
                                                 Appkey=data['Appkey'])
        self.assertEquals(commitResult['errcode'], 0,
                          commitResult['errmsg'])  #储值提交
        '''--------------------------交易预览----------------------'''
        biz_id_03 = scripts.rndTimeStr() + '009'
        data['DealPreview']['biz_id'] = biz_id_03

        # 整合数据,调用接口,获取返回结果
        dealPreviewResult = scripts.loadtestInterface(
            instance=HttpWebRequest(),
            instance_pro='post',
            data=data['DealPreview'],
            appid=data['Appid'],
            desc=data['Desc'],
            url=data['DealPreviewUrl'],
            Appkey=data['Appkey'])
        self.assertEquals(dealPreviewResult['errcode'], 0,
                          dealPreviewResult['errmsg'])  #交易预览
        '''--------------------------交易提交---------------------'''
        data['DealCommit']['biz_id'] = biz_id_03

        # 整合数据,调用接口,获取返回结果
        dealcommitResult = scripts.loadtestInterface(instance=HttpWebRequest(),
                                                     instance_pro='post',
                                                     data=data['DealCommit'],
                                                     appid=data['Appid'],
                                                     desc=data['Desc'],
                                                     url=data['DealCommitUrl'],
                                                     Appkey=data['Appkey'])
        self.assertEquals(dealcommitResult['errcode'], 0,
                          dealcommitResult['errmsg'])  #交易提交
        '''-------------------------交易撤销---------------------'''
        data['DealCancel']['biz_id'] = biz_id_03

        # 整合数据,调用接口,获取返回结果
        dealcancelResult = scripts.loadtestInterface(instance=HttpWebRequest(),
                                                     instance_pro='post',
                                                     data=data['DealCancel'],
                                                     appid=data['Appid'],
                                                     desc=data['Desc'],
                                                     url=data['DealCancelUrl'],
                                                     Appkey=data['Appkey'])
        self.assertEquals(dealcancelResult['errcode'], 0,
                          dealcancelResult['errmsg'])  #交易取消