示例#1
0
class Api_Finance_GetAuditData(unittest.TestCase):
    run_rules_dic = Config().get_run_rules_config()
    run_rules_dic.update({'ScriptName': os.path.basename(__file__)})
    datas = get_case_from_excel(Config().case_data_file_path, ['Finance'], run_rules_dic, 'Finance')

    def setUp(self) -> None:
        logging.info('启动脚本文件 :  {}'.format(os.path.basename(__file__)))
        self.account = Config().get_ini_value('Global_ini', 'WebUserName')
        self.password = Config().get_ini_value('Global_ini', 'WebPwd')
    @data(*datas)
    def test_GetAuditData(self,datas):
        self.testcasename = datas['CaseName']
        logging.info('开始执行用例: {} ( {} )'.format(datas['CaseName'], self._testMethodName))
        logging.info('=======================调用【用户登录】接口====================================')
        LoginSessionID = login_api(self.account, self.password)
        if not LoginSessionID:
            logging.error('登录失败,请检查登录接口是否异常!')
        logging.info('=======================调用【获取出款稽核数据】接口====================================')
        self.actual_result = http_api_requests('充值提现.获取出款稽核数据', Headers={"LoginSessionID": LoginSessionID},
                                               NewVerifParmsData={})
        self.expected_result = datas['ExpectResult']
        try:
            check_result(self.expected_result, self.actual_result)
            result = 'pass'
        except InterfaceVerifyError:
            result = 'false'
        finally:
            write_result_data_to_excel(Config().case_data_file_path, 'Finance', 'ID', datas['ID'], result)

    def tearDown(self) -> None:
        pass
示例#2
0
class Api_Finance_UpEncashmentApply(unittest.TestCase):
    run_rules_dic = Config().get_run_rules_config()
    run_rules_dic.update({'ScriptName': os.path.basename(__file__)})
    datas = get_case_from_excel(Config().case_data_file_path, ['Finance'], run_rules_dic, 'Finance')

    def setUp(self) -> None:
        logging.info('启动脚本文件 :  {}'.format(os.path.basename(__file__)))
        self.account = Config().get_ini_value('Global_ini', 'WebUserName')
        self.password = Config().get_ini_value('Global_ini', 'WebPwd')
    @data(*datas)
    def test_UpEncashmentApply(self,datas):
        self.testcasename = datas['CaseName']
        logging.info('开始执行用例: {} ( {} )'.format(datas['CaseName'], self._testMethodName))
        logging.info('=======================调用【用户登录】接口====================================')
        LoginSessionID = login_api(self.account, self.password)
        if not LoginSessionID:
            logging.error('登录失败,请检查登录接口是否异常!')
        withdrawI_data,charg_data,bank_id = get_GetEncashment_data(LoginSessionID)
        datas['NewVerifParmsData'].update({"Amount":withdrawI_data,"CardID":bank_id,"Password":md5_encryption(Config().get_ini_value('Global_ini', 'amount_pwd'))})
        logging.info('=======================调用【前台出款申请】接口====================================')
        self.actual_result = http_api_requests('充值提现.前台出款申请', Headers={"LoginSessionID": LoginSessionID},
                                               NewVerifParmsData=datas['NewVerifParmsData'])
        self.expected_result = datas['ExpectResult']
        try:
            check_result(self.expected_result, self.actual_result)
            result = 'pass'
        except InterfaceVerifyError:
            result = 'false'
        finally:
            write_result_data_to_excel(Config().case_data_file_path, 'Finance', 'ID', datas['ID'], result)
    def tearDown(self) -> None:
        pass
class Api_AG_User_Login(unittest.TestCase):
    run_rules_dic = Config().get_run_rules_config()
    run_rules_dic.update({'ScriptName': os.path.basename(__file__)})
    datas = get_case_from_excel(Config().case_data_file_path, ['User'], run_rules_dic, 'User')

    def setUp(self) -> None:
        logging.info('启动脚本文件 :  {}'.format(os.path.basename(__file__)))
        self.account = Config().get_ini_value('Global_ini', 'AgUserName')
        self.password = Config().get_ini_value('Global_ini', 'AgPwd')
    @data(*datas)
    def test_AG_uesr_login(self,datas):
        self._testMethodDoc = datas['CaseName']
        datas['NewVerifParmsData'].update({"username":self.account})
        datas['NewVerifParmsData'].update({"password":md5_encryption(md5_encryption(self.password))})
        logging.info('开始执行用例: {} ( {} )'.format(self._testMethodDoc, self._testMethodName))
        logging.info('=======================调用【后台用户登录】接口====================================')
        self.actual_result = http_api_requests('后台相关.用户登录',return_result=True,server_host=Config().ag_host,NewVerifParmsData=datas['NewVerifParmsData'])
        time.sleep(1)
        self.expected_result = datas['ExpectResult']
        if self.expected_result in self.actual_result:
            result = 'pass'
        else:
            result = 'false'
        write_result_data_to_excel(Config().case_data_file_path, 'User', 'ID', datas['ID'], result)

    def tearDown(self) -> None:
        pass
class Api_Activiy_AddActity(unittest.TestCase):
    run_rules_dic = Config().get_run_rules_config()
    run_rules_dic.update({'ScriptName': os.path.basename(__file__)})
    datas = get_case_from_excel(Config().case_data_file_path, ['Activity'],
                                run_rules_dic, 'Activity')

    def setUp(self) -> None:
        logging.info('启动脚本文件 :  {}'.format(os.path.basename(__file__)))
        self.account = Config().get_ini_value('Global_ini', 'WebUserName')
        self.password = Config().get_ini_value('Global_ini', 'WebPwd')

    @data(*datas)
    def test_get_activitylist(self, datas):
        self._testMethodDoc = datas['CaseName']
        logging.info('开始执行用例: {} ( {} )'.format(self._testMethodDoc,
                                                self._testMethodName))
        logging.info(
            '=======================调用【用户登录】接口===================================='
        )
        self.LoginSessionID = login_api(self.account, self.password)
        if not self.LoginSessionID:
            logging.error('登录失败,请检查登录接口是否异常!')
        logging.info(
            '=======================调用【后台添加活动接口】接口===================================='
        )
        activity_name = Ag_AddActity_from_api()
        if not activity_name:
            logging.error('活动名称获取失败!')
            raise
        activity_data = get_activity_data_from_api(
            LoginSessionID=self.LoginSessionID,
            ActivityType=1,
            FActivitySubTypeId=None,
            return_data=False)
        activity_id = []
        for activity in activity_data:
            if activity['活动名称'] == activity_name:
                activity_id.append(activity['活动ID'])
        logging.info(
            '=======================调用【参加活动】接口===================================='
        )
        datas['NewVerifParmsData'].update({"ActityID": activity_id[0]})
        self.actual_result = http_api_requests(
            '活动相关.参加活动',
            Headers={"LoginSessionID": self.LoginSessionID},
            NewVerifParmsData=datas['NewVerifParmsData'])
        self.expected_result = datas['ExpectResult']
        result = None
        try:
            check_result(self.expected_result, self.actual_result)
            result = 'pass'
        except InterfaceVerifyError:
            result = 'false'
        finally:
            write_result_data_to_excel(Config().case_data_file_path,
                                       'Activity', 'ID', datas['ID'], result)

    def tearDown(self) -> None:
        pass
