Esempio n. 1
0
class TestDeal(unittest.TestCase):
    """消费模块"""
    @classmethod
    def setUpClass(cls):
        pass

    @classmethod
    def tearDownClass(cls):
        pass

    #--------------------------------------Deal START---------------------------------------#
    @ddt.data(*(scripts.loadDdtData(filename='Deal.yaml',
                                    caseflag='DEAL_CASE1')))
    def testDealconsumetoday(self, data):
        '''交易模块:当日交易计录统计/consume/today'''

        # 整合数据,调用接口,获取返回结果
        res = scripts.loadtestInterface(instance=HttpWebRequest(),
                                        instance_pro='post',
                                        data=data['ConsumeToday'],
                                        appid=data['Appid'],
                                        desc=data['Desc'],
                                        url=data['Url'])
        # 断言
        self.assertEqual(res['errcode'], 0, res['errmsg'])
        self.assertTrue(res['res'].has_key('shop'))

    @ddt.data(*(scripts.loadDdtData(filename='Deal.yaml',
                                    caseflag='DEAL_CASE2')))
    def testDealgetpaytype(self, data):
        '''交易模块:获取交易/储值支付方式/deal/getpaytype'''

        # 整合数据,调用接口,获取返回结果
        res = scripts.loadtestInterface(instance=HttpWebRequest(),
                                        instance_pro='post',
                                        data=data['DealGetPayType'],
                                        appid=data['Appid'],
                                        desc=data['Desc'],
                                        url=data['Url'])
        # 断言
        self.assertEqual(res['errcode'], 0, res['errmsg'])
        self.assertTrue(res['res'].has_key('1'))

    @ddt.data(*(scripts.loadDdtData(filename='Deal.yaml',
                                    caseflag='DEAL_CASE3')))
    def testDealsendnotification(self, data):
        '''交易模块/deal/sendnotification'''

        # 整合数据,调用接口,获取返回结果
        res = scripts.loadtestInterface(instance=HttpWebRequest(),
                                        instance_pro='post',
                                        data=data['DealSendnotification'],
                                        appid=data['Appid'],
                                        desc=data['Desc'],
                                        url=data['Url'])
        # 断言
        self.assertEqual(res['errcode'], 0, res['errmsg'])
        self.assertTrue(res['res']['result'] == 'SUCCESS')
Esempio n. 2
0
class TestGrade(unittest.TestCase):
    """等级模块"""
    @classmethod
    def setUpClass(cls):
        pass

    @classmethod
    def tearDownClass(cls):
        pass

    #----------------------------------------Grade START---------------------------------------#
    #等级接口
    @ddt.data(*(scripts.loadDdtData(filename='Grade.yaml',
                                    caseflag='GRADE_CASE1')))
    def testGraderule(self, data):
        '''等级接口:查看等级设置/grade/rule'''

        # 整合数据,调用接口,获取返回结果
        res = scripts.loadtestInterface(instance=HttpWebRequest(),
                                        instance_pro='post',
                                        data=data['GradeRule'],
                                        appid=data['Appid'],
                                        desc=data['Desc'],
                                        url=data['Url'])
        # 断言
        self.assertEqual(res['errcode'], 0, res['errmsg'])
        self.assertTrue(res['res'].has_key('grades'))

    @ddt.data(*(scripts.loadDdtData(filename='Grade.yaml',
                                    caseflag='GRADE_CASE2')))
    def testUsergrade(self, data):
        '''等级接口:查询会员等级信息/user/grade'''

        # 整合数据,调用接口,获取返回结果
        res = scripts.loadtestInterface(instance=HttpWebRequest(),
                                        instance_pro='post',
                                        data=data['UserGrade'],
                                        appid=data['Appid'],
                                        desc=data['Desc'],
                                        url=data['Url'],
                                        Appkey=data['Appkey'])
        # 断言
        self.assertEqual(res['errcode'], 0, res['errmsg'])
        self.assertTrue(res['res'].has_key('name'))
Esempio n. 3
0
class TestTag(unittest.TestCase):
    """标签模块"""
    @classmethod
    def setUpClass(cls):
        pass

    @classmethod
    def tearDownClass(cls):
        pass

    #-------------------------------------------------Tag START---------------------------------#
    @ddt.data(*(scripts.loadDdtData(filename='Tags.yaml',
                                    caseflag='TAGS_CASE2')))
    def testTaglistusertags(self, data):
        '''用户接口:用户标签列表/tag/listusertags'''

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

    @ddt.data(*(scripts.loadDdtData(filename='Tags.yaml',
                                    caseflag='TAGS_CASE1')))
    def testTagtouser(self, data):
        '''用户接口:用户增加标签/tag/touser'''

        # 整合数据,调用接口,获取返回结果
        res = scripts.loadtestInterface(instance=HttpWebRequest(),
                                        instance_pro='post',
                                        data=data['TagToUser'],
                                        appid=data['Appid'],
                                        desc=data['Desc'],
                                        url=data['Url'])
        # 断言
        self.assertEqual(res['errcode'], 0, res['errmsg'])
        self.assertTrue(res['res']['result'] == 'ok')
