Ejemplo n.º 1
0
    def fanhui(self, ip, superior):  # 以后写回Excel对比用
        '''

        :param superior: 上级代理商/城市焕商
        :return: user_id, biz_type, changes, category
        '''
        sql_data = SQL(ip).wallet_detail(self.order)  # 支付数据
        global a, b
        user_id = []
        biz_type = []
        changes = []
        category = []
        shuju = Title(self.buyer_identity, self.seller_identity,
                      self.payment_method).title(superior)
        # print("shuju", shuju)
        # print(len(shuju))
        for i in range(0, len(shuju)):
            mmm = (sql_data[i])[0]
            lll = (sql_data[i])[2]
            kkk = (sql_data[i])[3]
            nnn = (sql_data[i])[7]
            user_id.append(mmm)
            biz_type.append(lll)
            changes.append(kkk)
            category.append(nnn)
            # print('次数i:{0}'.format(i))

        return user_id, biz_type, changes, category
Ejemplo n.º 2
0
    def expected(self, ip, calculation, data, superior, reserve_fund=None):
        '''

        :param charge_amount:未消耗充值金额
        :param reserve_fund:储备池金额
        :param data: 手机号、id
        :param superior:上级代理商/城市焕商
        :param buyer_province_proportion:买家上级省代理商
        :param buyer_city_proportion:买家上级市代理商
        :param buyer_area_proportion:买家上级区代理商
        :param buyer_personal_proportion:买家上级个人焕商
        :param disanfang_province_proportion:企业/家人上级省代理商
        :param disanfang_city_proportion:企业/家人上级市代理商
        :param disanfang_area_proportion:企业/家人上级区代理商
        :param disanfang_personal_proportion:企业/家人上级个人焕商
        :return:预期流水模板
        '''

        sql_data = SQL(ip).wallet_detail(self.order)  # 支付数据

        user_id = GeShiHua(self.buyer_identity, self.seller_identity,
                           self.member_level, self.payment_method,
                           self.order).userid(data, superior)
        # print("userid", user_id)

        expected_changes = GeShiHua(self.buyer_identity, self.seller_identity,
                                    self.member_level, self.payment_method,
                                    self.order).expected_changes(
                                        ip, calculation,
                                        reserve_fund)  # 格式化之后的changes
        # print("expected_changes", expected_changes)
        biz_type = (GeShiHua(self.buyer_identity, self.seller_identity,
                             self.member_level, self.payment_method,
                             self.order).fanhui(ip, superior))[1]

        category = (GeShiHua(self.buyer_identity, self.seller_identity,
                             self.member_level, self.payment_method,
                             self.order).fanhui(ip, superior))[3]

        # 控制流水条数
        shuju = Title(self.buyer_identity, self.seller_identity,
                      self.payment_method).title(superior)
        # print(shuju)
        # print(len(shuju))

        bbb = []
        for i in range(0, len(shuju)):
            a1 = user_id[i]
            a3 = biz_type[i]
            a4 = expected_changes[i]
            a6 = (sql_data[i])[5]
            a5 = a6 + a4
            a8 = category[i]
            aaa = (a1, 2, a3, a4, a5, a6, shuju[i], a8)
            bbb.append(aaa)
            # print("i", i)
        # print("bbb", bbb)
        bbb = tuple(bbb)
        return bbb