示例#5
0
class Ag_Api_User_AddAccount(unittest.TestCase):
    r = RandomUtil()
    run_rules_dic = Config().get_run_rules_config()
    run_rules_dic.update({'ScriptName': os.path.basename(__file__)})
    datas = get_case_from_excel(Config().case_data_file_path, ['User'],
                                run_rules_dic, 'User')

    def setUp(self) -> None:
        logging.info('启动脚本文件 :  {}'.format(os.path.basename(__file__)))
        self.account = Config().get_ini_value('Global_ini', 'AgUserName')
        self.password = Config().get_ini_value('Global_ini', 'AgPwd')
        self.account_name = 'AGatuotest' + self.r.get_random_info_int(4)

    @data(*datas)
    def test_AG_uesr_login(self, datas):
        self._testMethodDoc = datas['CaseName']
        logging.info('开始执行用例: {} ( {} )'.format(self._testMethodDoc,
                                                self._testMethodName))
        logging.info(
            '=======================调用【后台用户登录】接口===================================='
        )
        LoginSessionID = ag_login_api(self.account, self.password)
        if not LoginSessionID:
            logging.error('后台登录失败,请检查!')
            raise
        logging.info(
            '=======================调用【后台添加账户】接口===================================='
        )
        datas['NewVerifParmsData'].update({"password": self.password})
        datas['NewVerifParmsData'].update({"accountName": self.account_name})
        datas['NewVerifParmsData'].update({
            "jsonlist":
            '[{"Key":"AccountRemark","Title":"用户备注","Value":""}]'
        })
        datas['NewVerifParmsData'].update({
            "UserKickbacks":
            '[{"FKickback":0.09},{"FKickback":0.09},{"FKickback":0.09},{"FKickback":0.09},{"FKickback":0.09},{"FKickback":0.09},{"FKickback":0.09},{"FKickback":0.09},{"FKickback":0.09},{"FKickback":0.09},{"FKickback":0.09},{"FKickback":0.09},{"FKickback":0.09}]'
        })
        self.actual_result = http_api_requests(
            '后台相关.添加账户',
            Headers={"LoginSessionID": LoginSessionID},
            server_host=Config().ag_host,
            NewVerifParmsData=datas['NewVerifParmsData'])
        self.expected_result = datas['ExpectResult']
        result = None
        try:
            check_result(self.expected_result, self.actual_result)
            result = 'pass'
            logging.info('新增用户({})成功'.format(self.account_name))
        except InterfaceVerifyError:
            result = 'false'
        finally:
            write_result_data_to_excel(Config().case_data_file_path, 'User',
                                       'ID', datas['ID'], result)

    def tearDown(self) -> None:
        pass
class Api_Finance_GetPaymentProvider(unittest.TestCase):
    run_rules_dic = Config().get_run_rules_config()
    run_rules_dic.update({'ScriptName': os.path.basename(__file__)})
    datas = get_case_from_excel(Config().case_data_file_path, ['Finance'],
                                run_rules_dic, 'Finance')

    def setUp(self) -> None:
        logging.info('启动脚本文件 :  {}'.format(os.path.basename(__file__)))
        self.account = Config().get_ini_value('Global_ini', 'WebUserName')
        self.password = Config().get_ini_value('Global_ini', 'WebPwd')

    @data(*datas)
    def test_paymentindex(self, datas):
        self._testMethodDoc = datas['CaseName']
        logging.info('开始执行用例: {} ( {} )'.format(self._testMethodDoc,
                                                self._testMethodName))
        logging.info(
            '=======================调用【用户登录】接口===================================='
        )
        self.LoginSessionID = login_api(self.account, self.password)
        if not self.LoginSessionID:
            logging.error('登录失败,请检查登录接口是否异常!')
        payment_id = get_finance_paymentindex(
            LoginSessionID=self.LoginSessionID, paytype=1)
        logging.info('获取通道ID:{},获取通道名称:{}'.format(payment_id['ID'],
                                                  payment_id['PayType']))
        logging.info(
            '=======================调用【获取可用支付通道】接口===================================='
        )
        datas['NewVerifParmsData'].update({"id": payment_id['ID']})
        datas['NewVerifParmsData'].update({"isonline": payment_id['Type']})
        self.actual_result = http_api_requests(
            '充值提现.获取可用支付通道',
            Headers={"LoginSessionID": self.LoginSessionID},
            NewVerifParmsData=datas['NewVerifParmsData'])
        self.expected_result = datas['ExpectResult']
        result = None
        try:
            check_result(self.expected_result, self.actual_result)
            result = 'pass'
        except InterfaceVerifyError:
            result = 'false'
        finally:
            write_result_data_to_excel(Config().case_data_file_path, 'Finance',
                                       'ID', datas['ID'], result)
        pay_data = get_json_value(self.actual_result, '/Data')
        temp = '/OnlinePayment' if payment_id['Type'] else '/OfflinePayment'
        pay_data_ = get_json_value(pay_data, '{}'.format(temp))
        payment_info = []
        for payment_ in pay_data_:
            payment_.update({'OrderNumber': pay_data['OrderNumber']})
            payment_.update({'Number': pay_data['Number']})
            payment_info.append(payment_)
        print(payment_info)

    def tearDown(self) -> None:
        pass
示例#7
0
class Api_Finance_GetEncashment(unittest.TestCase):
    run_rules_dic = Config().get_run_rules_config()
    run_rules_dic.update({'ScriptName': os.path.basename(__file__)})
    datas = get_case_from_excel(Config().case_data_file_path, ['Finance'],
                                run_rules_dic, 'Finance')

    def setUp(self) -> None:
        logging.info('启动脚本文件 :  {}'.format(os.path.basename(__file__)))
        self.account = Config().get_ini_value('Global_ini', 'WebUserName')
        self.password = Config().get_ini_value('Global_ini', 'WebPwd')

    @data(*datas)
    def test_GetEncashment(self, datas):
        self.testcasename = datas['CaseName']
        logging.info('开始执行用例: {} ( {} )'.format(datas['CaseName'],
                                                self._testMethodName))
        logging.info(
            '=======================调用【用户登录】接口===================================='
        )
        LoginSessionID = login_api(self.account, self.password)
        if not LoginSessionID:
            logging.error('登录失败,请检查登录接口是否异常!')
        logging.info(
            '=======================调用【获取提现基础数据】接口===================================='
        )
        self.actual_result = http_api_requests(
            '充值提现.获取提现基础数据',
            Headers={"LoginSessionID": LoginSessionID},
            NewVerifParmsData={})
        self.expected_result = datas['ExpectResult']
        try:
            check_result(self.expected_result, self.actual_result)
            result = 'pass'
        except InterfaceVerifyError:
            result = 'false'
        finally:
            write_result_data_to_excel(Config().case_data_file_path, 'Finance',
                                       'ID', datas['ID'], result)
        # 获取基础出款数据
        WithdrawI_data = get_json_value(self.actual_result, '/Data')
        print(WithdrawI_data['EncashmentMax'])
        # 获取手续费数据
        Charge_data = get_json_value(self.actual_result, '/Data/ChargeModel')
        # 获取银行卡ID
        BankList = get_json_value(self.actual_result, '/Data/BankList')
        bank_card_id = []
        for bank_data in BankList:
            bank_card_id.append(bank_data['FID'])
        print(bank_card_id)

    def tearDown(self) -> None:
        pass