Esempio n. 4
0
class TestProduct(unittest.TestCase):
    """Product模块"""
    @classmethod
    def setUpClass(cls):
        pass

    @classmethod
    def tearDownClass(cls):
        pass

    @ddt.data(*(scripts.loadDdtData(filename='Product.yaml',
                                    caseflag='PRODUCT_CASE1')))
    def testProductlist(self, data):
        '''菜品接口:商家点菜记录列表/product/list'''

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

    @ddt.data(*(scripts.loadDdtData(filename='Product.yaml',
                                    caseflag='PRODUCT_CASE2')))
    def testProductlistbyuser(self, data):
        '''菜品接口:查询会员点菜记录/product/listbyuser'''

        # 整合数据,调用接口,获取返回结果
        res = scripts.loadtestInterface(instance=HttpWebRequest(),
                                        instance_pro='post',
                                        data=data['ProductListByUser'],
                                        appid=data['Appid'],
                                        desc=data['Desc'],
                                        url=data['Url'])
        # 断言
        self.assertEqual(res['errcode'], 0, res['errmsg'])
Esempio n. 5
0
class TestActivity(unittest.TestCase):
    """活动模块"""
    @classmethod
    def setUpClass(cls):
        pass

    @classmethod
    def tearDownClass(cls):
        pass

    #---------------------------------------Activity START-------------------------------------------#
    @ddt.data(*(scripts.loadDdtData(filename='Activity.yaml',
                                    caseflag='ACTIVITY_CASE1')))
    def testActivityGetuserthumbuplog(self, data):
        '''活动接口:查询用户参与的集赞活动/activity/getuserthumbuplog'''
        # 整合数据,调用接口,获取返回结果
        res = scripts.loadtestInterface(instance=HttpWebRequest(),
                                        instance_pro='post',
                                        data=data['Getuserthumbuplog'],
                                        appid=data['Appid'],
                                        desc=data['Desc'],
                                        url=data['Url'])
        # me,he = scripts.MultipartPartData(
        #     req=data['Getuserthumbuplog'],
        #     appid = data['Appid'],
        #     v = 2.0,
        #     ts = 1,
        #     sig = 1,
        #     boundary = '----WebKitFormBoundary7MA4YWxkTrZu0gW'
        # )
        # interface = HttpWebRequest()
        # interface.url = data['Url']
        # interface.payload = me
        # interface.headers = he
        # res = interface.post

        #断言
        self.assertEqual(res['errcode'], 0, res['errmsg'])  #断言
        self.assertTrue(res['res'])