Ejemplo n.º 3
0
    def test_1_buy_goods(self, item):

        global disanfang_province_id, disanfang_city_id, disanfang_area_id, disanfang_personal_id, i, TestResult, Error, reserve_fund, expected_userid, fanhui, expected_changes, expected, sql_data

        my_logger.info("----------开始执行用例{0},环境是{1}----------".format(
            item['case_id'], item['surroundings']))

        ip = IP[item['surroundings']]
        H5_Login_url = url(item['surroundings'])[0]
        H5_home_url = url(item['surroundings'])[1]

        self.driver.get(H5_Login_url)
        self.lg = LoginPage(self.driver)

        buyer_phone = eval(item['data'])['buyer_phone']
        seller_phone = eval(item['data'])['seller_phone']
        self.lg.login(buyer_phone)
        time.sleep(3)

        buyer_identity = item['buyer_identity']
        seller_identity = item['seller_identity']

        if buyer_identity == "公海用户":
            if seller_identity == "个人焕商" or seller_identity == "非焕商且已绑定个人焕商":
                self.driver.find_element(*MyIndex.myIndex).click()
                time.sleep(5)

                # 充值
                WebDriverWait(self.driver, 10).until(
                    EC.visibility_of_element_located(
                        (MyIndex.serviceRecharge))).click()
                time.sleep(3)
                self.driver.find_element(*MyIndex.recharge_amount).click()
                time.sleep(2)
                self.driver.find_element(*MyIndex.input_amount).send_keys(100)
                time.sleep(2)
                self.driver.find_element(*MyIndex.queren).click()
                time.sleep(4)
                WebDriverWait(self.driver, 10).until(
                    EC.visibility_of_element_located(
                        (MyIndex.rechare_now))).click()
                time.sleep(3)
                WebDriverWait(self.driver, 10).until(
                    EC.visibility_of_element_located(
                        (MyIndex.querenzhifu))).click()
                time.sleep(2)

                # 支付按键
                BuyGoods(self.driver).pay()
                time.sleep(2)

                # 写回储备池和充值金额
                user_id = eval(item['data'])["买家"]
                reserve_fund = SQL(ip).reserve_fund(user_id)
                DoExcel.reserve_fund(test_case_path, item['sheet_name'],
                                     item['case_id'], str(reserve_fund))
                # time.sleep(5)

                self.driver.get(H5_home_url)
                time.sleep(2)

        # 选择商品
        self.driver.find_element(*Home.search).click()
        time.sleep(3)
        WebDriverWait(self.driver,
                      10).until(EC.visibility_of_element_located(
                          (Home.input))).send_keys(item['goodsname'])
        time.sleep(2)
        self.driver.find_element(*Home.input).send_keys(Keys.ENTER)
        time.sleep(3)
        # 点击【商品】
        self.driver.find_element(*Home.real_goods).click()
        time.sleep(3)

        # 购买流程
        BuyGoods(self.driver).BuyGood(item['payment_method'])
        time.sleep(3)
        BuyGoods(self.driver).pay()
        time.sleep(2)

        # 卖家操作
        self.driver.get(H5_Login_url)
        lg = LoginPage(self.driver)
        lg.login(seller_phone)
        time.sleep(2)
        self.driver.get(H5_home_url)
        time.sleep(2)
        self.driver.find_element(*MyIndex.myIndex).click()
        time.sleep(2)
        # 滚动至元素【销售订单】可见,点击
        ActionChains(self.driver).move_to_element(
            self.driver.find_element(*MyIndex.saleOrderList)).perform()
        self.driver.execute_script('window.scrollBy(0,500)')
        time.sleep(2)
        self.driver.find_element(*MyIndex.saleOrderList).click()
        time.sleep(5)
        # 确认订单
        WebDriverWait(self.driver, 10).until(
            EC.visibility_of_element_located((MyIndex.confirm_Order))).click()
        time.sleep(6)

        # 根据商品名判断流程
        if item['goodsname'].find('实物商品') != -1:  # 商品名字包含实物商品
            # 发货
            self.driver.find_element(*MyIndex.ship).click()
            time.sleep(2)
            self.driver.find_element(*MyIndex.logistics_company).click()
            time.sleep(3)
            WebDriverWait(self.driver, 10).until(
                EC.visibility_of_element_located((MyIndex.debang))).click()
            time.sleep(2)
            self.driver.find_element(
                *MyIndex.dingdanhao).send_keys("lalalalala")
            time.sleep(2)
            self.driver.find_element(*MyIndex.ship_now).click()
            time.sleep(2)

            # 买家
            self.driver.get(H5_Login_url)
            lg = LoginPage(self.driver)
            lg.login(buyer_phone)
            time.sleep(2)
            # 点击【采购订单】
            self.driver.find_element(*MyIndex.purchase).click()
            time.sleep(4)
            # 收货
            WebDriverWait(self.driver, 10).until(
                EC.visibility_of_element_located((MyIndex.receipt))).click()
            time.sleep(3)

            # 支付按键
            BuyGoods(self.driver).pay()
            time.sleep(2)

        elif item['goodsname'].find('本地生活') != -1:
            # 本地生活
            self.driver.get(H5_Login_url)
            lg = LoginPage(self.driver)
            lg.login(buyer_phone)
            time.sleep(2)
            self.driver.get(H5_home_url)
            time.sleep(2)
            self.driver.find_element(*MyIndex.myIndex).click()
            time.sleep(2)
            # 点击【采购订单】
            self.driver.find_element(*MyIndex.purchase).click()
            time.sleep(4)
            # 点击第一个订单
            self.driver.find_element(*BG.frist_order).click()
            time.sleep(2)
            xuliehao = ReturnTxt(self.driver).xuliehao_txt()
            # print(xuliehao)

            time.sleep(2)

            # 卖家
            self.driver.get(H5_Login_url)
            lg = LoginPage(self.driver)
            lg.login(seller_phone)
            time.sleep(2)
            self.driver.get(H5_home_url)
            time.sleep(2)
            self.driver.find_element(*MyIndex.myIndex).click()
            time.sleep(2)
            # 滚动至元素【销售订单】可见,点击
            ActionChains(self.driver).move_to_element(
                self.driver.find_element(*MyIndex.saleOrderList)).perform()
            self.driver.execute_script('window.scrollBy(0,500)')
            time.sleep(2)
            self.driver.find_element(*MyIndex.saleOrderList).click()
            time.sleep(5)
            # 点击第一个订单
            self.driver.find_element(*BG.frist_order).click()
            time.sleep(2)
            # 输入序列号
            self.driver.find_element(*BG.click_xuliehao).send_keys(xuliehao)
            # 点击确定
            self.driver.find_element(*BG.click_queding).click()
            time.sleep(1)
            self.driver.find_element(*BG.click_queding2).click()
            time.sleep(2)

        elif item['goodsname'].find('商企服务') != -1:
            # 买家
            self.driver.get(H5_Login_url)
            lg = LoginPage(self.driver)
            lg.login(buyer_phone)
            time.sleep(2)
            # 点击【采购订单】
            self.driver.find_element(*MyIndex.purchase).click()
            time.sleep(4)

            # 确认签约
            self.driver.find_element(*BG.qianyue).click()

            # 支付按键
            BuyGoods(self.driver).pay()
            time.sleep(2)

        # 写回订单号
        buyerid = eval(item['data'])['买家']
        order = DoExcel.get_order(ip, test_case_path, item['sheet_name'],
                                  item['case_id'], int(buyerid))
        # time.sleep(5)

        # 获取绑定关系,写回Excel
        if item['payment_method'] in ["易贝", "易贝券"]:
            superior = SuperiorTemplate().superior_template(
                ip, item['payment_method'], item['data'], item['sheet_name'],
                item['case_id'], buyer_phone)

        elif item['payment_method'] in ["抵工资", "家人购"]:
            disanfang_phone = eval(item['data'])['disanfang_phone']
            superior = SuperiorTemplate().superior_template(
                ip, item['payment_method'], item['data'], item['sheet_name'],
                item['case_id'], buyer_phone, disanfang_phone)

        else:
            seller_phone = eval(item['data'])['seller_phone']
            superior = SuperiorTemplate().superior_template(
                ip, item['payment_method'], item['data'], item['sheet_name'],
                item['case_id'], buyer_phone, seller_phone)

        # time.sleep(5)
        # print('shangji',shangji)

        if item['payment_method'] in ["易贝", "易贝券"]:
            buyer_province_id = superior[1]['省代理商']
            buyer_city_id = superior[1]['市代理商']
            buyer_area_id = superior[1]['区代理商']
            buyer_personal_id = superior[0]['个人焕商']
        else:
            buyer_province_id = superior['储备池分佣'][1]['省代理商']
            buyer_city_id = superior['储备池分佣'][1]['市代理商']
            buyer_area_id = superior['储备池分佣'][1]['区代理商']
            buyer_personal_id = superior['储备池分佣'][0]['个人焕商']

            disanfang_province_id = superior['支付服务费分佣'][1]['省代理商']
            disanfang_city_id = superior['支付服务费分佣'][1]['市代理商']
            disanfang_area_id = superior['支付服务费分佣'][1]['区代理商']
            disanfang_personal_id = superior['支付服务费分佣'][0]['个人焕商']

        # print(buyer_province_id,buyer_city_id,buyer_area_id,buyer_personal_id)
        # 获取上级分佣比例,写回Excel
        if item['payment_method'] in ["易贝", "易贝券"]:
            proportion = SuperiorTemplate().fenyong_template(
                ip, item['payment_method'], item['sheet_name'],
                item['case_id'], buyer_province_id, buyer_city_id,
                buyer_area_id, buyer_personal_id)

        elif item['payment_method'] in ["抵工资", "家人购"]:
            proportion = SuperiorTemplate().fenyong_template(
                ip, item['payment_method'], item['sheet_name'],
                item['case_id'], buyer_province_id, buyer_city_id,
                buyer_area_id, buyer_personal_id, disanfang_province_id,
                disanfang_city_id, disanfang_area_id, disanfang_personal_id)

        else:
            proportion = SuperiorTemplate().fenyong_template(
                ip, item['payment_method'], item['sheet_name'],
                item['case_id'], buyer_province_id, buyer_city_id,
                buyer_area_id, buyer_personal_id, disanfang_province_id,
                disanfang_city_id, disanfang_area_id, disanfang_personal_id)

        # time.sleep(5)

        if buyer_identity == "公海用户":
            if seller_identity == "个人焕商" or seller_identity == "非焕商且已绑定个人焕商":
                # 跳回卖家,解除伙伴绑定
                self.driver.get(H5_Login_url)
                lg = LoginPage(self.driver)
                if seller_identity == "个人焕商":
                    lg.login(seller_phone)
                elif seller_identity == "非焕商且已绑定个人焕商":
                    bangding_phone = eval(item['data'])['bangding_phone']
                    lg.login(bangding_phone)
                time.sleep(2)
                self.driver.get(H5_home_url)
                time.sleep(2)
                self.driver.find_element(*MyIndex.myIndex).click()
                time.sleep(2)
                self.driver.find_element(*MyIndex.myPartner).click()
                time.sleep(3)
                if item['surroundings'] == "test":
                    self.driver.find_element(*MyIndex.delete1).click()
                elif item['surroundings'] == "mtest":
                    self.driver.find_element(*MyIndex.delete2).click()
                elif item['surroundings'] == "dev1":
                    self.driver.find_element(*MyIndex.delete3).click()
                time.sleep(2)
                self.driver.find_element(*MyIndex.queren).click()
                time.sleep(5)

        my_logger.info("----------用例{0}执行完毕----------".format(item['case_id']))
        my_logger.info("----------开始进行对比----------")

        try:
            ip = IP[item['surroundings']]

            if item['payment_method'] in ["易贝", "易贝券"]:
                buyer_province_proportion = proportion['省分佣比例']
                buyer_city_proportion = proportion['市分佣比例']
                buyer_area_proportion = proportion['区分佣比例']
                buyer_personal_proportion = proportion['个人分佣比例']
                disanfang_province_proportion = None
                disanfang_city_proportion = None
                disanfang_area_proportion = None
                disanfang_personal_proportion = None
            else:
                buyer_province_proportion = proportion['储备池分佣']['省分佣比例']
                buyer_city_proportion = proportion['储备池分佣']['市分佣比例']
                buyer_area_proportion = proportion['储备池分佣']['区分佣比例']
                buyer_personal_proportion = proportion['储备池分佣']['个人分佣比例']

                disanfang_province_proportion = proportion['支付服务费分佣']['省分佣比例']
                disanfang_city_proportion = proportion['支付服务费分佣']['市分佣比例']
                disanfang_area_proportion = proportion['支付服务费分佣']['区分佣比例']
                disanfang_personal_proportion = proportion['支付服务费分佣']['个人分佣比例']

            if item['buyer_identity'] == "公海用户":
                if item['seller_identity'] == "个人焕商" or item[
                        'seller_identity'] == "非焕商且已绑定个人焕商":
                    charge_amount = reserve_fund['charge_amount']
                    reserve_fund = reserve_fund['reserve_fund']
                else:
                    charge_amount = None
                    reserve_fund = None
            else:
                charge_amount = None
                reserve_fund = None

            # 预期分佣的用户id流水
            expected_userid = GeShiHua(item['buyer_identity'],
                                       item['seller_identity'],
                                       item['member_level'],
                                       item['payment_method'],
                                       order).userid(eval(item['data']),
                                                     superior)
            # print("expected_userid", expected_userid)

            # 计算出来的(商品价格,需要支付的易贝服务费,需要支付的现金服务费)(储备池分佣)(服务费分佣)
            calculation = A(
                item['buyer_identity'],
                item['seller_identity'],
                buyer_province_proportion=buyer_province_proportion,
                buyer_city_proportion=buyer_city_proportion,
                buyer_area_proportion=buyer_area_proportion,
                buyer_personal_proportion=buyer_personal_proportion,
                disanfang_province_proportion=disanfang_province_proportion,
                disanfang_city_proportion=disanfang_city_proportion,
                disanfang_area_proportion=disanfang_area_proportion,
                disanfang_personal_proportion=disanfang_personal_proportion,
            ).transaction(ip, item['member_level'], item['payment_method'],
                          order, charge_amount, reserve_fund)

            # print("calculation", calculation)

            # 预期的变化金额值流水
            expected_changes = GeShiHua(
                item['buyer_identity'], item['seller_identity'],
                item['member_level'], item['payment_method'],
                order).expected_changes(ip,
                                        calculation,
                                        reserve_fund=reserve_fund)
            # print('expected_changes', expected_changes)

            # 预期的流水
            expected = GeShiHua(item['buyer_identity'],
                                item['seller_identity'], item['member_level'],
                                item['payment_method'],
                                order).expected(ip,
                                                calculation,
                                                eval(item['data']),
                                                superior,
                                                reserve_fund=reserve_fund)
            # print("expected", expected)

            # 写回Excel用
            fanhui = GeShiHua(item['buyer_identity'], item['seller_identity'],
                              item['member_level'], item['payment_method'],
                              order).fanhui(ip, superior)

            sql_data = SQL(ip).wallet_detail(order)

            shuju = Title(item['buyer_identity'], item['seller_identity'],
                          item['payment_method']).title(superior)

            for i in range(0, len(shuju)):
                self.assertEqual(expected[i], sql_data[i])

            self.assertEqual(expected, sql_data)
            my_logger.info("用例{0}正确!{1}".format(item['case_id'],
                                                item['title']))
            TestResult = 'Pass'
            Error = None

        except AssertionError as e:
            my_logger.info("用例错误!错误原因是第{0}行,{1}:".format(i + 1, e))
            TestResult = 'Failed'
            Error = "用例错误!错误原因是:第{0}行,{1}:".format(i + 1, e)
            raise e  # 异常处理完后记得抛出

        finally:  # 不管怎样都得写入Excel
            DoExcel().write_back(test_case_path,
                                 item['sheet_name'], item['case_id'] + 1,
                                 str(expected_userid), str(fanhui[0]),
                                 str(expected_changes), str(fanhui[2]),
                                 str(expected), str(sql_data), TestResult,
                                 str(Error))

        # time.sleep(2)
        my_logger.info("----------对比结束----------")