class Api_Finance_CheckIsFirstRecharge(unittest.TestCase):
    run_rules_dic = Config().get_run_rules_config()
    run_rules_dic.update({'ScriptName': os.path.basename(__file__)})
    datas = get_case_from_excel(Config().case_data_file_path, ['Finance'],
                                run_rules_dic, 'Finance')

    def setUp(self) -> None:
        logging.info('启动脚本文件 :  {}'.format(os.path.basename(__file__)))
        self.account = Config().get_ini_value('Global_ini', 'WebUserName')
        self.password = Config().get_ini_value('Global_ini', 'WebPwd')

    @data(*datas)
    def test_checkisfirstrecharge(self, datas):
        self._testMethodDoc = datas['CaseName']
        logging.info('开始执行用例: {} ( {} )'.format(self._testMethodDoc,
                                                self._testMethodName))
        logging.info(
            '=======================调用【用户登录】接口===================================='
        )
        self.LoginSessionID = login_api(self.account, self.password)
        if not self.LoginSessionID:
            logging.error('登录失败,请检查登录接口是否异常!')
        payment_info = get_finance_paymentindex(
            LoginSessionID=self.LoginSessionID, paytype=1)
        logging.info('获取通道ID:{},获取通道名称:{}'.format(payment_info['ID'],
                                                  payment_info['PayType']))
        logging.info(
            '=======================调用【检查通道是否首次充值】接口===================================='
        )
        datas['NewVerifParmsData'].update({
            "id": payment_info['ID'],
            "isonline": payment_info['Type'],
            "_": get_time_stamp(level=1)
        })
        self.actual_result = http_api_requests(
            '充值提现.检查通道是否首次充值',
            Headers={"LoginSessionID": self.LoginSessionID},
            NewVerifParmsData=datas['NewVerifParmsData'])
        self.expected_result = datas['ExpectResult']
        result = None
        try:
            check_result(self.expected_result, self.actual_result)
            result = 'pass'
        except InterfaceVerifyError:
            result = 'false'
        finally:
            write_result_data_to_excel(Config().case_data_file_path, 'Finance',
                                       'ID', datas['ID'], result)

    def tearDown(self) -> None:
        pass
class Api_Finance_Paymentindex(unittest.TestCase):
    run_rules_dic = Config().get_run_rules_config()
    run_rules_dic.update({'ScriptName': os.path.basename(__file__)})
    datas = get_case_from_excel(Config().case_data_file_path, ['Finance'],
                                run_rules_dic, 'Finance')

    def setUp(self) -> None:
        logging.info('启动脚本文件 :  {}'.format(os.path.basename(__file__)))
        self.account = Config().get_ini_value('Global_ini', 'WebUserName')
        self.password = Config().get_ini_value('Global_ini', 'WebPwd')

    @data(*datas)
    def test_paymentindex(self, datas):
        self._testMethodDoc = datas['CaseName']
        logging.info('开始执行用例: {} ( {} )'.format(self._testMethodDoc,
                                                self._testMethodName))
        logging.info(
            '=======================调用【用户登录】接口===================================='
        )
        self.LoginSessionID = login_api(self.account, self.password)
        if not self.LoginSessionID:
            logging.error('登录失败,请检查登录接口是否异常!')
        logging.info(
            '=======================调用【充值导航-可用通道】接口===================================='
        )
        self.actual_result = http_api_requests(
            '充值提现.充值导航',
            Headers={"LoginSessionID": self.LoginSessionID},
            NewVerifParmsData={})
        self.expected_result = datas['ExpectResult']
        result = None
        try:
            check_result(self.expected_result, self.actual_result)
            result = 'pass'
        except InterfaceVerifyError:
            result = 'false'
        finally:
            write_result_data_to_excel(Config().case_data_file_path, 'Finance',
                                       'ID', datas['ID'], result)
        paymentIndex = get_json_value(self.actual_result, '/Data/PaymentList')
        payment_info = []
        for payment in paymentIndex:
            #print(payment['PayType'])
            payment_dict = {}
            payment_dict.update({'ID': payment['ID']})
            payment_dict.update({'PayType': payment['PayType']})
            payment_info.append(payment_dict)
        print(payment_info)

    def tearDown(self) -> None:
        pass
示例#10
0
class Api_Activity_GetActivityList(unittest.TestCase):
    run_rules_dic = Config().get_run_rules_config()
    run_rules_dic.update({'ScriptName': os.path.basename(__file__)})
    datas = get_case_from_excel(Config().case_data_file_path, ['Activity'],
                                run_rules_dic, 'Activity')

    def setUp(self) -> None:
        logging.info('启动脚本文件 :  {}'.format(os.path.basename(__file__)))
        self.account = Config().get_ini_value('Global_ini', 'WebUserName')
        self.password = Config().get_ini_value('Global_ini', 'WebPwd')

    @data(*datas)
    def test_get_activitylist(self, datas):
        self._testMethodDoc = datas['CaseName']
        logging.info('开始执行用例: {} ( {} )'.format(self._testMethodDoc,
                                                self._testMethodName))
        logging.info(
            '=======================调用【用户登录】接口===================================='
        )
        self.LoginSessionID = login_api(self.account, self.password)
        if not self.LoginSessionID:
            logging.error('登录失败,请检查登录接口是否异常!')
        logging.info(
            '=======================调用【查询用户已参加活动】接口===================================='
        )
        start_time, en_time = get_nowday_and_yestday()
        datas['NewVerifParmsData'].update({"StartTime": en_time})
        datas['NewVerifParmsData'].update({"EndTime": start_time})
        self.actual_result = http_api_requests(
            '活动相关.查询用户已参加活动',
            Headers={"LoginSessionID": self.LoginSessionID},
            NewVerifParmsData=datas['NewVerifParmsData'])
        self.expected_result = datas['ExpectResult']
        result = None
        try:
            check_result(self.expected_result, self.actual_result)
            result = 'pass'
        except InterfaceVerifyError:
            result = 'false'
        finally:
            write_result_data_to_excel(Config().case_data_file_path,
                                       'Activity', 'ID', datas['ID'], result)

    def tearDown(self) -> None:
        pass