Esempio n. 6
0
class TestUser(unittest.TestCase):
    """用户模块"""
    @classmethod
    def setUpClass(cls):
        pass

    @classmethod
    def tearDownClass(cls):
        pass

    #-----------------------------------------User START----------------------------------------#
    @ddt.data(*(scripts.loadDdtData(filename='User.yaml',
                                    caseflag='USER_CASE1')))
    def testUseraccount(self, data):
        '''用户接口:获取用户账户信息/user/account'''

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

    @ddt.data(*(scripts.loadDdtData(filename='User.yaml',
                                    caseflag='USER_CASE2')))
    def testUsergetinfo(self, data):
        '''用户接口:获取微信用户账户信息/user/getinfo'''

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

    @ddt.data(*(scripts.loadDdtData(filename='User.yaml',
                                    caseflag='USER_CASE3')))
    def testUsercheckcard(self, data):
        '''用户接口:验证实体卡信息/user/checkcard'''

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

    @ddt.data(*(scripts.loadDdtData(filename='User.yaml',
                                    caseflag='USER_CASE4')))
    def testUsercardinfo(self, data):
        '''用户接口:查询电子卡接口/user/cardinfo'''

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

    @ddt.data(*(scripts.loadDdtData(filename='User.yaml',
                                    caseflag='USER_CASE5')))
    def testUseredit(self, data):
        '''用户接口:修改会员信息/user/edit'''

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

    @ddt.data(*(scripts.loadDdtData(filename='User.yaml',
                                    caseflag='USER_CASE6')))
    def testUserugetinfo(self, data):
        '''用户接口:unionid查询用户/user/ugetinfo'''

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

    @ddt.data(*(scripts.loadDdtData(filename='User.yaml',
                                    caseflag='USER_CASE7')))
    def testUseruopencard(self, data):
        '''用户接口:unionid开卡/user/uopencard'''

        #unionid电子卡号
        data['UserUopencard']['unionid'] = eval(
            data['UserUopencard']['unionid'])

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

    @ddt.data(*(scripts.loadDdtData(filename='User.yaml',
                                    caseflag='USER_CASE8')))
    def testUserSendCode(self, data):
        '''用户接口:给指定用户发送验证码/user/sendcode'''

        # 整合数据,调用接口,获取返回结果
        res = scripts.loadtestInterface(instance=HttpWebRequest(),
                                        instance_pro='post',
                                        data=data['UserSendcode'],
                                        appid=data['Appid'],
                                        desc=data['Desc'],
                                        url=data['Url'],
                                        Appkey=data['Appkey'])
        # 断言
        self.assertEqual(res['errcode'], 0, res['errmsg'])  #断言 给指定用户发送验证码
        self.assertEqual(res['res']['result'], 'SUCCESS', res['res']['result'])

    @ddt.data(*(scripts.loadDdtData(filename='User.yaml',
                                    caseflag='USER_CASE9')))
    def testUserCreditListI(self, data):
        '''用户接口:用户积分记录/user/creditlist'''

        # 整合数据,调用接口,获取返回结果
        res = scripts.loadtestInterface(instance=HttpWebRequest(),
                                        instance_pro='post',
                                        data=data['UserCreditList'],
                                        appid=data['Appid'],
                                        desc=data['Desc'],
                                        url=data['Url'])
        #断言
        self.assertEqual(res['errcode'], 0, res['errmsg'])  #断言,用户积分记录
        self.assertTrue(res['res'], "查询结果为空")  #查询res为空

    @ddt.data(*(scripts.loadDdtData(filename='User.yaml',
                                    caseflag='USER_CASE10')))
    def testUserDynamic(self, data):
        '''用户接口:获取用户动态卡号/user/dynamic'''

        # 整合数据,调用接口,获取返回结果
        res = scripts.loadtestInterface(instance=HttpWebRequest(),
                                        instance_pro='post',
                                        data=data['UserDynamic'],
                                        appid=data['Appid'],
                                        desc=data['Desc'],
                                        url=data['Url'],
                                        Appkey=data['Appkey'])
        #断言
        self.assertEqual(res['errcode'], 0, res['errmsg'])  #断言获取用户动态卡号接口
        self.assertTrue(res['res']['dynamic_uno'], msg='查询卡号为空')

    @ddt.data(*(scripts.loadDdtData(filename='User.yaml',
                                    caseflag='USER_CASE11')))
    def testUserGetoverdueCoupon(self, data):
        '''用户接口:获取已使用优惠券/user/getusedcoupons'''

        # 获取已使用优惠券
        res = scripts.loadtestInterface(instance=HttpWebRequest(),
                                        instance_pro='post',
                                        data=data['UsedCoupon'],
                                        appid=data['Appid'],
                                        desc=data['Desc'],
                                        url=data['Url'])
        #断言
        self.assertEqual(res['errcode'], 0, res['errmsg'])  #断言获取已使用优惠券
        #self.assertTrue(res['res'])

    @ddt.data(*(scripts.loadDdtData(filename='User.yaml',
                                    caseflag='USER_CASE12')))
    def testUserGetUseCoupon(self, data):
        '''用户接口:获取已过期优惠券user/getoverduecoupons'''

        # 获取已过期优惠券
        res = scripts.loadtestInterface(instance=HttpWebRequest(),
                                        instance_pro='post',
                                        data=data['OverDueCoupon'],
                                        appid=data['Appid'],
                                        desc=data['Desc'],
                                        url=data['Url'])
        #断言
        self.assertEqual(res['errcode'], 0, res['errmsg'])  #断言获取已过期优惠券
        #self.assertTrue(res['res'])

    @ddt.data(*(scripts.loadDdtData(filename='User.yaml',
                                    caseflag='USER_CASE13')))
    def testUserGetc2uInfo(self, data):
        '''用户接口:根据券获取用户账户信息/user/getc2uinfo'''

        # 根据券获取用户账户信息
        res = scripts.loadtestInterface(instance=HttpWebRequest(),
                                        instance_pro='post',
                                        data=data['Getc2uinfo'],
                                        appid=data['Appid'],
                                        desc=data['Desc'],
                                        url=data['Url'],
                                        Appkey=data['Appkey'])
        #断言
        self.assertEqual(res['errcode'], 0, res['errmsg'])  #断言获取已过期优惠券
        #self.assertTrue(res['res'])

    @ddt.data(*(scripts.loadDdtData(filename='User.yaml',
                                    caseflag='USER_CASE14')))
    def testUserMergeActualCard(self, data):
        '''用户接口:根据券获取用户账户信息/user/mergeActualCard'''

        # 合并微信和实体卡
        res = scripts.loadtestInterface(instance=HttpWebRequest(),
                                        instance_pro='post',
                                        data=data['MergeActualCard'],
                                        appid=data['Appid'],
                                        desc=data['Desc'],
                                        url=data['Url'],
                                        Appkey=data['Appkey'])
        #断言
        self.assertEqual(res['errcode'], 22019,
                         res['errmsg'])  #断言该实体卡已被其他微信卡绑定

    @ddt.data(*(scripts.loadDdtData(filename='User.yaml',
                                    caseflag='USER_CASE15')))
    def testUserCouponlist(self, data):
        """会员全部券接口/user/couponlist"""

        res = scripts.loadtestInterface(instance=HttpWebRequest(),
                                        instance_pro='post',
                                        data=data['UserCouponList'],
                                        appid=data['Appid'],
                                        desc=data['Desc'],
                                        url=data['Url'])
        # 断言
        self.assertEqual(res['errcode'], 0, res['errmsg'])

    @ddt.data(*(scripts.loadDdtData(filename='User.yaml',
                                    caseflag='USER_CASE16')))
    def testUserPhoneCard(self, data):
        """手机开卡/user/phonecard"""

        res = scripts.loadtestInterface(instance=HttpWebRequest(),
                                        instance_pro='post',
                                        data=data['UserPhoneCard'],
                                        appid=data['Appid'],
                                        desc=data['Desc'],
                                        url=data['Url'])
        # 断言
        self.assertEqual(res['errcode'], 0, res['errmsg'])
        self.assertTrue(res['res']['result'] == 'SUCCESS')

    @ddt.data(*(scripts.loadDdtData(filename='User.yaml',
                                    caseflag='USER_CASE17')))
    def testUserGrade(self, data):
        """查询会员等级信息/user/grade"""

        res = scripts.loadtestInterface(instance=HttpWebRequest(),
                                        instance_pro='post',
                                        data=data['UserGrade'],
                                        appid=data['Appid'],
                                        desc=data['Desc'],
                                        url=data['Url'])
        # 断言
        self.assertEqual(res['errcode'], 0, res['errmsg'])

    @ddt.data(*(scripts.loadDdtData(filename='User.yaml',
                                    caseflag='USER_CASE18')))
    def testUserBindPhone(self, data):
        """绑定/修改手机号/user/bindphone"""

        res = scripts.loadtestInterface(instance=HttpWebRequest(),
                                        instance_pro='post',
                                        data=data['BindPhone'],
                                        appid=data['Appid'],
                                        desc=data['Desc'],
                                        url=data['Url'])
        # 断言
        self.assertEqual(res['errcode'], 0, res['errmsg'])
