Beispiel #1
0
    def insert_one_order(self):
        case_goal = {
            '期望状态': '全成',
            'errorID': 0,
            'errorMSG': '',
            '是否生成报单': '是',
            '是否是撤废': '否',
            # '是否是新股申购': '否',
        }
        title = '停止时下单:'

        logger.warning(title)
        stkparm = QueryStkPriceQty('688000', '1', '4', '2', '0', 'B',
                                   case_goal['期望状态'], Api)
        # 如果下单参数获取失败,则用例失败
        if stkparm['返回结果'] is False:
            rs = {
                '报单测试结果': stkparm['返回结果'],
                '测试错误原因': '获取下单参数失败,' + stkparm['错误原因'],
            }
            print(stkparm['错误原因'])
            #self.assertEqual(rs['报单测试结果'], True)
        else:
            wt_reqs = {
                'business_type':
                Api.const.XTP_BUSINESS_TYPE['XTP_BUSINESS_TYPE_CASH'],
                'order_client_id':
                2,
                'market':
                Api.const.XTP_MARKET_TYPE['XTP_MKT_SH_A'],
                'ticker':
                stkparm['证券代码'],
                'side':
                Api.const.XTP_SIDE_TYPE['XTP_SIDE_BUY'],
                'price_type':
                Api.const.XTP_PRICE_TYPE['XTP_PRICE_LIMIT'],
                'price':
                stkparm['随机中间价'],
                'quantity':
                300,
                'position_effect':
                Api.const.XTP_POSITION_EFFECT_TYPE['XTP_POSITION_EFFECT_INIT']
            }

            rs = serviceTest(Api, case_goal, wt_reqs)
        sleep(0.1)
        return rs['报单测试结果']