示例#11
0
class Api_Game_GetCPYXGameList(unittest.TestCase):
    run_rules_dic = Config().get_run_rules_config()
    run_rules_dic.update({'ScriptName': os.path.basename(__file__)})
    datas = get_case_from_excel(Config().case_data_file_path, ['Game'], run_rules_dic, 'Game')
    def setUp(self) :
        logging.info('启动脚本文件 :  {}'.format(os.path.basename(__file__)))
    @data(*datas)
    def test_unit_001(self,datas):
        self.testcasename = datas['CaseName']
        logging.info('开始执行用例: {} ( {} )'.format(datas['CaseName'], self._testMethodName))
        logging.info('=======================调用【获取首页游戏列表接口】接口====================================')
        self.actual_result = http_api_requests('游戏相关.获取首页游戏列表',NewVerifParmsData=datas['NewVerifParmsData'])
        print(self.actual_result)
        self.expected_result = datas['ExpectResult']
        try:
            check_result(self.expected_result, self.actual_result)
            result = 'pass'
            data = get_json_value(self.actual_result,'/Data/GameData')
            game_id_list = []
            for game_data in data:
                # print(game_data)
                for game_list in game_data['GameCateList']:
                    if game_list['FCategoryName'] not in ['真人视讯','VR彩','体育竞技','电子游戏','棋牌']:
                        # 过滤掉信用游戏
                        if game_list['FGroupID'] ==0:
                            FCategoryName = game_list['FCategoryName']
                            for game_info in game_list['GameInfoList']:
                                game_dic = {}
                                #print(FCategoryName,game_info)
                                game_dic.update({FCategoryName:{game_info['FGameName']:game_info['FGameID']}})
                                game_id_list.append(game_dic)
            print(game_id_list)
            for game in game_id_list:
                if list(list(game.values())[0].values())[0] == 57:
                    print(game)
            # [{'秒秒彩': {511: '深圳秒秒彩'}}, {'秒秒彩': {363: '豪彩重庆刮刮乐'}}, {'秒秒彩': {396: '快三刮刮乐'}}, {'时时彩': {26: '重庆时时彩'}}, {'时时彩': {40: '新疆时时彩'}}, {'时时彩': {57: '北京时时彩'}}, {'时时彩': {222: '三方重庆时时彩'}}, {'时时彩': {507: '重疆时时彩'}}, {'时时彩': {567: '三方时时彩'}}, {'时时彩': {612: '幸运时时彩'}}, {'分分彩': {51: '韩式1.5分彩'}}, {'分分彩': {81: '腾讯分分彩'}}, {'分分彩': {86: '东京1.5分彩'}}, {'分分彩': {125: '极速分分彩'}}, {'分分彩': {180: '豪彩韩式1.5分彩'}}, {'分分彩': {182: '东京1.5分彩'}}, {'分分彩': {442: '豪彩1.5分11选5彩'}}, {'快三': {39: '江苏快三'}}, {'快三': {95: '安徽快3'}}, {'快三': {97: '河北快3'}}, {'快三': {103: '甘肃快3'}}, {'快三': {109: '湖北快3'}}, {'快三': {115: '广西快3'}}, {'快三': {198: '5分快三'}}, {'快三': {509: '奖期快三'}}, {'快三': {512: '测试复制江苏快三'}}, {'快三': {584: 'pland五分快三'}}, {'快三': {310: '豪彩 LX3分快三'}}, {'低频彩': {44: '排列三、五'}}, {'低频彩': {30: '福彩3D'}}, {'低频彩': {85: '上海时时乐'}}, {'低频彩': {566: '三方福彩3D'}}, {'11选5': {32: '山东11选5'}}, {'11选5': {45: '广东11选5'}}, {'11选5': {46: '江西11选5'}}, {'11选5': {50: '黑龙江11选5'}}, {'11选5': {74: '江苏11选5'}}, {'11选5': {320: 'LX1分11选5'}}, {'PC蛋蛋': {116: '幸运28'}}, {'PC蛋蛋': {119: '东京28'}}, {'PC蛋蛋': {121: '韩式28'}}, {'PC蛋蛋': {285: 'PC蛋蛋(自)'}}, {'PC蛋蛋': {371: '新斯洛伐克28期数模板'}}, {'PC蛋蛋': {4: '广东11选5'}}, {'极速彩': {166: '测试1.5分彩'}}, {'极速彩': {222: '三方重庆时时彩'}}, {'极速彩': {237: '自研重庆'}}, {'极速彩': {284: '自研福彩3D'}}, {'PK拾': {231: '豪彩11选5'}}, {'PK拾': {29: '北京PK拾'}}, {'PK拾': {93: '幸运飞艇'}}, {'PK拾': {195: '5分pk拾'}}, {'PK拾': {202: '极速幸运飞艇1分彩'}}, {'PK拾': {204: '极速幸运飞艇2分彩'}}, {'PK拾': {206: '极速幸运飞艇3.5分彩'}}, {'PK拾': {476: '极速赛车'}}, {'PK拾': {190: '豪彩1分PK拾'}}, {'PK拾': {333: 'LX1分PK拾再名1'}}, {'PK拾': {334: '豪彩LX1.5分PK拾'}}, {'快乐彩': {63: '韩国快乐8'}}, {'快乐彩': {279: '自研快乐8'}}, {'快乐彩': {28: '北京快乐8'}}, {'快乐彩': {565: '三方官方快乐8'}}]

        except InterfaceVerifyError:
            result = 'false'
        finally:
            write_result_data_to_excel(Config().case_data_file_path, 'Game', 'ID', datas['ID'], result)


    def tearDown(self) :
        pass
示例#12
0
class Api_Activity_GetActivityList(unittest.TestCase):
    run_rules_dic = Config().get_run_rules_config()
    run_rules_dic.update({'ScriptName': os.path.basename(__file__)})
    datas = get_case_from_excel(Config().case_data_file_path, ['Activity'], run_rules_dic, 'Activity')

    def setUp(self) -> None:
        logging.info('启动脚本文件 :  {}'.format(os.path.basename(__file__)))
        self.account = Config().get_ini_value('Global_ini', 'WebUserName')
        self.password = Config().get_ini_value('Global_ini', 'WebPwd')
    @data(*datas)
    def test_get_activitylist(self,datas):
        self._testMethodDoc = datas['CaseName']
        logging.info('开始执行用例: {} ( {} )'.format(self._testMethodDoc, self._testMethodName))
        logging.info('=======================调用【用户登录】接口====================================')
        self.LoginSessionID = login_api(self.account, self.password)
        if not self.LoginSessionID:
            logging.error('登录失败,请检查登录接口是否异常!')
        logging.info('=======================调用【获取活动列表】接口====================================')
        self.actual_result = http_api_requests('活动相关.查询是否有活动', Headers={"LoginSessionID": self.LoginSessionID},NewVerifParmsData={})
        self.expected_result = datas['ExpectResult']
        activiy_info = []
        for activiy_data in get_json_value(self.actual_result,'/Data'):
            activiy_dict = {}
            if activiy_data['HasActivity']:
                if activiy_data['Type'] == 5:
                    activiy_dict.update({'红包活动ID':activiy_data['ActivityId']})
                elif activiy_data['Type'] == 6:
                    activiy_dict.update({'红包雨活动ID': activiy_data['ActivityId']})
                else:
                    activiy_dict.update({'大转盘活动ID': activiy_data['ActivityId']})
            activiy_info.append(activiy_dict)
        print(activiy_info)
        result = None
        try:
            check_result(self.expected_result, self.actual_result)
            result = 'pass'
        except InterfaceVerifyError:
            result = 'false'
        finally:
            write_result_data_to_excel(Config().case_data_file_path, 'Activity', 'ID', datas['ID'], result)
    def tearDown(self) -> None:
        pass