Esempio n. 7
0
class TestCharge(unittest.TestCase):
    """点评微生活-API单接口"""
    @classmethod
    def setUpClass(cls):
        cls.__name__ = '储值模块'

    @classmethod
    def tearDownClass(cls):
        pass

    # ---------------------------------------charge START------------------------------------#
    @ddt.data(*(scripts.loadDdtData(filename='Charge.yaml',
                                    caseflag='CHARGE_CASE1')))
    def testChargetoday(self, data):
        '''储值模块:当日储值统计/charge/today'''

        # 整合数据,调用接口,获取返回结果
        res = scripts.loadtestInterface(instance=HttpWebRequest(),
                                        instance_pro='post',
                                        data=data['ChargeToDay'],
                                        appid=data['Appid'],
                                        desc=data['Desc'],
                                        url=data['Url'])
        #断言
        self.assertEqual(res['errcode'], 0, res['errmsg'])
        self.assertTrue(res['res'].has_key('shop_offline'))

    @ddt.data(*(scripts.loadDdtData(filename='Charge.yaml',
                                    caseflag='CHARGE_CASE2')))
    def testChargeReceipt(self, data):
        '''储值模块:储值是否开发票/charge/receipt'''

        # 整合数据,调用接口,获取返回结果
        res = scripts.loadtestInterface(instance=HttpWebRequest(),
                                        instance_pro='post',
                                        data=data['ChargeReceipt'],
                                        appid=data['Appid'],
                                        desc=data['Desc'],
                                        url=data['Url'])
        #断言
        self.assertEqual(res['errcode'], 0, res['errmsg'])
        self.assertTrue(res['res']['result'] == 'SUCCESS')

    @ddt.data(*(scripts.loadDdtData(filename='Charge.yaml',
                                    caseflag='CHARGE_CASE3')))
    def testChargeChange(self, data):
        '''储值模块:储值调整/charge/change'''

        # 整合数据,调用接口,获取返回结果
        res = scripts.loadtestInterface(instance=HttpWebRequest(),
                                        instance_pro='post',
                                        data=data['ChargeChange'],
                                        appid=data['Appid'],
                                        desc=data['Desc'],
                                        url=data['Url'])
        #断言
        self.assertEqual(res['errcode'], 0, res['errmsg'])
        self.assertTrue(res['res'].has_key('deal_id'))

    @ddt.data(*(scripts.loadDdtData(filename='Charge.yaml',
                                    caseflag='CHARGE_CASE4')))
    def testChargeRule(self, data):
        '''储值模块:查看门店储值规则设置/charge/rule'''

        # 整合数据,调用接口,获取返回结果
        res = scripts.loadtestInterface(instance=HttpWebRequest(),
                                        instance_pro='post',
                                        data=data['ChargeRule'],
                                        appid=data['Appid'],
                                        desc=data['Desc'],
                                        url=data['Url'])
        #断言
        self.assertEqual(res['errcode'], 0, res['errmsg'])
        self.assertTrue(res['res'].has_key('content'))

    @ddt.data(*(scripts.loadDdtData(filename='Charge.yaml',
                                    caseflag='CHARGE_CASE5')))
    def testChargeView(self, data):
        '''储值模块:储值记录详情/charge/view'''

        # 整合数据,调用接口,获取返回结果
        res = scripts.loadtestInterface(instance=HttpWebRequest(),
                                        instance_pro='post',
                                        data=data['ChargeView'],
                                        appid=data['Appid'],
                                        desc=data['Desc'],
                                        url=data['Url'])
        #断言
        self.assertEqual(res['errcode'], 0, res['errmsg'])
        self.assertTrue(res['res'].has_key('status'))

    @ddt.data(*(scripts.loadDdtData(filename='Charge.yaml',
                                    caseflag='CHARGE_CASE6')))
    def testPosChargedetail(self, data):
        '''储值模块/pos/chargedetail'''

        # 整合数据,调用接口,获取返回结果
        res = scripts.loadtestInterface(instance=HttpWebRequest(),
                                        instance_pro='post',
                                        data=data['PosChargeDetail'],
                                        appid=data['Appid'],
                                        desc=data['Desc'],
                                        url=data['Url'])
        # 断言
        self.assertEqual(res['errcode'], 0, res['errmsg'])
        self.assertTrue(res['res'].has_key('payStatus'))