Ejemplo n.º 4
0
    def test_2_duibi(self, item):

        try:
            ip = IP[item['surroundings']]
            superior = eval(item['superior'])
            data = eval(item['data'])

            if item['payment_method'] in ["易贝", "易贝券"]:
                buyer_province_proportion = eval(item['proportion'])['省分佣比例']
                buyer_city_proportion = eval(item['proportion'])['市分佣比例']
                buyer_area_proportion = eval(item['proportion'])['区分佣比例']
                buyer_personal_proportion = eval(item['proportion'])['个人分佣比例']
                disanfang_province_proportion = None
                disanfang_city_proportion = None
                disanfang_area_proportion = None
                disanfang_personal_proportion = None
            else:
                buyer_province_proportion = (eval(
                    item['proportion']))['储备池分佣']['省分佣比例']
                buyer_city_proportion = (eval(
                    item['proportion']))['储备池分佣']['市分佣比例']
                buyer_area_proportion = (eval(
                    item['proportion']))['储备池分佣']['区分佣比例']
                buyer_personal_proportion = (eval(
                    item['proportion']))['储备池分佣']['个人分佣比例']
                disanfang_province_proportion = (eval(
                    item['proportion']))['支付服务费分佣']['省分佣比例']
                disanfang_city_proportion = (eval(
                    item['proportion']))['支付服务费分佣']['市分佣比例']
                disanfang_area_proportion = (eval(
                    item['proportion']))['支付服务费分佣']['区分佣比例']
                disanfang_personal_proportion = (eval(
                    item['proportion']))['支付服务费分佣']['个人分佣比例']

            if item['buyer_identity'] == "公海用户":
                if item['seller_identity'] == "个人焕商" or item[
                        'seller_identity'] == "非焕商且已绑定个人焕商":
                    charge_amount = eval(item['reserve_fund'])['charge_amount']
                    reserve_fund = eval(item['reserve_fund'])['reserve_fund']
                else:
                    charge_amount = None
                    reserve_fund = None
            else:
                charge_amount = None
                reserve_fund = None

            # 计算出来的(商品价格,需要支付的易贝服务费,需要支付的现金服务费)(储备池分佣)(服务费分佣)
            calculation = A(
                item['buyer_identity'],
                item['seller_identity'],
                buyer_province_proportion=buyer_province_proportion,
                buyer_city_proportion=buyer_city_proportion,
                buyer_area_proportion=buyer_area_proportion,
                buyer_personal_proportion=buyer_personal_proportion,
                disanfang_province_proportion=disanfang_province_proportion,
                disanfang_city_proportion=disanfang_city_proportion,
                disanfang_area_proportion=disanfang_area_proportion,
                disanfang_personal_proportion=disanfang_personal_proportion,
            ).transaction(ip, item['member_level'], item['payment_method'],
                          item['order'], charge_amount, reserve_fund)

            transaction_second_payagent_ratio = eval(
                item['second_payagent_ratio'])

            if item['payment_method'] in ["抵工资", "家人购", "现金", "微信", "支付宝"]:
                bind_buyer_relationship_data = eval(
                    item['bind_relationship_data'])["储备金二级分佣对象"]

                bind_payer_relationship_data = eval(
                    item['bind_relationship_data'])["支付服务费二级分佣对象"]
            else:
                bind_buyer_relationship_data = eval(
                    item['bind_relationship_data'])
                bind_payer_relationship_data = eval(
                    item['bind_relationship_data'])

            # 预期的流水

            if item['payment_method'] in ["易贝", "易贝券"]:
                expected_moban = MoBan(
                    item['buyer_identity'], item['seller_identity'],
                    item['member_level'], item['payment_method'],
                    item['order']).moban(eval(item['data']),
                                         superior,
                                         ip,
                                         calculation,
                                         item['order'],
                                         transaction_second_payagent_ratio,
                                         bind_buyer_relationship_data,
                                         reserve_fund=reserve_fund)
            else:
                expected_moban = MoBan(
                    item['buyer_identity'], item['seller_identity'],
                    item['member_level'], item['payment_method'],
                    item['order']).moban(eval(item['data']),
                                         superior,
                                         ip,
                                         calculation,
                                         item['order'],
                                         transaction_second_payagent_ratio,
                                         bind_buyer_relationship_data,
                                         bind_payer_relationship_data,
                                         reserve_fund=reserve_fund)
            # print("expected", expected)

            # 写回Excel用
            fanhui = GeShiHua(item['buyer_identity'], item['seller_identity'],
                              item['member_level'], item['payment_method'],
                              item['order']).fanhui(ip, eval(item['superior']))

            sql_data = SQL(ip).wallet_detail(item['order'])

            shuju = Title(item['buyer_identity'], item['seller_identity'],
                          item['payment_method']).title(eval(item['superior']))

            for i in range(0, len(shuju)):
                self.assertEqual(expected_moban[i], sql_data[i])

            self.assertEqual(expected_moban, sql_data)

            my_logger.info("用例{0}正确!{1}".format(item['case_id'],
                                                item['title']))
            TestResult = 'Pass'
            Error = None

        except AssertionError as e:
            my_logger.info("用例错误!错误原因是第{0}行,{1}:".format(i + 1, e))
            TestResult = 'Failed'
            Error = "用例错误!错误原因是:第{0}行,{1}:".format(i + 1, e)
            raise e  # 异常处理完后记得抛出

        finally:  # 不管怎样都得写入Excel
            DoExcel().write_back(test_case_path, item['sheet_name'],
                                 item['case_id'] + 1, str(fanhui[0]),
                                 str(fanhui[2]), str(expected_moban),
                                 str(sql_data), TestResult, str(Error))