示例#13
0
class Api_TestWeb_AddAccount(unittest.TestCase):
    r = RandomUtil()
    run_rules_dic = Config().get_run_rules_config()
    run_rules_dic.update({'ScriptName': os.path.basename(__file__)})
    datas = get_case_from_excel(Config().case_data_file_path, ['Test_Web'],
                                run_rules_dic, 'Test_Web')

    def setUp(self):
        logging.info('启动脚本文件 :  {}'.format(os.path.basename(__file__)))
        self.account = Config().get_ini_value('Global_ini', 'WebUserName')
        self.password = Config().get_ini_value('Global_ini', 'WebPwd')

    @data(*datas)
    def test_web_addaccount(self, datas):
        self._testMethodDoc = datas['CaseName']
        account = 'atuotest' + self.r.get_random_info_int(4)
        datas['NewVerifParmsData'].update({'accountName': account})
        logging.info('开始执行用例: {} ( {} )'.format(self._testMethodDoc,
                                                self._testMethodName))
        logging.info('======================调用:用户登录接口=======================')
        LoginSessionID = login(self.account, self.password)
        logging.info('======================调用:代理注册接口=======================')
        self.actual_result = http_api_requests(
            '前台相关.代理注册',
            Headers={"LoginSessionID": LoginSessionID},
            NewVerifParmsData=datas['NewVerifParmsData'])
        self.expected_result = datas['ExpectResult']

        result = None
        try:
            check_result(self.expected_result, self.actual_result)
            result = 'pass'
        except InterfaceVerifyError:
            result = 'false'
        finally:
            write_result_data_to_excel(Config().case_data_file_path,
                                       'Test_Web', 'ID', datas['ID'], result)

    def tearDown(self):
        pass
class Api_Finance_GetPreferenceNewConfig(unittest.TestCase):
    run_rules_dic = Config().get_run_rules_config()
    run_rules_dic.update({'ScriptName': os.path.basename(__file__)})
    datas = get_case_from_excel(Config().case_data_file_path, ['Finance'], run_rules_dic, 'Finance')
    def setUp(self) -> None:
        logging.info('启动脚本文件 :  {}'.format(os.path.basename(__file__)))
        self.account = Config().get_ini_value('Global_ini', 'WebUserName')
        self.password = Config().get_ini_value('Global_ini', 'WebPwd')

    @data(*datas)
    def test_Finance_GetPreferenceNewConfig(self,datas):
        self._testMethodDoc = datas['CaseName']
        logging.info('开始执行用例: {} ( {} )'.format(self._testMethodDoc, self._testMethodName))
        logging.info('=======================调用【用户登录】接口====================================')
        self.LoginSessionID = login_api(self.account, self.password)
        if not self.LoginSessionID:
            logging.error('登录失败,请检查登录接口是否异常!')
        self.type = 0 if datas['NewVerifParmsData']['Type'] == 1 else 1 # 根据测试数据type类型来决定获取通道的类型 测试数据type-1为线下/2为线上 -paytype获取通道时0为线下/1为线上
        payment_info = get_finance_paymentindex(LoginSessionID=self.LoginSessionID, paytype=self.type)
        logging.info('获取通道ID:{},获取通道名称:{}'.format(payment_info['ID'], payment_info['PayType']))
        # 返回单个可用商户字典信息
        payment_data = payment_PreferenceNewConfig(LoginSessionID=self.LoginSessionID,id=payment_info['ID'],isonline=payment_info['Type'],return_data=True)
        # 可用支付商字段信息 ID 通道ID/MaxAmount 最大存款金额/MinAmount  	最小存款金额/IsCharge 是否需要手续费/Charge 手续费比例/IsDepositAddRandom 是否充值时增加随机金额(0.00-0.08) /
        # WayType 通道类型。0、全部通道;1、扫码支付;2、客户端支付/FIsShowShortcut 是否显示金额快捷方式/FShortcutSet 金额快捷设置/OrderNumber 当前交易的订单号/Number 附言码
        logging.info('=======================调用【获取支付商优惠设置】接口====================================')
        datas['NewVerifParmsData'].update({"CashConfigId":payment_data['ID'],"_":get_time_stamp()})
        self.actual_result = http_api_requests('充值提现.获取支付商优惠设置', Headers={"LoginSessionID": self.LoginSessionID},
                                               NewVerifParmsData=datas['NewVerifParmsData'])
        self.expected_result = datas['ExpectResult']
        result = None
        try:
            check_result(self.expected_result, self.actual_result)
            result = 'pass'
        except InterfaceVerifyError:
            result = 'false'
        finally:
            write_result_data_to_excel(Config().case_data_file_path, 'Finance', 'ID', datas['ID'], result)
        print(get_json_value(self.actual_result,'/Data'))
    def tearDown(self) -> None:
        pass
class Api_Web_User_Login(unittest.TestCase):
    run_rules_dic = Config().get_run_rules_config()
    run_rules_dic.update({'ScriptName': os.path.basename(__file__)})
    datas = get_case_from_excel(Config().case_data_file_path, ['Test_Web'],
                                run_rules_dic, 'Test_Web')

    def setUp(self):
        logging.info('启动脚本文件 :  {}'.format(os.path.basename(__file__)))
        self.account = Config().get_ini_value('Global_ini', 'WebUserName')

        self.password = Config().get_ini_value('Global_ini', 'WebPwd')

    @data(*datas)
    def test_web_user_login_01(self, datas):
        self._testMethodDoc = datas['CaseName']
        logging.info('开始执行用例: {} ( {} )'.format(self._testMethodDoc,
                                                self._testMethodName))
        logging.info('======================调用:用户登录接口=======================')
        self.actual_result = http_api_requests(
            '前台相关.用户登录',
            NewVerifParmsData={
                "username": self.account,
                "password": md5_encryption(md5_encryption(self.password))
            })
        self.expected_result = datas['ExpectResult']
        result = None
        try:
            check_result(self.expected_result, self.actual_result)
            result = 'pass'
        except InterfaceVerifyError:
            result = 'false'
        finally:
            write_result_data_to_excel(Config().case_data_file_path,
                                       'Test_Web', 'ID', datas['ID'], result)

    def tearDown(self):
        pass