Esempio n. 8
0
class TestSearch(unittest.TestCase):
    """查询模块"""
    @classmethod
    def setUpClass(cls):
        pass

    @classmethod
    def tearDownClass(cls):
        pass

    #---------------------------------------Search START-------------------------------------#
    @ddt.data(*(scripts.loadDdtData(filename='Search.yaml',
                                    caseflag='SEARCH_CASE1')))
    def testConsumeall(self, data):
        '''查询接口:/consume/all'''

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

    @ddt.data(*(scripts.loadDdtData(filename='Search.yaml',
                                    caseflag='SEARCH_CASE2')))
    def testConsumelist(self, data):
        '''查询接口:消费记录列表/consume/list'''

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

    @ddt.data(*(scripts.loadDdtData(filename='Search.yaml',
                                    caseflag='SEARCH_CASE3')))
    def testChargelist(self, data):
        '''查询接口:储值记录列表/charge/list'''

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

    @ddt.data(*(scripts.loadDdtData(filename='Search.yaml',
                                    caseflag='SEARCH_CASE4')))
    def testConsumeview(self, data):
        '''查询接口:消费记录详情/consume/view '''

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

    @ddt.data(*(scripts.loadDdtData(filename='Search.yaml',
                                    caseflag='SEARCH_CASE5')))
    def testConsumeuser(self, data):
        '''查询接口:用户消费记录/consume/user'''

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

    @ddt.data(*(scripts.loadDdtData(filename='Search.yaml',
                                    caseflag='SEARCH_CASE6')))
    def testCouponoverdue(self, data):
        '''查询接口:/coupon/overdue'''

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

    @ddt.data(*(scripts.loadDdtData(filename='Search.yaml',
                                    caseflag='SEARCH_CASE7')))
    def testChargeuser(self, data):
        '''查询接口:指定会员储值记录列表/charge/user'''

        # 整合数据,调用接口,获取返回结果
        res = scripts.loadtestInterface(instance=HttpWebRequest(),
                                        instance_pro='post',
                                        data=data['ChargeUser'],
                                        appid=data['Appid'],
                                        desc=data['Desc'],
                                        url=data['Url'])
        #断言
        self.assertEqual(res['errcode'], 0, res['errmsg'])
        self.assertTrue(res['res']['data'])
Esempio n. 9
0
class TestManage(unittest.TestCase):
    """商户管理模块"""
    @classmethod
    def setUpClass(cls):
        pass

    @classmethod
    def tearDownClass(cls):
        pass


    #------------------------------------------Manage START----------------------------------#
    @ddt.data(*(scripts.loadDdtData(filename='Manage.yaml',caseflag='MANAGE_CASE1')))
    def testCashierlist(self,data):
        '''商家接口:获取收银员列表/cashier/list'''

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


    @ddt.data(*(scripts.loadDdtData(filename='Manage.yaml',caseflag='MANAGE_CASE2')))
    def testShoplist(self,data):
        '''商家接口:获取门店列表/shop/list'''

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

    @ddt.data(*(scripts.loadDdtData(filename='Manage.yaml',caseflag='MANAGE_CASE3')))
    def testEmployee(self,data):
        '''商家接口:查询员工/employee/list'''

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



    @ddt.data(*(scripts.loadDdtData(filename='Manage.yaml',caseflag='MANAGE_CASE4')))
    def testPossignin(self,data):
        '''商家接口:收银员账号登陆签到/pos/signin'''

        # 整合数据,调用接口,获取返回结果
        res = scripts.loadtestInterface(
            instance=HttpWebRequest(),
            instance_pro='post',
            data=data['PosSignin'],
            appid=data['Appid'],
            desc=data['Desc'],
            url=data['Url']
        )

        #断言
        self.assertEqual(res['errcode'], 0, res['errmsg'])
        self.assertTrue(res['res'].has_key('cashier_id'))



    @ddt.data(*(scripts.loadDdtData(filename='Manage.yaml',caseflag='MANAGE_CASE5')))
    def testPosshopcredit(self,data):
        '''硬pos获取用户的积分规则/pos/shopcredit'''

        # 整合数据,调用接口,获取返回结果
        res = scripts.loadtestInterface(
            instance=HttpWebRequest(),
            instance_pro='post',
            data=data['PosShopcredit'],
            appid=data['Appid'],
            desc=data['Desc'],
            url=data['Url']
        )
        #断言 由于线上,硬pos,测试商家无法,使用,因此断言未登录
        self.assertEqual(res['errcode'], 10009, res['errmsg'])
