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['报单测试结果']
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() '''
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)