class Api_Game_OfficialAddOrders(unittest.TestCase):
    run_rules_dic = Config().get_run_rules_config()
    run_rules_dic.update({'ScriptName': os.path.basename(__file__)})
    datas = get_case_from_excel(Config().case_data_file_path, ['Game'],
                                run_rules_dic, 'Game')

    #print(datas)
    def setUp(self):
        logging.info('启动脚本文件 :  {}'.format(os.path.basename(__file__)))
        self.account = Config().get_ini_value('Global_ini', 'WebUserName')

        self.password = Config().get_ini_value('Global_ini', 'WebPwd')
        # 数据库获取用户ID
        #self.user_id = from_db_get_user_ID(self.account)[0]['id']
        # 数据库获取用户余额
        #self.user_blance = from_db_TCredits_get_user_FBalance(self.user_id)[0]['Balance']

    @data(*datas)
    def test_Game_OfficialAddOrders(self, datas):
        self._testMethodDoc = datas['CaseName']
        logging.info('开始执行用例: {} ( {} )'.format(self._testMethodDoc,
                                                self._testMethodName))
        logging.info(
            '=======================调用【用户登录】接口===================================='
        )
        self.LoginSessionID = login_api(self.account, self.password)
        if not self.LoginSessionID:
            logging.error('登录失败,请检查登录接口是否异常!')

        logging.info(
            '=======================调用【官方游戏下注】接口===================================='
        )
        while True:
            # 获取游戏ID
            #self.game_id = get_official_game_id()[1]
            #self.game_name = get_official_game_id()[0]
            self.game_id = 612
            datas['NewVerifParmsData'].update({'GameId': self.game_id})
            #logging.info('成功获取游戏:{}:游戏ID:{}'.format(self.game_name,self.game_id))
            #print(datas)
            # 获取期数ID
            self.period_info = get_game_period_info(self.LoginSessionID,
                                                    {"GameID": self.game_id})
            if not self.period_info:
                logging.error('获取期数ID失败')
                #raise ('获取期数ID失败,请检查!')
            datas['NewVerifParmsData'].update({"PeriodId": self.period_info})
            # 获取官方游戏赔率/玩法项数据
            game_data = get_officia_gam_bet_data(self.LoginSessionID,
                                                 self.game_id)
            if game_data:
                break
        OrderList = '[{\"a\":%s,\"c\":\"%s\",\"i\":%s,\"k\":\"%s\",\"m\":%s,\"n\":%s,\"t\":%s,\"ts\":%s}]' % (
            game_data[0]['a'], game_data[0]['c'], game_data[0]['i'],
            game_data[0]['k'], game_data[0]['m'], game_data[0]['n'],
            game_data[0]['t'], get_time_stamp())
        datas['NewVerifParmsData'].update({"OrderList": OrderList})

        #print(datas['NewVerifParmsData'])
        self.actual_result = http_api_requests(
            '游戏相关.官方游戏下注',
            Headers={"LoginSessionID": self.LoginSessionID},
            NewVerifParmsData=datas['NewVerifParmsData'])
        self.expected_result = datas['ExpectResult']
        result = None
        try:
            check_result(self.expected_result, self.actual_result)
            result = 'pass'
        except InterfaceVerifyError:
            result = 'false'
        finally:
            write_result_data_to_excel(Config().case_data_file_path, 'Game',
                                       'ID', datas['ID'], result)

    def tearDown(self):
        pass
class Api_Game_GetGameOddsData_01(unittest.TestCase):

    run_rules_dic = Config().get_run_rules_config()
    run_rules_dic.update({'ScriptName': os.path.basename(__file__)})
    datas = get_case_from_excel(Config().case_data_file_path, ['Game'],
                                run_rules_dic, 'Game')

    def setUp(self):
        logging.info('启动脚本文件 :  {}'.format(os.path.basename(__file__)))
        self.account = Config().get_ini_value('Global_ini', 'WebUserName')

        self.password = Config().get_ini_value('Global_ini', 'WebPwd')

    @data(*datas)
    def test_get_game_odddata(self, datas):
        self.testcasename = datas['CaseName']
        logging.info('开始执行用例: {} ( {} )'.format(datas['CaseName'],
                                                self._testMethodName))
        logging.info(
            '=======================调用【用户登录】接口===================================='
        )
        LoginSessionID = login_api(self.account, self.password)
        if not LoginSessionID:
            logging.error('登录失败,请检查登录接口是否异常!')
        logging.info(
            '=======================调用【获取游戏最新开盘期数】接口===================================='
        )
        self.actual_result = http_api_requests(
            '游戏相关.获取游戏赔率数据',
            Headers={"LoginSessionID": LoginSessionID},
            NewVerifParmsData=datas['NewVerifParmsData'])
        self.expected_result = datas['ExpectResult']
        try:

            check_result(self.expected_result, self.actual_result)
            result = 'pass'
            DisablePlay = get_json_value(self.actual_result,
                                         '/Data/DisablePlay')
            print(DisablePlay)
            DisablePlay_item = get_json_value(self.actual_result,
                                              '/Data/DisablePlayItem')
            print('111')
            print(DisablePlay_item)
            list = []
            for i in DisablePlay:
                if isinstance(i, str):
                    list.append(int(i))
            logging.info('该游戏被禁用玩法项:{}'.format(list))
            odd_list = get_json_value(self.actual_result, '/Data/OddsList')
            print(odd_list)
            self.odd_data = get_json_value(self.actual_result, '/Data')
            # 单注下注金额基数
            Radix = self.odd_data['Radix']
            # 投注模式
            moneyModel = self.odd_data['moneyModel']
            logging.info('单注下注金额基数:{},投注模式:{}'.format(Radix, moneyModel))

        except InterfaceVerifyError:
            result = 'false'
        finally:
            write_result_data_to_excel(Config().case_data_file_path, 'Game',
                                       'ID', datas['ID'], result)

    def tearDown(self):
        pass
示例#18
0
class Api_Game_GetNewPeriod_Case_01(unittest.TestCase):
    run_rules_dic = Config().get_run_rules_config()
    run_rules_dic.update({'ScriptName': os.path.basename(__file__)})
    datas = get_case_from_excel(Config().case_data_file_path, ['Game'], run_rules_dic, 'Game')
    def setUp(self) :
        logging.info('启动脚本文件 :  {}'.format(os.path.basename(__file__)))
        self.account = Config().get_ini_value('Global_ini','WebUserName')

        self.password = Config().get_ini_value('Global_ini','WebPwd')
    @data(*datas)
    def test_get_gameperiod(self,datas):
        self.testcasename = datas['CaseName']
        logging.info('开始执行用例: {} ( {} )'.format(datas['CaseName'], self._testMethodName))
        logging.info('=======================调用【用户登录】接口====================================')
        LoginSessionID = login_api(self.account, self.password)
        if not LoginSessionID:
            logging.error('登录失败,请检查登录接口是否异常!')
        logging.info('=======================调用【获取游戏最新开盘期数】接口====================================')
        self.actual_result = http_api_requests('游戏相关.获取游戏最新开盘期数', Headers={"LoginSessionID": LoginSessionID},NewVerifParmsData=datas['NewVerifParmsData'])
        self.expected_result = datas['ExpectResult']
        try:
            #print(type(self.actual_result))
            check_result(self.expected_result, self.actual_result)
            result = 'pass'
            json_data = get_json_value(self.actual_result,'/Data')
            json_period_data = json.loads(json_data, encoding='utf-8')

            print(json_period_data)
            # 本期期数
            current_period = json_period_data['fnumberofperiod']
            print(current_period)
            # 本期开盘时间
            start_time = json_period_data['fstarttime']
            print(start_time)
            # 本期封盘时间
            #end_time = json_period_data['fclosetime']
            # 期数状态 (0未开盘,1开盘中,2已封盘,3已开奖,4、已结算,5、返还金额)
            period_status = json_period_data['fstatus']
            print(period_status)
            # 游戏是否停售 :false代表开售中,true代表停售中
            is_off_stop = json_period_data['fisstopseles']
            print(is_off_stop)
            # 期数ID
            fid = json_period_data['fid']
            print(fid)
            # print('本期期数:', current_period)
            # print('本期开盘时间:', start_time)
            # print('本期封盘时间:', end_time)
            # print('期数状态:', period_status)
            # print('游戏是否停售:', is_off_stop)
            # print('期数ID:', fid)
            # 六合彩特殊字段
            # 六合封盘时间
            liuhe_end_time = json_period_data['fspecialcodeclosetime']
            print(liuhe_end_time)


        except InterfaceVerifyError:
            result = 'false'
        finally:
            write_result_data_to_excel(Config().case_data_file_path, 'Game', 'ID', datas['ID'], result)

    def tearDown(self):
        pass