Esempio n. 10
0
class TestActivity(unittest.TestCase):
    """活动模块"""
    @classmethod
    def setUpClass(cls):
        pass

    @classmethod
    def tearDownClass(cls):
        pass

    #---------------------------------------Activity START-------------------------------------------#
    @ddt.data(*(scripts.loadDdtData(filename='Activity.yaml',
                                    caseflag='ACTIVITY_CASE1')))
    def testActivityGetuserthumbuplog(self, data):
        '''活动接口:查询用户参与的集赞活动/activity/getuserthumbuplog'''
        # 整合数据,调用接口,获取返回结果
        res = scripts.loadtestInterface(instance=HttpWebRequest(),
                                        instance_pro='post',
                                        data=data['Getuserthumbuplog'],
                                        appid=data['Appid'],
                                        desc=data['Desc'],
                                        url=data['Url'],
                                        appkey=data['Appkey'])

        #断言
        self.assertEqual(res['errcode'], 11001, res['errmsg'])  #断言
        #self.assertTrue(res['res'])

    @ddt.data(*(scripts.loadDdtData(filename='Activity.yaml',
                                    caseflag='ACTIVITY_CASE2')))
    def testActivitylist(self, data):
        '''活动接口:获取活动列表/activity/list'''

        # 整合数据,调用接口,获取返回结果
        res = scripts.loadtestInterface(instance=HttpWebRequest(),
                                        instance_pro='post',
                                        data=data['ActivityList'],
                                        appid=data['Appid'],
                                        desc=data['Desc'],
                                        url=data['Url'],
                                        appkey=data['Appkey'])
        #断言
        self.assertEqual(res['errcode'], 0, res['errmsg'])
        self.assertTrue(res['res'])

    @ddt.data(*(scripts.loadDdtData(filename='Activity.yaml',
                                    caseflag='ACTIVITY_CASE3')))
    def testActivityOtherlist(self, data):
        '''异业营销:获取异业营销活动列表/activity/otherlist'''

        # 整合数据,调用接口,获取返回结果
        res = scripts.loadtestInterface(instance=HttpWebRequest(),
                                        instance_pro='post',
                                        data=data['ActivityOtherList'],
                                        appid=data['Appid'],
                                        desc=data['Desc'],
                                        url=data['Url'],
                                        appkey=data['Appkey'])

        #断言
        self.assertEqual(res['errcode'], 0, res['errmsg'])
        self.assertTrue(res['res'])