Beispiel #2
0
    def test_OMS_RESTART_GPMM_SZ(self):

        title = '异常恢复:重启OMS-股票买卖-深圳'
        logger.warning(title)
        # 定义委托参数信息------------------------------------------
        # 参数:证券代码、市场、证券类型、证券状态、交易状态、买卖方向(B买S卖)、期望状态、Api
        stkparm = QueryStkPriceQty('999999', '2', '0', '2', '0', 'B', '全成',
                                   Api)
        # 如果下单参数获取失败,则用例失败
        if stkparm['返回结果'] == False:
            rs = {
                '用例测试结果': stkparm['返回结果'],
                '测试错误原因': '获取下单参数失败,' + stkparm['错误原因'],
            }
            self.assertEqual(rs['用例测试结果'], True)

        else:
            for user in ALL_USER:
                # 当前用户登录
                Api.trade.Login(user)

                wt_reqs = {
                    'business_type':
                    Api.const.XTP_BUSINESS_TYPE['XTP_BUSINESS_TYPE_CASH'],
                    'order_client_id':
                    2,
                    'market':
                    Api.const.XTP_MARKET_TYPE['XTP_MKT_SZ_A'],
                    'ticker':
                    stkparm['证券代码'],
                    'side':
                    Api.const.XTP_SIDE_TYPE['XTP_SIDE_BUY'],
                    'price_type':
                    Api.const.XTP_PRICE_TYPE['XTP_PRICE_LIMIT'],
                    'price':
                    stkparm['随机中间价'],
                    'quantity':
                    1000
                }
                # 批量下单
                insert_order(Api, wt_reqs, user)

                # 查询当前用户的资金和持仓
                query_capital_stock(Api, order_info, user, wt_reqs['ticker'])
                # 当前用户登出
                #Api.trade.Logout()
            '''
Beispiel #3
0
    def test_OMS_RESTART_DBPMR_SZ(self):
        title = '异常恢复:重启OMS-担保品买入-深圳'
        logger.warning(title)
        # 定义委托参数信息------------------------------------------
        # 参数:证券代码、市场、证券类型、证券状态、交易状态、买卖方向(B买S卖)、期望状态、Api
        stkparm = QueryStkPriceQty('000002', '2', '0', '2', '0', 'B', '全成',
                                   OMS_DBPMR_SZ)
        # 如果下单参数获取失败,则用例失败
        if stkparm['返回结果'] == False:
            rs = {
                '用例测试结果': stkparm['返回结果'],
                '测试错误原因': '获取下单参数失败,' + stkparm['错误原因'],
            }
            self.assertEqual(rs['用例测试结果'], True)

        else:
            wt_reqs = {
                'business_type':
                OMS_DBPMR_SZ.const.
                XTP_BUSINESS_TYPE['XTP_BUSINESS_TYPE_MARGIN'],
                'order_client_id':
                1,
                'market':
                OMS_DBPMR_SZ.const.XTP_MARKET_TYPE['XTP_MKT_SZ_A'],
                'ticker':
                stkparm['证券代码'],
                'side':
                OMS_DBPMR_SZ.const.XTP_SIDE_TYPE['XTP_SIDE_BUY'],
                'price_type':
                OMS_DBPMR_SZ.const.XTP_PRICE_TYPE['XTP_PRICE_LIMIT'],
                'price':
                stkparm['随机中间价'],
                'quantity':
                200
            }
            # 批量下单,确认订单状态正确否则返回错误日志
            insert_order(OMS_DBPMR_SZ, wt_reqs)
    def test_XOGW_RESTART_GPMM_SH(self):

        title = '异常恢复:重启报盘-股票买卖-上海'
        logger.warning(title)
        # 定义委托参数信息------------------------------------------
        # 参数:证券代码、市场、证券类型、证券状态、交易状态、买卖方向(B买S卖)、期望状态、Api
        stkparm = QueryStkPriceQty('600000', '1', '0', '2', '0', 'B', '全成',
                                   tradeApi)
        # 如果下单参数获取失败,则用例失败
        if stkparm['返回结果'] == False:
            rs = {
                '用例测试结果': stkparm['返回结果'],
                '测试错误原因': '获取下单参数失败,' + stkparm['错误原因'],
            }
            self.assertEqual(rs['用例测试结果'], True)

        else:
            for user in ALL_USER:
                # 当前用户登录
                tradeApi.trade.Login(user)

                wt_reqs = {
                    'business_type':
                    tradeApi.const.XTP_BUSINESS_TYPE['XTP_BUSINESS_TYPE_CASH'],
                    'order_client_id':
                    2,
                    'market':
                    tradeApi.const.XTP_MARKET_TYPE['XTP_MKT_SH_A'],
                    'ticker':
                    stkparm['证券代码'],
                    'side':
                    tradeApi.const.XTP_SIDE_TYPE['XTP_SIDE_BUY'],
                    'price_type':
                    tradeApi.const.XTP_PRICE_TYPE['XTP_PRICE_LIMIT'],
                    'price':
                    stkparm['随机中间价'],
                    'quantity':
                    1000
                }
                # 批量下单
                insert_order(tradeApi, wt_reqs, user)

                # 查询当前用户的资金和持仓
                query_capital_stock(tradeApi, order_info, user,
                                    wt_reqs['ticker'])
                # 当前用户登出
                tradeApi.trade.Logout()

            # 重启环境
            xogwsh_restart()
            time.sleep(3)

            for user in ALL_USER:
                # 重启后用户登录,接收OMS推送的订单信息
                service_restart(tradeApi, user)
                # 查询当前用户的资金和持仓
                query_capital_stock(tradeApi, restart_info, user,
                                    wt_reqs['ticker'])

            # 重启环境前后,各用户订单信息校验
            result = check_result(order_info, restart_info)
            self.assertEqual(result['结果'], True)
    def test_query_info(self):
        logger.warning("SH BP restart: ")
        print("1-查询资金 持仓:")
        wt_reqs_before = {}
        sleep(1)
        #查询用户日间委托订单不包括oms拒单
        #query_orders(Api,order_info, wt_reqs_before)
        # 查询当前用户的资金和持仓
        query_capital(Api, order_info, wt_reqs_before)
        print("2-SHBP重启:")
        sh_restart()
        c = Api.trade.Logout()
        print c
        sleep(2)
        a = Api.trade.Login()
        print a
        sleep(2)

        print("3-查询资金 持仓:")
        wt_reqs_after = {}
        #查询用户日间委托订单不包括oms拒单
        #query_orders(Api,restart_info, wt_reqs_after)
        # 重启后查询当前用户的资金和持仓
        query_capital(Api, restart_info, wt_reqs_after)

        # 重启环境前后,各用户订单信息校验
        result = check_result(order_info, restart_info)
        logger.warning('用例测试结果为' + str(result['用例测试结果']))
        self.assertEqual(result['用例测试结果'], True)

        print("4-SHBP停止时下单:")
        close_ogw()
        sleep(1)

        case_goal1 = {
            '期望状态': '废单',
            '是否生成报单': '是',
            '是否是撤废': '否',
            'xtp_ID': 0,
            'cancel_xtpID': 0,
            'errorID': '11000330',
            'errorMSG': 'Forward message failed!',
        }
        case_goal2 = {
            '期望状态': '成功',
            '是否生成报单': '是',
            '是否是撤废': '否',
            'xtp_ID': 0,
            'cancel_xtpID': 0
        }
        stkcodes = '110031'
        market = Api.const.XTP_MARKET_TYPE['XTP_MKT_SH_A']
        price_type = Api.const.XTP_PRICE_TYPE['XTP_PRICE_BEST5_OR_CANCEL']
        ## kzzmm只能限价:
        # 参数:证券代码、市场、证券类型、证券状态、交易状态、买卖方向(B买S卖)、期望状态、Api
        stkparm = QueryStkPriceQty('110031', '1', '8', '2', '8', 'B',
                                   case_goal1['期望状态'], Api)
        ret_insert = insert_Orders(case_goal1, case_goal2, stkcodes, market,
                                   price_type)

        print("5-SHBP恢复正常:")
        sh_restart()
        sleep(2)

        if ret_insert == False:
            logger.warning('用例测试结果为: ret_insert: ' + str(ret_insert))
            self.assertEqual(False, True)
        else:
            logger.warning('用例测试结果为' + str(result['用例测试结果']))
            self.assertEqual(result['用例测试结果'], True)