示例#19
0
class Api_Finance_GoPay(unittest.TestCase):
    r = RandomUtil()
    run_rules_dic = Config().get_run_rules_config()
    run_rules_dic.update({'ScriptName': os.path.basename(__file__)})
    datas = get_case_from_excel(Config().case_data_file_path, ['Finance'],
                                run_rules_dic, 'Finance')

    def setUp(self) -> None:
        logging.info('启动脚本文件 :  {}'.format(os.path.basename(__file__)))
        self.account = Config().get_ini_value('Global_ini', 'WebUserName')
        self.password = Config().get_ini_value('Global_ini', 'WebPwd')

    @data(*datas)
    def test_Finance_GoPay(self, datas):
        self._testMethodDoc = datas['CaseName']
        logging.info('开始执行用例: {} ( {} )'.format(self._testMethodDoc,
                                                self._testMethodName))
        logging.info(
            '=======================调用【用户登录】接口===================================='
        )
        self.LoginSessionID = login_api(self.account, self.password)
        if not self.LoginSessionID:
            logging.error('登录失败,请检查登录接口是否异常!')
        # 获取导航通道-线上
        payment_info = get_finance_paymentindex(
            LoginSessionID=self.LoginSessionID, paytype=1)
        logging.info('获取通道ID:{},获取通道名称:{}'.format(payment_info['ID'],
                                                  payment_info['PayType']))
        # 获取导航通道下可用商户字典信息
        payment_data = payment_PreferenceNewConfig(
            LoginSessionID=self.LoginSessionID,
            id=payment_info['ID'],
            isonline=payment_info['Type'],
            return_data=True)
        print('获取商户字典信息' + '\n', json.dumps(payment_data, indent=4))
        # 获取通道优惠设置
        preferenceNewConfig = get_payment_PreferenceNewConfig(
            LoginSessionID=self.LoginSessionID,
            Type=2,
            CashConfigId=payment_data['ID'])
        print('获取商户优惠配置信息' + '\n', json.dumps(preferenceNewConfig, indent=4))
        # 线上充值
        # 金额判断
        Amount = self.r.get_random_int(
            payment_data['MinAmount'], payment_data['MaxAmount']
        ) if not payment_data['FIsShowShortcut'] else int(
            random.choice(payment_data['FShortcutSet'].split(',')))
        logging.info(
            '=======================调用【线上充值】接口===================================='
        )
        datas['NewVerifParmsData'].update({
            "LoginSessionID": self.LoginSessionID,
            "paymentId": payment_data['ID'],
            "amount": Amount,
            "wayType": payment_data['WayType']
        })
        self.actual_result = http_api_requests(
            '充值提现.线上充值',
            Headers={"LoginSessionID": self.LoginSessionID},
            NewVerifParmsData=datas['NewVerifParmsData'])
        # 手续费判断
        IsCharge = payment_data['IsCharge']
        if IsCharge:
            Charge = Amount * payment_data['Charge']
        else:
            Charge = 0
        # 优惠判断
        preference_amount = 0
        if preferenceNewConfig['RechargePrivilege'] == 1:
            if preferenceNewConfig['IsFirst']:
                if Amount < preferenceNewConfig['PreferenceLine']:
                    preference_amount = 0
                else:
                    preference_amount = Amount * preferenceNewConfig[
                        'PreferencePercent'] / 100
                    if preference_amount >= preferenceNewConfig[
                            'PreferenceMax'] and preferenceNewConfig[
                                'PreferenceMax'] != 0.0:
                        preference_amount = preferenceNewConfig[
                            'PreferenceMax']
            else:
                preference_amount = 0
        elif preferenceNewConfig['RechargePrivilege'] == 2:
            if Amount >= preferenceNewConfig['PreferenceLine']:
                preference_amount = Amount * preferenceNewConfig[
                    'PreferencePercent'] / 100
                if preference_amount >= preferenceNewConfig[
                        'PreferenceMax'] and preferenceNewConfig[
                            'PreferenceMax'] != 0.0:
                    preference_amount = preferenceNewConfig['PreferenceMax']
        elif preferenceNewConfig['RechargePrivilege'] == 3:
            if preferenceNewConfig['IsFirst']:
                if Amount >= preferenceNewConfig['PreferenceLine']:
                    preference_amount = Amount * preferenceNewConfig[
                        'PreferencePercent'] / 100
                    if preference_amount >= preferenceNewConfig[
                            'PreferenceMax'] and preferenceNewConfig[
                                'PreferenceMax'] != 0.0:
                        preference_amount = preferenceNewConfig[
                            'PreferenceMax']
        elif preferenceNewConfig['RechargePrivilege'] == 4:
            if Amount >= preferenceNewConfig['PreferenceLine']:
                preference_amount = Amount * preferenceNewConfig[
                    'PreferencePercent'] / 100
                if preference_amount >= preferenceNewConfig[
                        'PreferenceMax'] and preferenceNewConfig[
                            'PreferenceMax'] != 0.0:
                    preference_amount = preferenceNewConfig['PreferenceMax']
        else:
            raise ('优惠数据返回有误,请检查接口数据')

        # 充值记录检查
        end_time, start_time = get_nowday_and_yestday()
        self.actual_result = http_api_requests(
            '充值提现.充值记录',
            Headers={"LoginSessionID": self.LoginSessionID},
            NewVerifParmsData={
                "EndTime": end_time,
                "StartTime": start_time,
                "OrderNum": payment_data['OrderNumber']
            })
        self.actual_result = get_json_value(self.actual_result,
                                            '/Data/ChargeRecordList')
        datas['ExpectResult'].update({
            "SerialNumber":
            str(payment_data['OrderNumber']),
            "ActualAmount":
            float(Amount + preference_amount - Charge)
        })
        self.expected_result = datas['ExpectResult']
        logging.error(
            '充值成功:充值原始金额:{},存款优惠:{},入款手续费:{},实际充值金额:{},充值订单号:{}'.format(
                Amount, preference_amount, Charge,
                Amount + preference_amount - Charge,
                payment_data['OrderNumber']))

        # 写入结果
        result = None
        try:
            check_result(self.expected_result, self.actual_result[0])
            result = 'pass'
        except InterfaceVerifyError:
            result = 'false'
        finally:
            write_result_data_to_excel(Config().case_data_file_path, 'Finance',
                                       'ID', datas['ID'], result)

    def tearDown(self) -> None:
        pass