Esempio n. 11
0
class TestScenario(unittest.TestCase):  #点评微生活API接口
    '''点评微生活-API接口场景'''

    #初始化,setUp每个测试方法,执行一次;如果需要只执行一次使用setUpClass(cls)  需要classmethod修饰

    def setUp(self):
        self.configPath = gl.configPath
        configyaml = os.path.join(self.configPath, 'config.yaml')
        self.reportPath = gl.reportPath

    '''
    #储值撤销场景:储值预览->储值提交->储值撤销
    '''

    @unittest.skipIf(
        scripts.getRunFlag('testChargeAndCancel') == 'N', '验证执行配置')
    @ddt.data(*scripts.loadDdtData(Itype='s',
                                   filename='ChargeAndCancel.yaml',
                                   caseflag='ChargeAndCancel'))
    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'])  #交易撤销断言

    '''
    #自定义充值并消费储值业务场景:储值预览->储值提交->交易预览->交易提交->交易撤销
    '''

    @unittest.skipIf(scripts.getRunFlag('testChargeAndDeal') == 'N', '验证执行配置')
    @ddt.data(*scripts.loadDdtData(Itype='s',
                                   filename='ChargeAndDeal.yaml',
                                   caseflag='ChargeAndDeal'))
    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'])  #交易取消

    '''
    #发券并撤销
    '''

    @unittest.skipIf(
        scripts.getRunFlag('testCouponSendAndCancel') == 'N', '验证执行配置')
    @ddt.data(*scripts.loadDdtData(Itype='s',
                                   filename='CouponSendAndCancel.yaml',
                                   caseflag='couponSendAndCancel'))
    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'])  #撤销发券断言

    @unittest.skipIf(
        scripts.getRunFlag('testGradeEditAndDesc') == 'N', '验证执行配置')
    @ddt.data(*scripts.loadDdtData(Itype='s',
                                   filename='GradeEditAndDesc.yaml',
                                   caseflag='Grade'))
    def testGradeEditAndDesc(self, data):
        '''会员升级降级:储值调整增加200->会员升级->储值调整减少200'''

        # 整合数据,调用接口,获取返回结果
        Result = scripts.loadtestInterface(instance=HttpWebRequest(),
                                           instance_pro='post',
                                           data=data['ChargeChangeAdd'],
                                           appid=data['Appid'],
                                           desc=data['Desc'],
                                           url=data['ChargeChangeUrl'],
                                           Appkey=data['Appkey'])
        self.assertEqual(Result['errcode'], 0, Result['errmsg'])  #储值调整接口断言

        #会员升级
        # 整合数据,调用接口,获取返回结果
        editResult = scripts.loadtestInterface(instance=HttpWebRequest(),
                                               instance_pro='post',
                                               data=data['GradeEdit'],
                                               appid=data['Appid'],
                                               desc=data['Desc'],
                                               url=data['GradeEditUrl'],
                                               Appkey=data['Appkey'])
        self.assertEqual(editResult['errcode'], 0,
                         editResult['errmsg'])  #会员升级接口断言

        #储值调整 减少200
        # 整合数据,调用接口,获取返回结果
        res = scripts.loadtestInterface(instance=HttpWebRequest(),
                                        instance_pro='post',
                                        data=data['ChargeChange'],
                                        appid=data['Appid'],
                                        desc=data['Desc'],
                                        url=data['ChargeChangeUrl'],
                                        Appkey=data['Appkey'])
        #断言
        self.assertEqual(res['errcode'], 0, res['errmsg'])  #储值调整接口减少200断言

        # 整合数据,调用接口,获取返回结果 查看会员等级信息
        res = scripts.loadtestInterface(instance=HttpWebRequest(),
                                        instance_pro='post',
                                        data=data['UserGrade'],
                                        appid=data['Appid'],
                                        desc=data['Desc'],
                                        url=data['UserGradeUrl'],
                                        Appkey=data['Appkey'])
        #断言
        self.assertEqual(res['errcode'], 0, res['errmsg'])  #查看会员等级信息
        self.assertTrue(res['res']['id'] == '3006327')  #降级回普通会员

    @unittest.skipIf(
        scripts.getRunFlag('testCouponCmbSendAndCancel') == 'N', '验证执行配置')
    @ddt.data(*scripts.loadDdtData(Itype='s',
                                   filename='CouponCmbSendAndCancel.yaml',
                                   caseflag='OtherCoupon'))
    def testCouponCmbSendAndCancel(self, data):
        '''异业营销cmb发券并撤销场景: 获取异业营销活动列表->异业营销cmb发券->异业营销券码核销'''

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

        # 异业营销CMB发券
        biz_id = scripts.rndTimeStr() + '01'
        # ----------参数给值------------#
        data['CmbSend']['biz_id'] = biz_id  # 唯一值
        data['CmbSend']['aid'] = aid  # 活动id
        # -------------------------------#
        # 整合数据,调用接口,获取返回结果
        sendresult = scripts.loadtestInterface(instance=HttpWebRequest(),
                                               instance_pro='post',
                                               data=data['CmbSend'],
                                               appid=data['Appid'],
                                               desc=data['Desc'],
                                               url=data['CmbSendUrl'])
        self.assertEqual(sendresult['errcode'], 0,
                         sendresult['errmsg'])  #异业营销CMB发券接口
        coupon_code = sendresult['res']['coupon_codes'][0]['code']

        # 异业营销券码核销
        data['OtherVerification']['coupon_code'] = str(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'])  #异业营销券码核销接口

    @unittest.skipIf(
        scripts.getRunFlag('testCouponOtherSendAndCancel') == 'N', '验证执行配置')
    @ddt.data(*scripts.loadDdtData(Itype='s',
                                   filename='CouponOtherSendAndCancel.yaml',
                                   caseflag='OtherCoupon'))
    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'])  #断言

    @unittest.skipIf(
        scripts.getRunFlag('testDealAndRollback') == 'N', '验证执行配置')
    @ddt.data(*scripts.loadDdtData(Itype='s',
                                   filename='DealAndRollback.yaml',
                                   caseflag='DealAndRollback'))
    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'])  #交易冲正断言

    @unittest.skipIf(
        scripts.getRunFlag('testCouponSendAndAdjust') == 'N', '验证执行配置')
    @ddt.data(*scripts.loadDdtData(Itype='s',
                                   filename='CouponSendAndAdjust.yaml',
                                   caseflag='couponSendAndAdjust'))
    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'])  #手工调帐返回结果断言

    '''
    #储值并开发票场景:储值预览->储值提交->可开发票查询->开发票
    '''

    @unittest.skipIf(
        scripts.getRunFlag('testChargeAndReceipt') == 'N', '验证执行配置')
    @ddt.data(*scripts.loadDdtData(Itype='s',
                                   filename='ChargeAndReceipt.yaml',
                                   caseflag='ChargeAndReceipt'))
    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'], data['ChargeAssertCode'],
                          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'], data['CommitAssertCode'],
                          commitResult['errmsg'])  #交易提交断言
        '''step-3--------------------------设置是否开发票----------------------'''
        data['ChargeReceipt']['biz_id'] = str(biz_id_01)
        # 整合数据,调用接口,获取返回结果
        setReceipt = scripts.loadtestInterface(instance=HttpWebRequest(),
                                               instance_pro='post',
                                               data=data['ChargeReceipt'],
                                               appid=data['Appid'],
                                               desc=data['Desc'],
                                               url=data['ChargeReceiptUrl'])
        self.assertEquals(setReceipt['errcode'], data['ReceiptAssertCode'],
                          setReceipt['errmsg'])
        self.assertTrue(setReceipt['res']['result'] == "SUCCESS")
        '''step-4--------------------------用户可开发票查询接口----------------------'''
        # 整合数据,调用接口,获取返回结果
        selectResult = scripts.loadtestInterface(
            instance=HttpWebRequest(),
            instance_pro='post',
            data=data['ChargeReceiptstat'],
            appid=data['Appid'],
            desc=data['Desc'],
            url=data['ChargeReceiptstatUrl'])
        self.assertEquals(selectResult['errcode'],
                          data['ReceiptstatAssertCode'],
                          selectResult['errmsg'])
        self.assertTrue(selectResult['res'])
        '''step-5--------------------------开发票接口----------------------'''
        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'], data['batchAssertCode'],
                          batchResult['errmsg'])