Ejemplo n.º 5
0
    def test_2_duibi(self, item):

        global i, expected_userid, fanhui, expected_changes, expected, sql_data, TestResult, Error

        try:

            ip = IP[item['surroundings']]

            if item['payment_method'] in ["易贝", "易贝券"]:
                buyer_province_proportion = eval(item['proportion'])['省分佣比例']
                buyer_city_proportion = eval(item['proportion'])['市分佣比例']
                buyer_area_proportion = eval(item['proportion'])['区分佣比例']
                buyer_personal_proportion = eval(item['proportion'])['个人分佣比例']
                disanfang_province_proportion = None
                disanfang_city_proportion = None
                disanfang_area_proportion = None
                disanfang_personal_proportion = None
            else:
                buyer_province_proportion = (eval(
                    item['proportion']))['储备池分佣']['省分佣比例']
                buyer_city_proportion = (eval(
                    item['proportion']))['储备池分佣']['市分佣比例']
                buyer_area_proportion = (eval(
                    item['proportion']))['储备池分佣']['区分佣比例']
                buyer_personal_proportion = (eval(
                    item['proportion']))['储备池分佣']['个人分佣比例']
                disanfang_province_proportion = (eval(
                    item['proportion']))['支付服务费分佣']['省分佣比例']
                disanfang_city_proportion = (eval(
                    item['proportion']))['支付服务费分佣']['市分佣比例']
                disanfang_area_proportion = (eval(
                    item['proportion']))['支付服务费分佣']['区分佣比例']
                disanfang_personal_proportion = (eval(
                    item['proportion']))['支付服务费分佣']['个人分佣比例']

            if item['buyer_identity'] == "公海用户":
                if item['seller_identity'] == "个人焕商" or item[
                        'seller_identity'] == "非焕商且已绑定个人焕商":
                    charge_amount = eval(item['reserve_fund'])['charge_amount']
                    reserve_fund = eval(item['reserve_fund'])['reserve_fund']
                else:
                    charge_amount = None
                    reserve_fund = None
            else:
                charge_amount = None
                reserve_fund = None

            # 预期分佣的用户id流水
            expected_userid = GeShiHua(
                item['buyer_identity'], item['seller_identity'],
                item['member_level'], item['payment_method'],
                item['order']).userid(eval(item['data']),
                                      eval(item['superior']))
            # print("expected_userid", expected_userid)

            # 计算出来的(商品价格,需要支付的易贝服务费,需要支付的现金服务费)(储备池分佣)(服务费分佣)
            calculation = A(
                item['buyer_identity'],
                item['seller_identity'],
                buyer_province_proportion=buyer_province_proportion,
                buyer_city_proportion=buyer_city_proportion,
                buyer_area_proportion=buyer_area_proportion,
                buyer_personal_proportion=buyer_personal_proportion,
                disanfang_province_proportion=disanfang_province_proportion,
                disanfang_city_proportion=disanfang_city_proportion,
                disanfang_area_proportion=disanfang_area_proportion,
                disanfang_personal_proportion=disanfang_personal_proportion,
            ).transaction(ip, item['member_level'], item['payment_method'],
                          item['order'], charge_amount, reserve_fund)

            # print("calculation", calculation)

            # 预期的变化金额值流水
            expected_changes = GeShiHua(
                item['buyer_identity'], item['seller_identity'],
                item['member_level'], item['payment_method'],
                item['order']).expected_changes(ip,
                                                calculation,
                                                reserve_fund=reserve_fund)
            # print('expected_changes', expected_changes)

            # 预期的流水
            expected = GeShiHua(
                item['buyer_identity'], item['seller_identity'],
                item['member_level'], item['payment_method'],
                item['order']).expected(ip,
                                        calculation,
                                        eval(item['data']),
                                        eval(item['superior']),
                                        reserve_fund=reserve_fund)
            # print("expected", expected)

            # 写回Excel用
            fanhui = GeShiHua(item['buyer_identity'], item['seller_identity'],
                              item['member_level'], item['payment_method'],
                              item['order']).fanhui(ip, eval(item['superior']))

            sql_data = SQL(ip).wallet_detail(item['order'])

            shuju = Title(item['buyer_identity'], item['seller_identity'],
                          item['payment_method']).title(eval(item['superior']))

            for i in range(0, len(shuju)):
                self.assertEqual(expected[i], sql_data[i])

            self.assertEqual(expected, sql_data)

            my_logger.info("用例{0}正确!{1}".format(item['case_id'],
                                                item['title']))
            TestResult = 'Pass'
            Error = None

        except AssertionError as e:
            my_logger.info("用例错误!错误原因是第{0}行,{1}:".format(i + 1, e))
            TestResult = 'Failed'
            Error = "用例错误!错误原因是:第{0}行,{1}:".format(i + 1, e)
            raise e  # 异常处理完后记得抛出

        finally:  # 不管怎样都得写入Excel
            DoExcel().write_back(test_case_path,
                                 item['sheet_name'], item['case_id'] + 1,
                                 str(expected_userid), str(fanhui[0]),
                                 str(expected_changes), str(fanhui[2]),
                                 str(expected), str(sql_data), TestResult,
                                 str(Error))