示例#20
0
class Api_Game_OfficialAddOrders(unittest.TestCase):
    run_rules_dic = Config().get_run_rules_config()
    run_rules_dic.update({'ScriptName': os.path.basename(__file__)})
    datas = get_case_from_excel(Config().case_data_file_path, ['Game'],
                                run_rules_dic, 'Game')

    def setUp(self):
        logging.info('启动脚本文件 :  {}'.format(os.path.basename(__file__)))
        self.account = Config().get_ini_value('Global_ini', 'WebUserName')

        self.password = Config().get_ini_value('Global_ini', 'WebPwd')
        # 数据库获取用户ID
        # self.user_id = from_db_get_user_ID(self.account)[0]['id']
        # 数据库获取用户余额
        # self.user_blance = from_db_TCredits_get_user_FBalance(self.user_id)[0]['Balance']

    @data(*datas)
    def test_Game_OfficialAddOrders(self, datas):
        self._testMethodDoc = datas['CaseName']
        logging.info('开始执行用例: {} ( {} )'.format(self._testMethodDoc,
                                                self._testMethodName))
        logging.info(
            '=======================调用【用户登录】接口===================================='
        )
        self.LoginSessionID = login_api(self.account, self.password)
        if not self.LoginSessionID:
            logging.error('登录失败,请检查登录接口是否异常!')

        logging.info(
            '=======================调用【官方游戏下注】接口===================================='
        )
        data = None
        # 获取游戏ID
        # self.game_id = get_official_game_id()[1]
        # self.game_name = get_official_game_id()[0]
        self.game_id = 578
        datas['NewVerifParmsData'].update({'GameId': self.game_id})
        # logging.info('成功获取游戏:{}:游戏ID:{}'.format(self.game_name,self.game_id))
        # print(datas)
        # 获取期数ID
        while 1:
            self.period_info = get_game_period_info(self.LoginSessionID,
                                                    {"GameID": self.game_id},
                                                    istemp=False)
            if not self.period_info:
                logging.error('获取期数ID失败')
                continue
            # 期数判断
            period_num = Config().game_per_info
            if not period_num:
                pass
            else:
                if self.period_info == period_num:
                    logging.info('期数在同一期,跳过此次下注!')
                    continue
            datas['NewVerifParmsData'].update({"periodID": self.period_info})
            # 获取官方游戏赔率/玩法项数据
            data = get_credit_gam_bet_data(self.LoginSessionID,
                                           self.game_id,
                                           return_all_data=True)
            if not data:
                logging.info('获取游戏玩法项数据失败,跳过此次下注!')
                continue
            else:
                logging.info('游戏数据拿到,开始下注!')
                break
        orderlist = []
        orderlist1 = []
        gamelist = []
        for game_data in data:
            orderdata = {
                "amount": 301,
                "goal": str(game_data[0]),
                "id": game_data[0],
                "name": game_data[1],
                "odds": 43.61,
                "odds1": -1.0,
                "parentName": "特码",
                "sId": game_data[2],
                "timestamp": get_time_stamp()
            }
            gamelist.append(orderdata)
        for i in range(0, 48):
            orderlist.append(gamelist[i])

        datas['NewVerifParmsData'].update({"orderlist": orderlist})
        self.actual_result = http_api_requests(
            '游戏相关.六合彩下注',
            Headers={"LoginSessionID": self.LoginSessionID},
            NewVerifParmsData=datas['NewVerifParmsData'])
        self.expected_result = datas['ExpectResult']
        for i in range(48, 49):
            orderlist1.append(gamelist[i])
        orderlist1[0].update({"amount": 300})
        orderlist1[0].update({"odds": 48.755})
        datas['NewVerifParmsData'].update({"orderlist": orderlist1})
        datas['NewVerifParmsData'].update({"selectBack": 9.0})

        time.sleep(3)
        self.actual_result = http_api_requests(
            '游戏相关.六合彩下注',
            Headers={"LoginSessionID": self.LoginSessionID},
            NewVerifParmsData=datas['NewVerifParmsData'])
        self.expected_result = datas['ExpectResult']
        result = None
        try:
            check_result(self.expected_result, self.actual_result)
            result = 'pass'
        except InterfaceVerifyError:
            result = 'false'
        finally:
            write_result_data_to_excel(Config().case_data_file_path, 'Game',
                                       'ID', datas['ID'], result)
            if self.period_info:
                Config().set_game_period_info_options_value(
                    'game_period_info', str(self.period_info))

    def tearDown(self):
        pass
class Api_Game_GetCPYXGameList(unittest.TestCase):
    run_rules_dic = Config().get_run_rules_config()
    run_rules_dic.update({'ScriptName': os.path.basename(__file__)})
    datas = get_case_from_excel(Config().case_data_file_path, ['Game'],
                                run_rules_dic, 'Game')

    def setUp(self):
        logging.info('启动脚本文件 :  {}'.format(os.path.basename(__file__)))
        self.account = Config().get_ini_value('Global_ini', 'WebUserName')

        self.password = Config().get_ini_value('Global_ini', 'WebPwd')

    @data(*datas)
    def test_unit_001(self, datas):
        self.testcasename = datas['CaseName']
        logging.info('开始执行用例: {} ( {} )'.format(datas['CaseName'],
                                                self._testMethodName))
        logging.info(
            '=======================调用【用户登录】接口===================================='
        )
        LoginSessionID = login_api(self.account, self.password)
        if not LoginSessionID:
            logging.error('登录失败,请检查登录接口是否异常!')
        logging.info(
            '=======================调用【获取游戏玩法数据】接口===================================='
        )
        self.actual_result = http_api_requests(
            '游戏相关.获取游戏玩法数据',
            Headers={"LoginSessionID": LoginSessionID},
            NewVerifParmsData=datas['NewVerifParmsData'])
        self.expected_result = datas['ExpectResult']
        self.play_data = get_json_value(self.actual_result, '/Data')
        print(self.play_data)
        play_list = []
        guolv = [
            4269, 4268, 4267, 4266, 4265, 4264, 4263, 4262, 4261, 4260, 4259,
            4258, 4257
        ]
        for data in self.play_data:
            #print(data)
            play_name = data['Name']
            play_id = data['Id']
            for data_dict in data['Child']:
                #print(data_dict)
                for data_play_dict in data_dict['C']:
                    if data_play_dict['Id'] not in guolv:  # 过滤禁用玩法
                        #print(data_play_dict)
                        for dats2 in data_play_dict['Child']:
                            dic = {}
                            #print(dats2)
                            #print(dats2['Name'], dats2['FId'])
                            dic.update({
                                "{} {}".format(play_name, play_id): {
                                    dats2['Name']: dats2['FId']
                                }
                            })
                            play_list.append(dic)
                            print(dats2)
        #print(play_list)


# [4269, 4268, 4267, 4266, 4265, 4264, 4263, 4262, 4261, 4260, 4259, 4258, 4257]
        try:
            check_result(self.expected_result, self.actual_result)
            result = 'pass'
        except InterfaceVerifyError:
            result = 'false'
        finally:
            write_result_data_to_excel(Config().case_data_file_path, 'Game',
                                       'ID', datas['ID'], result)

    def tearDown(self):
        pass