class TestCoupon(unittest.TestCase):
    """券模块"""
    @classmethod
    def setUpClass(cls):
        pass

    @classmethod
    def tearDownClass(cls):
        pass

    #----------------------------------------Coupon START---------------------------------------#
    @ddt.data(*(scripts.loadDdtData(filename='Coupon.yaml',
                                    caseflag='COUPON_CASE1')))
    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'))

    @ddt.data(*(scripts.loadDdtData(filename='Coupon.yaml',
                                    caseflag='COUPON_CASE2')))
    def testCoupondetail(self, data):
        '''券接口:券模板详情/coupon/detail'''

        # 整合数据,调用接口,获取返回结果
        res = scripts.loadtestInterface(instance=HttpWebRequest(),
                                        instance_pro='post',
                                        data=data['CouponDetail'],
                                        appid=data['Appid'],
                                        desc=data['Desc'],
                                        url=data['Url'])
        # 断言
        self.assertEqual(res['errcode'], 0, res['errmsg'])
        self.assertTrue(res['res'].has_key('give_friend'))

    @ddt.data(*(scripts.loadDdtData(filename='Coupon.yaml',
                                    caseflag='COUPON_CASE3')))
    def testCouponList(self, data):
        '''券接口:券列表/coupon/list'''

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

    @ddt.data(*(scripts.loadDdtData(filename='Coupon.yaml',
                                    caseflag='COUPON_CASE4')))
    def testUsergetusercoupons(self, data):
        '''根据卡号查询券列表/user/getusercoupons'''

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

    @ddt.data(*(scripts.loadDdtData(filename='Coupon.yaml',
                                    caseflag='COUPON_CASE5')))
    def testCoupongift(self, data):
        '''券转赠接口/coupon/gift断言30013,该券已转赠过不能重复提交'''

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

    @ddt.data(*(scripts.loadDdtData(filename='Coupon.yaml',
                                    caseflag='COUPON_CASE6')))
    def testCouponSendSearch(self, data):
        '''券接口:根据biz_id查询发券详情/coupon/sendsearch'''

        # 整合数据,调用接口,获取返回结果
        res = scripts.loadtestInterface(instance=HttpWebRequest(),
                                        instance_pro='post',
                                        data=data['SendSearch'],
                                        appid=data['Appid'],
                                        desc=data['Desc'],
                                        url=data['Url'])
        #断言
        self.assertEqual(res['errcode'], 0, res['errmsg'])  #断言根据biz_id查询发券详情
        self.assertTrue(res['res'].has_key('cno'))

    @ddt.data(*(scripts.loadDdtData(filename='Coupon.yaml',
                                    caseflag='COUPON_CASE7')))
    def testCouponC2uinfo(self, data):
        '''券接口:查询用户下一张券的信息/coupon/c2uinfo'''

        # 整合数据,调用接口,获取返回结果
        res = scripts.loadtestInterface(instance=HttpWebRequest(),
                                        instance_pro='post',
                                        data=data['CouponC2uinfo'],
                                        appid=data['Appid'],
                                        desc=data['Desc'],
                                        url=data['Url'])
        #断言
        self.assertEqual(res['errcode'], 0, res['errmsg'])  #断言查询用户下一张券的信息接口
        self.assertTrue(res['res'].has_key('status'))

    @ddt.data(*(scripts.loadDdtData(filename='Coupon.yaml',
                                    caseflag='COUPON_CASE8')))
    def testCouponC2uinfo(self, data):
        '''券接口:手工调整核销券/coupon/adjust'''

        # 整合数据,调用接口,获取返回结果
        res = scripts.loadtestInterface(instance=HttpWebRequest(),
                                        instance_pro='post',
                                        data=data['CouponAdjust'],
                                        appid=data['Appid'],
                                        desc=data['Desc'],
                                        url=data['Url'])
        #断言
        self.assertEqual(res['errcode'], 3119,
                         res['errmsg'])  #断言手工调整核销券/coupon/adjust