CN111309594B - 一种系统测试方法、装置、设备及存储介质 - Google Patents
一种系统测试方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111309594B CN111309594B CN202010053994.9A CN202010053994A CN111309594B CN 111309594 B CN111309594 B CN 111309594B CN 202010053994 A CN202010053994 A CN 202010053994A CN 111309594 B CN111309594 B CN 111309594B
- Authority
- CN
- China
- Prior art keywords
- transaction
- request
- order
- virtual
- trade
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 130
- 238000003860 storage Methods 0.000 title claims abstract description 18
- 238000000034 method Methods 0.000 claims abstract description 93
- 230000008569 process Effects 0.000 claims abstract description 70
- 238000012544 monitoring process Methods 0.000 claims abstract description 30
- 238000012545 processing Methods 0.000 claims description 98
- 230000008859 change Effects 0.000 claims description 18
- 238000004088 simulation Methods 0.000 claims description 18
- 230000007774 longterm Effects 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 11
- 238000010998 test method Methods 0.000 claims description 9
- 238000012508 change request Methods 0.000 claims description 8
- 238000005096 rolling process Methods 0.000 claims description 8
- 238000012795 verification Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 15
- 238000007726 management method Methods 0.000 description 8
- 239000000243 solution Substances 0.000 description 8
- 238000004891 communication Methods 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000012550 audit Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000003862 health status Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000012954 risk control Methods 0.000 description 1
- 238000013112 stability test Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例公开了一种系统测试方法、装置、设备及存储介质,其中该方法包括:获取多个虚拟账户,每个虚拟账户分配有虚拟资产和账户类型;在预设的测试时段内,针对这多个虚拟账户随机设置交易条件,构造多个交易委托请求;利用待测试的证券交易系统基于多个交易委托请求模拟证券交易过程;最终,根据证券交易过程中的监测日志数据、交易流水核对数据和清算对账数据,验证证券交易系统在测试时段内是否稳定。如此,通过随机设置交易条件的方式构造大量的交易委托请求,保证为测试证券交易系统的稳定性提供充足丰富的测试数据,从而实现对于证券交易系统稳定性的测试。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种系统测试方法、装置、设备及存储介质。
背景技术
近年来,随着证券行业的迅速发展,证券交易业务逐渐呈现多样化、复杂化的发展趋势,对于证券交易系统的性能也相应地提出了越来越高的要求。
在实际应用中,大多数证券交易机构均采用滚动交收模式,在这种模式下,某日成交的所有交易会被安排在距该成交日特定营业天数的营业日进行交收,例如,在T+3滚动交收中,要求在T日成交的证券交易的交收在该成交日之后的第三个营业日(T+3)完成。在这种模式下,证券交易系统需要长时间持续地运行,而证券交易系统能否保证长时间持续稳定地运行对于证券交易业务的处理来说至关重要。
相关技术中针对证券交易系统的测试方法,通常基于实际生产环境中的交易数据或者人工构建的测试实例,实现对于证券交易系统的性能测试。受限于所能获取的测试数据量较少,此类方法通常仅关注证券交易系统短期的处理性能是否正常,或者证券交易系统是否能够准确地处理相关交易数据,而难以验证证券交易系统长时间运行的稳定性。
综上,如何对证券交易系统的长时间运行的稳定性进行测试,已成为目前亟待解决的问题。
发明内容
本申请实施例提供了一种系统测试方法、装置、设备及存储介质,能够对证券交易系统长时间运行的稳定性进行测试。
有鉴于此,本申请第一方面提供了系统测试方法,所述方法包括:
获取多个虚拟账户,每个所述虚拟账户分配有虚拟资产和账户类型;
在预设的测试时段内,针对所述多个虚拟账户随机设置交易条件,构造多个交易委托请求;利用待测试的证券交易系统基于多个所述交易委托请求模拟证券交易过程;
根据所述证券交易过程中的监测日志数据、交易流水核对数据和清算对账数据,验证所述证券交易系统在所述测试时段内是否稳定。
本申请第二方面提供了一种系统测试装置,所述装置包括:
账户获取模块,用于获取多个虚拟账户,每个所述虚拟账户分配有虚拟资产和账户类型;
证券交易模拟模块,用于在预设的测试时段内,针对所述多个虚拟账户随机设置交易条件,构造多个交易委托请求;利用待测试的证券交易系统基于多个所述交易委托请求模拟证券交易过程;
验证模块,用于根据所述证券交易过程中的监测日志数据、交易流水核对数据和清算对账数据,验证所述证券交易系统在所述测试时段内是否稳定。
本申请第三方面提供了一种电子设备,所述设备包括处理器以及存储器:
所述存储器用于存储计算机程序;
所述处理器用于根据所述计算机程序,执行如上述第一方面所述的系统测试方法的步骤。
本申请第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行上述第一方面所述的系统测试方法的步骤。
本申请第五方面提供了一种包括指令的计算机程序产品,当其在计算机上运行时,使得所述计算机执行上述第一方面所述的系统测试方法的步骤。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请实施例提供了一种系统测试方法,该方法可以随机构造出大量的交易委托请求,为测试证券交易系统长时间运行的稳定性提供丰富多样的测试数据。具体的,在本申请实施例提供的系统测试方法中,先获取大量虚拟账户,每个虚拟账户均分配有虚拟资产和账户类型;然后,在预设的测试时段内,针对所获取的虚拟账户随机设置交易条件,构造大量的交易委托请求,利用待测试的证券交易系统基于所构造的交易委托请求模拟证券交易过程;最终,根据该证券交易过程中的监测日志数据、交易流水核对数据和清算对账数据,验证该证券交易系统在测试时段内是否稳定。如此,通过随机设置交易条件的方式构造大量的交易委托请求,保证为测试证券交易系统的稳定性提供充足丰富的测试数据,利用待测试的证券交易系统基于这些交易委托请求仿真模拟实际的证券交易过程,并通过该证券交易过程中的监测日志数据、交易流水核对数据和清算对账数据,分别从机器运行性能、短期数据处理准确度以及长期处理准确度等多个方面,衡量证券交易系统长时间运行的稳定性,保证测试结果准确可靠。
附图说明
图1为本申请实施例提供的系统测试方法的应用场景示意图;
图2为本申请实施例提供的系统测试方法的流程示意图;
图3为本申请实施例提供的构造买入请求时依据的思维导图;
图4为本申请实施例提供的由证券交易系统管理的订单状态机模型的处理流程示意图;
图5为本申请实施例提供的乱序后的数据传输过程示意图;
图6为本申请实施例提供的系统测试过程的示意图;
图7为本申请实施例提供的一种系统测试装置的结构示意图;
图8为本申请实施例提供的另一种系统测试装置的结构示意图;
图9为本申请实施例提供的一种服务器的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
相关技术中用于测试证券交易系统的方法,普遍仅能测试证券交易系统短期的运行性能,或者证券交易系统短期内对于数据处理的准确度,目前尚且没有能够有效地测试证券交易系统长时间运行的稳定性的方法。
针对上述技术问题,本申请实施例提供了一种系统测试方法,该方法可以基于随机构造的大量交易委托请求,长时间模拟证券交易系统的证券交易过程,进而根据该证券交易过程中的监测日志数据、交易流水核对数据和清算对账数据,验证该证券交易系统长时间运行的稳定性。
相比相关技术中用于测试证券交易系统的方法,本申请实施例提供的方法可以通过随机设置交易条件的方式,构造出大量的交易委托请求,为利用证券交易系统长时间模拟证券交易过程提供丰富多样的处理数据;进而利用待测试的证券交易系统基于如此多样化的处理数据模拟证券交易过程,为测试证券交易系统创造更复杂的处理环境;最终根据在此证券交易过程中产生的监测日志数据、交易流水核对数据和清算对账数据,分别从机器运行性能、短期数据处理准确度以及长期处理准确度等多个方面,衡量该证券交易系统长时间运行的稳定性,以确保测试结果准确可靠。
需要说明的是,本申请实施例提供的系统测试方法通常应用于支持证券交易系统运行的服务器,该服务器具体可以为应用服务器,也可以为Web服务器,实际部署时,该服务器可以为独立服务器,也可以为集群服务器。
为了便于理解本申请实施例提供的技术方案,下面对本申请实施例提供的系统测试方法适用的应用场景进行示例性介绍。
参见图1,图1为本申请实施例提供的系统测试方法的应用场景示意图。如图1所示,该应用场景中包括服务器100,该服务器100上运行有待测试的证券交易系统102,该服务器100用于执行本申请实施例提供的系统测试方法,测试其上运行的证券交易系统长时间运行的稳定性。
具体的,服务器100可以先构建大量的虚拟账户101,并为所构建的各个虚拟账户101随机分配虚拟资产和账户类型,以模拟实际应用中存在的大量用户账户。
然后,在预设的测试时段内,从所构建的各个虚拟账户101中随机选出若干个虚拟账户,并针对所选出的虚拟账户随机设置交易条件,以模拟构造由这些虚拟账户申请的交易委托请求,为了确保可以基于丰富充足的数据测试证券交易系统的稳定性,服务器100通常会构造大量的交易委托请求。将所构造的交易委托请求传输至证券交易系统102,以便该证券交易系统102通过网关110将交易委托请求进一步传输至交易所模拟器120。交易所模拟器120模拟实际应用中的证券交易机构,基于证券交易系统102传来的交易委托请求进行相应地交易,并在某个交易委托请求交易成功后,通过网关110向证券交易系统102返回对应的交易结果数据,证券交易系统102接收到交易结果数据后,相应地根据该交易结果数据更新申请该交易委托请求的虚拟账户的虚拟资产和虚拟持仓。如此,在测试时段内的交易日,重复执行上述证券交易过程。
需要说明的是,若测试时段内包括多个交易日,则服务器100还需要调用清算系统基于证券交易系统102当日的交易数据进行对账和交收滚动,确定清算对账数据,进而将清算对账数据返回至证券交易系统102。证券交易系统102接收到清算对账数据后,根据该清算对账数据对各虚拟账户的虚拟资产和虚拟持仓进行重置,并在测试时段内的下一交易日基于重置后的虚拟资产和虚拟持仓,继续模拟证券交易过程。
待测试时段结束后,获取在测试时段内模拟的证券交易过程中的监测日志数据、交易流水数据和清算对账数据,分别从机器运行性能、短期数据处理准确度以及长期处理准确度等多个方面,验证证券交易系统在测试时段内是否稳定运行。
应理解,图1所示的应用场景仅为示例,在实际应用中,本申请实施例提供的系统测试方法不仅可以适用于图1所示的应用场景,还可以适用于其他应用场景,在此不对本申请实施例提供的系统测试方法适用的应用场景做任何限定。
需要说明的是,本申请实施例提供的系统测试方法具体还可以应用到区块链中。区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监测等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,例如对于随机构建的虚拟账户进行身份管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性(例如对交易委托请求的有效性进行验证),并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监测模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监测网络情况、监测节点设备健康状态等。
平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。应理解,当本申请实施例提供的系统测试方法应用于区块链中时,可以利用区块链存储与交易委托请求相关的信息以及与虚拟账户相关的信息,例如可以存储虚拟账户上的虚拟资金、虚拟持仓以及相应的流水信息等,又例如可以存储随机构建的交易委托请求、交易所模拟器的回包信息、交易委托请求对应的订单、订单的处理状态信息和委托流水信息等等。
下面通过实施例对本申请提供的系统测试方法进行介绍。
参见图2,图2为本申请实施例提供的系统测试方法的流程示意图。如图2所示,该系统测试方法包括以下步骤:
步骤201:获取多个虚拟账户,每个所述虚拟账户分配有虚拟资产和账户类型。
当需要对运行在服务器上的证券交易系统进行稳定性测试时,可以先获取大量的虚拟账户,这些虚拟账户是模拟实际生产交易环境中存在的用户账户构建的,并且每个虚拟账户都分配有对应的虚拟资产和账户类型,利用所获取的虚拟账户组成账户池。
在实际应用中,支持待测试的证券交易系统运行的服务器可以从其他设备处获取上述虚拟账户,即可以利用其他设备构建大量的虚拟账户,并为所构建的虚拟账户随机分配虚拟资产和账户类型,当服务器需要测试证券交易系统的稳定性时,服务器可以从此类构建虚拟账户的设备处获取到大量的虚拟账户。当然,服务器也可以在需要测试证券交易系统的稳定性时,独立地构建大量的虚拟账户,本申请在此不对虚拟账户的获取方式做任何限定。
需要说明的是,为了避免影响实际生产交易环境中用户账户数据的安全性,本申请中的虚拟账户通常都是随机构建的账户,此类虚拟账户与实际生产交易环境中的用户账户不具任何关联关系。相应地,各个虚拟账户各自对应的虚拟资产和账户类型也都是随机分配的,与实际生产交易环境中用户账户的资产和账户类型不具任何关联关系,此处所涉及的账户类型具体可以包括现金账户、保证金账户等等,本申请在此不对为每个虚拟账户分配的虚拟资产和账户类型做任何限定。
步骤202:在预设的测试时段内,针对所述多个虚拟账户随机设置交易条件,构造多个交易委托请求;利用待测试的证券交易系统基于多个所述交易委托请求模拟证券交易过程。
服务器获取到随机构建的大量虚拟账户后,即可在预设的测试时段内,针对所获取的虚拟账户随机设置交易条件,构造大量的交易委托请求。进而,服务器利用自身支持运行的证券交易系统(即待测试的证券交易系统),基于所构造的大量交易委托请求仿真模拟证券交易过程,即利用交易所模拟器针对所构造的交易委托请求模拟证券交易,仿造实际的交易处理过程基于交易委托请求相应地进行交易,并基于交易结果对交易委托请求对应的订单的处理状态、申请交易委托请求的虚拟账户的虚拟资产和虚拟持仓等参数进行更新。
需要说明的是,由于证券交易系统的稳定性需要经过其长时间的运行才能够测试出来,因此上述测试时段通常包括多个交易日,例如可以包括三至五个交易日,本申请在此也不对测试时段的时间长度做具体限定。
需要说明的是,在测试时段内,服务器需要持续不断地随机构造交易委托请求,以使证券交易系统可以持续地处理这些交易委托请求,保持持续运行。并且,所构造的交易委托请求可以包括多种类型不同的委托请求,例如可以包括买入请求、卖出请求、改单请求和撤单请求等等,本申请在此不对所构造的交易委托请求的类型做任何限定。
在一种可能的实现方式中,服务器可以通过以下方式构造交易委托请求:从其获取的虚拟账户中随机选出n(n为大于1的整数)个虚拟账户,然后针对所选出的n个虚拟账户随机设置以下至少一个交易条件:委托类型、委托数量、委托价格、订单类型、委托方向、股票类型和市场类型,构造多个交易委托请求。
需要说明的是,构造不同类型的交易委托请求时所需设置的交易条件也会有所不同。例如,构造买入请求时所需设置的交易条件包括委托类型、委托数量、委托价格、订单类型、委托方向、股票类型和市场类型,相应地,构造买入请求时可以针对上述交易条件均进行随机设置;又例如,构造卖出请求时所需设置的交易条件通常包括订单类型、委托价格和委托数量,相应地,构造卖出请求时可以针对这三种交易条件进行随机设置;再例如,构造改单请求时所需设置的交易条件通常包括委托价格和委托数量,相应地,构造改单请求时可以针对这两种交易条件进行随机设置。本申请在此不对设置交易委托请求时随机设置的交易条件做任何限定。
为了便于理解本申请实施例中构造交易委托请求的实现方式,下面以构造买入请求为例,即以随机设置委托类型、委托数量、委托价格、订单类型、委托方向、股票类型和市场类型这些交易条件为例,结合图3对构造交易委托请求的实现方式进行介绍。
图3为构造买入请求时所依据的思维导图。如图3所示,服务器构造买入请求时,可以对委托类型310中包括的多种类型、委托数量320中包括的多种数量、委托价格330中包括的多种价格、订单类型340中包括的多种类型、委托方向350中包括的多种方向、股票类型360中包括的多种类型和市场类型370中包括的多种市场类型,进行随机组合处理,以构造得到一条买入请求。
具体的,服务器可以从委托类型310包括的下单311、改单312和撤单313中随机选择一种委托类型,可以从委托数量320包括的最小委托数量321的多种数量级别中随机选择一种委托数量,可以从委托价格330包括的多种买入档位331和多种卖出档位332随机选择一种委托档位,并且从多种最小价格步长333中选择一种委托价格步长,可以从订单类型340包括的增强限价单341和竞价单342中选择一种订单类型,可以从委托方向350包括的买入351和卖出352中选择一种委托方向,可以从股票类型360包括的普通股票361、交易所开放式指数基金(Exchange Traded Fund,ETF)362、牛熊证363、衍生权证364中选择一种股票类型,可以从市场类型370包括的主板371和创业板372中选择一种市场类型。进而,将所选择的委托类型、委托数量、委托价格、订单类型、委托方向、股票类型和市场类型组合起来,构造出一条买入请求。
需要说明的是,为了确保在测试过程中可以同时存在成交和未成交的数据,构造交易委托请求时可以在买十和卖十之间随机调整委托价格,以保证一定的成交概率。另外,在实际应用中,股票类型和市场类型选定后,还会进一步从由符合所选定的股票类型和市场类型的股票组成的股票池中,随机选择一支股票进行下单委托。
应理解,在实际应用中,构造其他类型的交易委托请求的实现方式与上述构造买入请求的实现方式相类似,仅是所需随机设置的交易条件不同而已。当然,在实际应用中,服务器也可以通过其他方式构造交易委托请求,本申请在此不对服务器构造交易委托请求的实现方式做任何限定。
在一种基础的证券交易过程中,交易委托请求可以包括下单委托请求,此时服务器可以通过以下方式模拟证券交易过程:在测试时段内的交易日,服务器可以先针对虚拟账户随机设置下单条件构造得到下单委托请求;然后,通过网关将下单委托请求传输至交易所模拟器,接收该交易所模拟器通过该网关返回的对应于该下单委托请求的交易结果数据;进而,根据该交易结果数据,更新该下单委托请求对应的订单的处理状态,和/或更加该下单委托请求对应的虚拟账户的虚拟资产。
上述下单委托请求具体可以包括买入请求和卖出请求,此时,服务器可以先基于虚拟账户的虚拟资产随机设置买入条件,构造得到买入请求;然后,通过与待测试的证券交易系统具有通讯关系的网关,将所构造的买入请求传输至交易所模拟器,并接收交易所模拟器通过上述网关返回的与买入请求对应的交易结果数据;进而,利用待测试的证券交易系统根据该交易结果数据,更新与该买入请求对应的订单的处理状态,和/或更新申请该买入请求的虚拟账户的虚拟资产和虚拟持仓。此外,服务器还可以基于虚拟账户的虚拟持仓随机设置卖出条件,构造得到卖出请求;然后,通过与待测试的证券交易系统具有通讯关系的网关,将所构造的卖出请求传输至交易所模拟器,并接收交易所模拟器通过该网关返回的与该卖出请求对应的交易结果数据;进而,利用待测试的证券交易系统根据该交易结果数据,更新与该卖出请求对应的订单处理状态,和/或更新申请该卖出请求的虚拟账户的虚拟资产和虚拟持仓。
可选的,随机构造出的交易委托请求除了可以包括买入请求和卖出请求外,还可以包括随机构造的改单请求。具体的,服务器可以从处理状态为已挂单待成交和/或已挂单部分成交的订单中随机选择第一目标订单,然后针对所选出的第一目标订单随机更改委托价格和/或委托数量,以构造改单请求;进而,通过网关将该改单请求传输至交易所模拟器,接收该交易所模拟器通过网关返回的对应于该改单请求的交易结果数据,并根据该交易结果数据更新该第一目标订单的处理状态。如此,进一步丰富测试过程中交易委托请求的类型,使得测试过程更贴近实际的证券交易过程。
可选的,随机构造出的交易委托请求除了可以包括买入请求和卖出请求外,还可以包括随机构造的撤单请求。具体的,服务器可以从处理状态为已挂单待成交和/或已挂单部分成交的订单中随机选择第二目标订单,然后针对第二目标订单构造撤单请求;进而,通过网关将该撤单请求传输至交易所模拟器,接收交易所模拟器通过该网关返回的对应于撤单请求的交易结果数据,并且根据该交易结果数据更新第二目标订单的处理状态。如此,进一步丰富测试过程中交易委托请求的类型,使得测试过程更贴近实际的证券交易过程。
为了便于进一步理解上述证券交易过程,下面结合图4所示的由证券交易系统管理的订单状态机模型的处理流程示意图,对证券交易过程进行示例性介绍。
如图4中实线指示的处理状态更新过程所示,在测试时段的交易日内,服务器随机构造出买入请求后,证券交易系统即可相应地将该买入请求对应的订单的处理状态设置为挂单中待成交,并通过网关将该买入请求传输至交易所模拟器。证券交易系统接收到交易所模拟器针对某买入请求返回的下单成功回包后,将该买入请求对应的订单的处理状态更新为已挂单待成交;证券交易系统接收到交易所模拟器针对某买入请求返回的下单失败回包后,将该买入请求对应的订单的处理状态更新为挂单失败未成交。证券交易系统接收到交易所模拟器针对某买入请求返回的部分成交回包后,将该买入请求对应的订单的处理状态更新为已挂单部分成交,证券交易系统接收到交易所模拟器针对某买入请求返回的全部成交回包后,将该买入请求对应的订单的处理状态更新为已挂单全部成交。
对于处理状态为已挂单待成交和已挂单部分成交的订单,服务器还可以从中随机选择订单并针对其随机生成撤单请求,针对某订单生成撤单请求后,该订单的处理状态将更新为撤单中待成交,将该撤单请求传输到交易所模拟器后,若接收到交易所模拟器针对该撤单请求返回的撤单成功回包,则将该订单的处理状态更新为已撤单未成交,若接收到过期单回包,则将该订单的处理状态更新为已过期未成交,若接收到撤单拒绝回包,则仍保持此订单原本的处理状态。
对于处理状态为已挂单待成交和已挂单部分成交的订单,服务器还可以从中随机选择订单并针对其随机生成改单请求,针对某订单生成改单请求后,该订单的处理状态将更新为改单中待成交,将该改单请求传输到交易所模拟器后,若接收到交易所模拟器针对该改单请求返回的改单成功回包,则更新该订单对应的买入请求,同时保持该订单原本的处理状态,若接收到改单拒绝回包,则保持该订单对应的买入请求以及原本的处理状态。
需要说明的是,在实际应用中,受到网络环境的影响,网关对于证券交易机构向证券交易系统返回的交易结果数据包,无法保证按照正常顺序依次反馈,例如,在正常情况下,网关应依次向证券交易机构返回下单成功回包、部分成交回包和全部成交回包,而在网络环境不稳定的情况下,如图4中虚线所示的处理状态更新过程所示,网关可能直接先返回部分成交回包,再返回全部成交回包,或者直接返回全部成交回包,又或者可能重复返回部分成交回包和/或全部成交回包,等等。
为了进一步保证基于本申请实施例提供的系统测试方法能够准确可靠地测试证券交易系统的稳定性,本申请实施例提供的技术方案可以进一步模拟创建数据包乱序场景,以测试证券交易系统针对该种场景的处理性能。具体的,服务器可以通过网关针对交易结果数据随机增加回包延迟,得到乱序的交易结果数据,此处的交易结果数据可以包括对应于下单委托请求(即买入请求和卖出请求)的交易结果数据、对应于改单请求的交易结果数据和对应于撤单请求的交易结果数据,进而使得证券交易系统接收该网关返回的乱序的交易结果数据。
参见图5所示的数据传输过程示意图。网关502接收到交易所模拟器503返回的交易结果数据后,随机针对交易结果数据增加0至60s不等的回包延迟,利用延迟处理后的交易结果数据构建消息队列504,进而,将该消息队列504传输至证券交易系统501。由此交易服务在并发情况下造成乱序,乱序处理后订单的状态机模型比正序场景下的状态机模型更加复杂,可以充分地验证证券交易系统在此种乱序场景下的处理性能。
待该初始交易日结束后,服务器可以调用清算系统从证券交易系统获取该交易日的成交数据,然后通过清算系统基于这些成交数据进行对账和交收滚动,确定清算对账数据,进而清算系统将清算对账数据返回至证券交易系统,以便证券交易系统根据该清算对账数据对各虚拟账户的虚拟资产和虚拟持仓进行重置,如此,经过上述过程完成对于测试时段内一个交易日的证券交易模拟。
待测试时段内的下一交易日开始后,服务器可以基于重置后的虚拟资产和虚拟持仓,重复执行上述随机构造交易委托请求、模拟证券交易过程的操作,以继续对于证券交易系统的测试。
步骤203:根据所述证券交易过程中的监测日志数据、交易流水核对数据和清算对账数据,验证所述证券交易系统在所述测试时段内是否稳定。
最终,服务器可以根据经上述步骤203模拟的证券交易过程中的监测日志数据、交易流水核对数据和清算对账数据,分别从机器运行性能、短期数据处理准确度以及长期处理准确度这三个方面,综合验证证券交易系统在测试时段内是否稳定。
具体实现时,服务器可以根据证券交易过程中的监测日志数据,判断支持该证券交易系统运行的服务器的运行性能是否满足第一预设条件。监测日志数据具体可以包括服务器性能监测数据(如对于内存、CPU、连接数的监测数据)、服务器异常日志和上报的错误码等等,根据监测日志数据判断服务器的运行性能是否满足第一预设条件,实质上就是根据服务器性能监测数据、服务器异常日志和错误码等,判断服务器的运行性能是否稳定。
服务器可以根据证券交易过程中的交易流水核对数据,判断该证券交易系统的短期处理性能是否满足第二预设条件。具体的,服务器可以根据交易流水数据从状态机维度、订单维度和流水维度等多个维度,检查状态机模型更新是否正确,虚拟账户的虚拟资产与虚拟持仓是否平衡等,检查证券交易系统实时地对于虚拟资产、虚拟持仓、交易处理的正确性。
服务器可以根据证券交易过程中的清算对账数据,判断该证券交易系统的长期处理性能是否满足第三预设条件。具体的,在测试时段内的交易日结束后执行清算服务,对该交易日的交易数据进行对账和滚动交收得到清算对账数据,基于该清算对账数据检查证券交易系统对于该交易日内的虚拟资产、虚拟持仓、交易处理的正确性。
若经上述处理,确定支持证券交易系统运行的服务器的运行性能满足第一预设条件,且证券交易系统的短期处理性能满足第二预设条件,且证券交易系统的长期处理性能满足第三预设条件,则可以确定该证券交易系统在测试时段内稳定运行,其稳定性较好。反之,若确定支持证券交易系统运行的服务器的运行性能不满足第一预设条件,或者证券交易系统的短期处理性能不满足第二预设条件,或者证券交易系统的长期处理性能不满足第三预设条件,则可以确定该证券交易系统在测试时段内没有稳定运行,其稳定性较差。
本申请实施例提供的系统测试方法可以通过随机设置交易条件的方式,构造出大量的交易委托请求,为利用证券交易系统长时间模拟证券交易过程提供丰富多样的处理数据;进而利用待测试的证券交易系统基于如此多样化的处理数据模拟证券交易过程,为测试证券交易系统创造更复杂的处理环境;最终根据在此证券交易过程中产生的监测日志数据、交易流水核对数据和清算对账数据,分别从机器运行性能、短期数据处理准确度以及长期处理准确度等多个方面,衡量该证券交易系统长时间运行的稳定性,以确保测试结果准确可靠。
为了便于进一步理解本申请实施例提供的系统测试方法,下面结合图6所示的流程,对本申请实施例提供的系统测试方法的实现过程进行整体示例性介绍。
如图6所示,用于支持待测试的证券交易系统6100运行的服务器,可以先初始化构建大量的虚拟账户组成账户池6110,在构建虚拟账户时,服务器还需为所构建的虚拟账户分配虚拟资产和账户类型,账户池6110中具体可以包括现金账户、保证金账户等等。
在测试时段内,服务器可以从账户池6110中随机选择虚拟账户,并以这些虚拟账户的虚拟资产为基础,随机设置委托类型6121、委托数量6122、委托价格6123、订单类型6124、委托方向6125、股票类型6126和市场类型6127等交易条件,构造大量买入请求6120组成订单池6130。为了确保模拟证券交易过程中存在成交和未成交的数据,可在买十和卖十之间随机调整委托价格,保证模拟的证券交易过程有一定概率成交。
针对订单池6130中由交易所模拟器确定成交的订单,将相应地组成持仓池6140,服务器可以从持仓池6140中随机选择股票,并针对所选择的股票随机设置订单类型6151、委托价格6152和委托数量6153,构造卖出请求6150。
针对订单池6130中处理状态为已挂单待成交和已挂单部分成交的订单,服务器可以从中随机选择订单,并针对所选择的订单随机设置改单价格6161和改单数量6162,构造改单请求6160。
针对订单池6130中处理状态为已挂单待成交和已挂单部分成交的订单,服务器可以从中随机选择订单,并针对所选择的订单构造撤单请求6170。
在测试时段内的交易日结束后,清算系统6200从证券交易系统6100获取该交易日的成交数据进行对账和交收滚动,再将清算对账数据返回至证券交易系统6100,对各虚拟账户的虚拟资产和虚拟持仓进行重置,至此该交易日的证券交易结束。至测试时段的下一交易日,服务器可以继续执行上述操作,开始针对该交易日的测试。
作为证券交易系统6100和交易所模拟器之间的传输媒介的网关,与交易所模拟器为长连接,交易所模拟器返回交易结果数据后,会由该网关通过异步消息返回至证券交易系统6100,由证券交易系统6100在并发情况下造成数据乱序,数据乱序场景下证券交易系统6100维护的订单的状态机比数据正序场景下的状态机更加复杂,如此可以验证证券交易系统6100的稳定性。本方案以最低成本实现乱序数据的注入,即在网关与证券交易系统6100之间增加随机回包延迟,例如通过消息队列的方式异步传递,从而构造乱序场景。
测试结束后,服务器可以从以下三个方面验证证券交易系统的稳定性:
第一,异常日志监测,包括对于服务器性能的监测(内存、CPU、连接数等)、服务器异常日志监测、错误码上报等,从机器和业务等维度观察证券交易系统6100的稳定性。
第二,交易流水核对,从状态机、订单和流水等多个维度,检查状态机变更正确性,订单资产和持仓平衡等,检查证券交易系统6100对资产、持仓、交易处理的正确性。
第三,清算对账及交收重置,在交易结束后执行清算服务,对该交易日的交易数据进行对账和滚动交收,检查证券交易系统6100对资产、持仓、交易处理的正确性。
针对上文描述的系统测试方法,本申请还提供了对应的系统测试装置,以使上述系统测试方法在实际中得以应用和实现。
参见图7,图7是与上文图2所示的系统测试方法对应的一种系统测试装置700的结构示意图,该系统测试装置700包括:
账户获取模块701,用于获取多个虚拟账户,每个所述虚拟账户分配有虚拟资产和账户类型;
证券交易模拟模块702,用于在预设的测试时段内,针对所述多个虚拟账户随机设置交易条件,构造多个交易委托请求;利用待测试的证券交易系统基于多个所述交易委托请求模拟证券交易过程;
验证模块703,用于根据所述证券交易过程中的监测日志数据、交易流水核对数据和清算对账数据,验证所述证券交易系统在所述测试时段内是否稳定。
可选的,在图7所示的系统测试装置的基础上,所述证券交易模拟模块702具体用于:
从所述多个虚拟账户中随机选出n个虚拟账户,所述n为大于1的整数;
针对所述n个虚拟账户随机设置以下至少一个交易条件:委托类型、委托数量、委托价格、订单类型、委托方向、股票类型和市场类型,构造所述多个交易委托请求。
可选的,在图7所述的系统测试装置的基础上,所述交易委托请求至少包括:下单委托请求。参见图8,图8为本申请实施例提供的另一种系统测试装置800的结构示意图。如图8所示,其中所述证券交易模拟模块702包括:
交易模拟子模块801,用于在所述测试时段内的交易日执行以下操作:针对所述虚拟账户随机设置下单条件构造下单委托请求;通过网关将所述下单委托请求传输至交易所模拟器;接收所述交易所模拟器通过所述网关返回的对应于所述下单委托请求的交易结果数据;根据该交易结果数据,更新所述下单委托请求对应的订单的处理状态,和/或更新所述下单委托请求对应的虚拟账户的虚拟资产和虚拟持仓;
清算重置子模块802,用于待所述交易日结束后,调用清算系统进行对账和交收滚动确定所述清算对账数据,并根据所述清算对账数据对所述虚拟账户的虚拟资产和虚拟持仓进行重置;
所述交易模拟子模块801,还用于待所述交易日的下一交易日开始后,基于重置后的虚拟资产和虚拟持仓对所述证券交易系统进行测试。
可选的,在图8所述的系统测试装置的基础上,所述交易委托请求还包括:改单请求,则所述交易模拟子模块801还用于:
从处理状态为已挂单待成交和/或已挂单部分成交的订单中随机选择第一目标订单,并针对所述第一目标订单随机更改委托价格和/或委托数量,构造改单请求;通过所述网关将所述改单请求传输至所述交易所模拟器;接收所述交易所模拟器通过所述网关返回的对应于所述改单请求的交易结果数据;根据该交易结果数据更新所述第一目标订单的处理状态。
可选的,在图8所述的系统测试装置的基础上,所述交易委托请求还包括:撤单请求,则所述交易模拟子模块801还用于:
从处理状态为已挂单待成交和/或已挂单部分成交的订单中随机选择第二目标订单,并针对所述第二目标订单构造撤单请求;通过所述网关将所述撤单请求传输至所述交易所模拟器;接收所述交易所模拟器通过所述网关返回的对应于所述撤单请求的交易结果数据;根据该交易结果数据更新所述第二目标订单的处理状态。
可选的,在图8所示的系统测试装置的基础上,所述交易模拟子模块801具体用于:
通过所述网关针对所述交易结果数据随机增加回包延迟,得到乱序的交易结果数据;
接收所述网关返回的所述乱序的交易结果数据。
可选的,在图7所示的系统测试装置的基础上,所述验证模块703具体用于:
根据所述监测日志数据,判断支持所述证券交易系统运行的服务器的运行性能是否满足第一预设条件;
根据所述交易流水核对数据,判断所述证券交易系统的短期处理性能是否满足第二预设条件;
根据所述清算对账数据,判断所述证券交易系统的长期处理性能是否满足第三预设条件;
若所述服务器的运行性能满足所述第一预设条件,且所述短期处理性能满足所述第二预设条件,且所述长期处理性能满足所述第三预设条件,则确定所述证券交易系统在所述测试时段内运行稳定。
本申请实施例提供的系统测试装置可以通过随机设置交易条件的方式,构造出大量的交易委托请求,为利用证券交易系统长时间模拟证券交易过程提供丰富多样的处理数据;进而利用待测试的证券交易系统基于如此多样化的处理数据模拟证券交易过程,为测试证券交易系统创造更复杂的处理环境;最终根据在此证券交易过程中产生的监测日志数据、交易流水核对数据和清算对账数据,分别从机器运行性能、短期数据处理准确度以及长期处理准确度等多个方面,衡量该证券交易系统长时间运行的稳定性,以确保测试结果准确可靠。
本申请实施例还提供了一种用于测试证券交易系统的设备,该设备具体可以是服务器,下面将从硬件实体化的角度对本申请实施例提供的服务器进行介绍。
参见图9,图9为本申请实施例提供的一种服务器900的结构示意图。该服务器900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessing units,CPU)922(例如,一个或一个以上处理器)和存储器932,一个或一个以上存储应用程序942或数据944的存储介质930(例如一个或一个以上海量存储设备)。其中,存储器932和存储介质930可以是短暂存储或持久存储。存储在存储介质930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器922可以设置为与存储介质930通信,在服务器900上执行存储介质930中的一系列指令操作。
服务器900还可以包括一个或一个以上电源926,一个或一个以上有线或无线网络接口950,一个或一个以上输入输出接口958,和/或,一个或一个以上操作系统941,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由服务器所执行的步骤可以基于该图9所示的服务器结构。
其中,CPU 922用于执行如下步骤:
获取多个虚拟账户,每个所述虚拟账户分配有虚拟资产和账户类型;
在预设的测试时段内,针对所述多个虚拟账户随机设置交易条件,构造多个交易委托请求;利用待测试的证券交易系统基于多个所述交易委托请求模拟证券交易过程;
根据所述证券交易过程中的监测日志数据、交易流水核对数据和清算对账数据,验证所述证券交易系统在所述测试时段内是否稳定。
可选的,CPU 922还可以用于执行本申请实施例提供的样本挖掘方法的任意一种实现方式的步骤。
本申请实施例还提供一种计算机可读存储介质,用于存储计算机程序,该计算机程序用于执行前述各个实施例所述的一种系统测试方法中的任意一种实施方式。
本申请实施例还提供一种包括指令的计算机程序产品,当其在计算机上运行时,使得计算机执行前述各个实施例所述的一种系统测试方法中的任意一种实施方式。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文全称:Read-OnlyMemory,英文缩写:ROM)、随机存取存储器(英文全称:Random Access Memory,英文缩写:RAM)、磁碟或者光盘等各种可以存储计算机程序的介质。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (15)
1.一种系统测试方法,其特征在于,所述方法包括:
获取多个虚拟账户,每个所述虚拟账户分配有虚拟资产和账户类型;
在预设的测试时段内,针对所述多个虚拟账户随机设置交易条件,构造多个交易委托请求;利用待测试的证券交易系统基于多个所述交易委托请求模拟证券交易过程;所述测试时段包括多个交易日;
根据所述证券交易过程中的监测日志数据,判断支持所述证券交易系统运行的服务器的运行性能是否满足第一预设条件;
根据所述证券交易过程中的交易流水核对数据,判断所述证券交易系统的短期处理性能是否满足第二预设条件;
根据所述证券交易过程中的清算对账数据,判断所述证券交易系统的长期处理性能是否满足第三预设条件;
若所述服务器的运行性能满足所述第一预设条件,且所述短期处理性能满足所述第二预设条件,且所述长期处理性能满足所述第三预设条件,则确定所述证券交易系统在所述测试时段内运行稳定。
2.根据权利要求1所述的方法,其特征在于,所述针对所述多个虚拟账户随机设置交易条件,构造多个交易委托请求,包括:
从所述多个虚拟账户中随机选出n个虚拟账户,所述n为大于1的整数;
针对所述n个虚拟账户随机设置以下至少一个交易条件:委托类型、委托数量、委托价格、订单类型、委托方向、股票类型和市场类型,构造所述多个交易委托请求。
3.根据权利要求1所述的方法,其特征在于,所述交易委托请求至少包括:下单委托请求;则所述在预设的测试时段内,针对所述多个虚拟账户随机设置交易条件,构造多个交易委托请求;利用待测试的证券交易系统基于多个所述交易委托请求模拟证券交易过程,包括:
在所述测试时段内的交易日执行以下操作:针对所述虚拟账户随机设置下单条件构造下单委托请求;通过网关将所述下单委托请求传输至交易所模拟器;接收所述交易所模拟器通过所述网关返回的对应于所述下单委托请求的交易结果数据;根据该交易结果数据,更新所述下单委托请求对应的订单的处理状态,和/或更新所述下单委托请求对应的虚拟账户的虚拟资产和虚拟持仓;
待所述交易日结束后,调用清算系统进行对账和交收滚动确定所述清算对账数据,并根据所述清算对账数据对所述虚拟账户的虚拟资产和虚拟持仓进行重置;
待所述交易日的下一交易日开始后,基于重置后的虚拟资产和虚拟持仓对所述证券交易系统进行测试。
4.根据权利要求3所述的方法,其特征在于,所述交易委托请求还包括:改单请求,在所述测试时段内的交易日执行的操作还包括:
从处理状态为已挂单待成交和/或已挂单部分成交的订单中随机选择第一目标订单,并针对所述第一目标订单随机更改委托价格和/或委托数量,构造改单请求;通过所述网关将所述改单请求传输至所述交易所模拟器;接收所述交易所模拟器通过所述网关返回的对应于所述改单请求的交易结果数据;根据所述交易结果数据更新所述第一目标订单的处理状态。
5.根据权利要求3所述的方法,其特征在于,所述交易委托请求还包括:撤单请求,在所述测试时段内的交易日执行的操作还包括:
从处理状态为已挂单待成交和/或已挂单部分成交的订单中随机选择第二目标订单,并针对所述第二目标订单构造撤单请求;通过所述网关将所述撤单请求传输至所述交易所模拟器;接收所述交易所模拟器通过所述网关返回的对应于所述撤单请求的交易结果数据;根据该交易结果数据更新所述第二目标订单的处理状态。
6.根据权利要求3至5任一项所述的方法,其特征在于,接收所述交易所模拟器通过所述网关返回的交易结果数据,包括:
通过所述网关针对所述交易结果数据随机增加回包延迟,得到乱序的交易结果数据;
接收所述网关返回的所述乱序的交易结果数据。
7.一种系统测试装置,其特征在于,所述装置包括:
账户获取模块,用于获取多个虚拟账户,每个所述虚拟账户分配有虚拟资产和账户类型;
证券交易模拟模块,用于在预设的测试时段内,针对所述多个虚拟账户随机设置交易条件,构造多个交易委托请求;利用待测试的证券交易系统基于多个所述交易委托请求模拟证券交易过程;所述测试时段包括多个交易日;
验证模块,用于根据所述证券交易过程中的监测日志数据,判断支持所述证券交易系统运行的服务器的运行性能是否满足第一预设条件;根据所述证券交易过程中的交易流水核对数据,判断所述证券交易系统的短期处理性能是否满足第二预设条件;根据所述证券交易过程中的清算对账数据,判断所述证券交易系统的长期处理性能是否满足第三预设条件;若所述服务器的运行性能满足所述第一预设条件,且所述短期处理性能满足所述第二预设条件,且所述长期处理性能满足所述第三预设条件,则确定所述证券交易系统在所述测试时段内运行稳定。
8.根据权利要求7所述的装置,其特征在于,所述证券交易模拟模块,具体用于:
从所述多个虚拟账户中随机选出n个虚拟账户,所述n为大于1的整数;
针对所述n个虚拟账户随机设置以下至少一个交易条件:委托类型、委托数量、委托价格、订单类型、委托方向、股票类型和市场类型,构造所述多个交易委托请求。
9.根据权利要求7所述的装置,其特征在于,所述交易委托请求至少包括:下单委托请求;则所述证券交易模拟模块,包括:
交易模拟子模块,用于在所述测试时段内的交易日执行以下操作:针对所述虚拟账户随机设置下单条件构造下单委托请求;通过网关将所述下单委托请求传输至交易所模拟器;接收所述交易所模拟器通过所述网关返回的对应于所述下单委托请求的交易结果数据;根据该交易结果数据,更新所述下单委托请求对应的订单的处理状态,和/或更新所述下单委托请求对应的虚拟账户的虚拟资产和虚拟持仓;
清算重置子模块,用于待所述交易日结束后,调用清算系统进行对账和交收滚动确定所述清算对账数据,并根据所述清算对账数据对所述虚拟账户的虚拟资产和虚拟持仓进行重置;
所述交易模拟子模块,还用于待所述交易日的下一交易日开始后,基于重置后的虚拟资产和虚拟持仓对所述证券交易系统进行测试。
10.根据权利要求9所述的装置,其特征在于,所述交易委托请求还包括:改单请求;所述交易模拟子模块还用于:
从处理状态为已挂单待成交和/或已挂单部分成交的订单中随机选择第一目标订单,并针对所述第一目标订单随机更改委托价格和/或委托数量,构造改单请求;通过所述网关将所述改单请求传输至所述交易所模拟器;接收所述交易所模拟器通过所述网关返回的对应于所述改单请求的交易结果数据;根据所述交易结果数据更新所述第一目标订单的处理状态。
11.根据权利要求9所述的装置,其特征在于,所述交易委托请求还包括:撤单请求;所述交易模拟子模块还用于:
从处理状态为已挂单待成交和/或已挂单部分成交的订单中随机选择第二目标订单,并针对所述第二目标订单构造撤单请求;通过所述网关将所述撤单请求传输至所述交易所模拟器;接收所述交易所模拟器通过所述网关返回的对应于所述撤单请求的交易结果数据;根据该交易结果数据更新所述第二目标订单的处理状态。
12.根据权利要求9至11任一项所述的装置,其特征在于,所述交易模拟子模块具体用于:
通过所述网关针对所述交易结果数据随机增加回包延迟,得到乱序的交易结果数据;
接收所述网关返回的所述乱序的交易结果数据。
13.一种电子设备,其特征在于,包括:存储器和处理器;
所述存储器用于存储计算机程序;
所述处理器用于根据所述计算机程序执行权利要求1至6任一项所述的系统测试方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行权利要求1至6任一项所述的系统测试方法。
15.一种计算机程序产品,其特征在于,包括指令,当其在计算机上运行时,使得计算机执行权利要求1至6任一项所述的系统测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010053994.9A CN111309594B (zh) | 2020-01-17 | 2020-01-17 | 一种系统测试方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010053994.9A CN111309594B (zh) | 2020-01-17 | 2020-01-17 | 一种系统测试方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111309594A CN111309594A (zh) | 2020-06-19 |
CN111309594B true CN111309594B (zh) | 2024-04-23 |
Family
ID=71154611
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010053994.9A Active CN111309594B (zh) | 2020-01-17 | 2020-01-17 | 一种系统测试方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111309594B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111932374A (zh) * | 2020-07-27 | 2020-11-13 | 北京字节跳动网络技术有限公司 | 数据更新方法、装置和电子设备 |
CN111881057B (zh) * | 2020-08-06 | 2023-08-15 | 中国工商银行股份有限公司 | 测试方法、测试装置、测试系统及介质 |
CN114205273B (zh) * | 2020-08-26 | 2023-09-15 | 腾讯科技(深圳)有限公司 | 系统测试方法、装置和设备及计算机存储介质 |
CN112035303B (zh) * | 2020-09-01 | 2021-08-24 | 腾讯科技(深圳)有限公司 | 一种数据测试方法、装置、计算机及可读存储介质 |
CN112419052B (zh) * | 2020-09-30 | 2024-06-11 | 中信百信银行股份有限公司 | 交易测试方法、装置、电子设备及可读存储介质 |
CN112506798B (zh) * | 2020-12-22 | 2024-09-06 | 杭州趣链科技有限公司 | 一种区块链平台的性能测试方法、装置、终端及存储介质 |
CN112927076A (zh) * | 2021-02-26 | 2021-06-08 | 深圳华锐金融技术股份有限公司 | 证券交易风险控制方法、装置、计算机设备和存储介质 |
CN116501610B (zh) * | 2023-03-13 | 2024-03-01 | 深圳华锐分布式技术股份有限公司 | 做市交易系统的测试方法、装置、设备及介质 |
CN116010290A (zh) * | 2023-03-27 | 2023-04-25 | 华锐分布式(北京)技术有限公司 | 交易系统的测试方法、装置、设备及介质 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020034296A (ko) * | 2000-10-31 | 2002-05-09 | 유석열 | 일일 매매 사용자를 위한 증권종목 분석 기능을 갖는온라인 증권거래 시스템 |
CN106649104A (zh) * | 2016-12-02 | 2017-05-10 | 中国工商银行股份有限公司 | 一种基于主机系统交易重放的测试系统及方法 |
CN106780022A (zh) * | 2016-11-25 | 2017-05-31 | 王堃 | 一种股票下单数据控制系统及其方法 |
CN107094090A (zh) * | 2012-06-06 | 2017-08-25 | 瞻博网络公司 | 针对虚拟网络分组流的物理路径确定 |
CN107957945A (zh) * | 2017-11-29 | 2018-04-24 | 平安科技(深圳)有限公司 | 货币基金系统自动性能测试方法、装置、设备及存储介质 |
CN109087201A (zh) * | 2018-06-21 | 2018-12-25 | 腾讯科技(深圳)有限公司 | 虚拟资源的数据处理方法、服务器及存储介质 |
CN109165153A (zh) * | 2018-09-06 | 2019-01-08 | 华泰证券股份有限公司 | 一种高仿真证券业交易类系统的性能测试方法 |
CN109240910A (zh) * | 2018-08-13 | 2019-01-18 | 兴业证券股份有限公司 | 证券软件交易功能测试方法及存储介质 |
CN109491815A (zh) * | 2018-10-17 | 2019-03-19 | 深圳壹账通智能科技有限公司 | 基于多阶段的数据生成方法、装置和计算机设备 |
CN110268389A (zh) * | 2017-02-06 | 2019-09-20 | 维萨国际服务协会 | 用于系统测试的模拟器 |
CN110309022A (zh) * | 2019-05-22 | 2019-10-08 | 平安银行股份有限公司 | 模拟交易测试的方法、模拟器、设备及存储介质 |
US10489864B1 (en) * | 2015-03-06 | 2019-11-26 | Jpmorgan Chase Bank, N.A. | Systems and methods for generating customer transaction test data that simulates real world customer transaction data |
CN110569190A (zh) * | 2019-08-27 | 2019-12-13 | 中国工商银行股份有限公司 | 交易压力测试方法和装置、以及电子设备和可读存储介质 |
US10534680B1 (en) * | 2017-12-11 | 2020-01-14 | Worldpay, Llc | Systems and methods for simulation-based replay of integrated devices |
-
2020
- 2020-01-17 CN CN202010053994.9A patent/CN111309594B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020034296A (ko) * | 2000-10-31 | 2002-05-09 | 유석열 | 일일 매매 사용자를 위한 증권종목 분석 기능을 갖는온라인 증권거래 시스템 |
CN107094090A (zh) * | 2012-06-06 | 2017-08-25 | 瞻博网络公司 | 针对虚拟网络分组流的物理路径确定 |
US10489864B1 (en) * | 2015-03-06 | 2019-11-26 | Jpmorgan Chase Bank, N.A. | Systems and methods for generating customer transaction test data that simulates real world customer transaction data |
CN106780022A (zh) * | 2016-11-25 | 2017-05-31 | 王堃 | 一种股票下单数据控制系统及其方法 |
CN106649104A (zh) * | 2016-12-02 | 2017-05-10 | 中国工商银行股份有限公司 | 一种基于主机系统交易重放的测试系统及方法 |
CN110268389A (zh) * | 2017-02-06 | 2019-09-20 | 维萨国际服务协会 | 用于系统测试的模拟器 |
CN107957945A (zh) * | 2017-11-29 | 2018-04-24 | 平安科技(深圳)有限公司 | 货币基金系统自动性能测试方法、装置、设备及存储介质 |
US10534680B1 (en) * | 2017-12-11 | 2020-01-14 | Worldpay, Llc | Systems and methods for simulation-based replay of integrated devices |
CN109087201A (zh) * | 2018-06-21 | 2018-12-25 | 腾讯科技(深圳)有限公司 | 虚拟资源的数据处理方法、服务器及存储介质 |
CN109240910A (zh) * | 2018-08-13 | 2019-01-18 | 兴业证券股份有限公司 | 证券软件交易功能测试方法及存储介质 |
CN109165153A (zh) * | 2018-09-06 | 2019-01-08 | 华泰证券股份有限公司 | 一种高仿真证券业交易类系统的性能测试方法 |
CN109491815A (zh) * | 2018-10-17 | 2019-03-19 | 深圳壹账通智能科技有限公司 | 基于多阶段的数据生成方法、装置和计算机设备 |
CN110309022A (zh) * | 2019-05-22 | 2019-10-08 | 平安银行股份有限公司 | 模拟交易测试的方法、模拟器、设备及存储介质 |
CN110569190A (zh) * | 2019-08-27 | 2019-12-13 | 中国工商银行股份有限公司 | 交易压力测试方法和装置、以及电子设备和可读存储介质 |
Non-Patent Citations (2)
Title |
---|
SERA:股票历史交易重现和分析系统;周遥;冯亮;张俍;翁念龙;张蓉;;计算机研究与发展;20110915(第S3期);全文 * |
模拟交易系统:基于用户体验的服务质量保障;戴翔;赵佳宝;俞枫;;中国金融电脑;20120607(第06期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111309594A (zh) | 2020-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111309594B (zh) | 一种系统测试方法、装置、设备及存储介质 | |
Xu et al. | Sok: Decentralized exchanges (dex) with automated market maker (amm) protocols | |
EP3824423B1 (en) | Blockchain transaction safety using smart contracts | |
US10884810B1 (en) | Workload management using blockchain-based transaction deferrals | |
US10698795B2 (en) | Virtual payments environment | |
US20180373984A1 (en) | Architectures, systems and methods having segregated secure functions and public functions | |
CN112534774A (zh) | 分散的防止欺诈的安全措施 | |
CN108200203A (zh) | 基于双层网络的区块链系统 | |
CN110992020A (zh) | 基于智能合约的数据处理方法、相关节点及存储介质 | |
CN110599178A (zh) | 一种基于智能合约的数据处理方法、装置以及存储介质 | |
CN103038752A (zh) | 漏洞清理所 | |
US10970780B2 (en) | Zero-knowledge predictions market | |
CN111782551B (zh) | 针对区块链项目的测试方法、装置及计算机设备 | |
CN112035350B (zh) | 针对区块链系统的测试方法、装置及计算机设备 | |
CN109859001A (zh) | 一种基于区块链进行房源更新的方法及装置 | |
US20220237673A1 (en) | Systems and methods for securing and generating real-time product data streams to enable low-latency transactions | |
Bakaul et al. | The Implementation of Blockchain in Banking System using Ethereum | |
CN114119243B (zh) | 基于区块链的池融资管理方法、装置、介质和电子设备 | |
CN107154930B (zh) | 一种测试漏洞的方法和系统 | |
CN111882436B (zh) | 一种基于区块链的数据处理方法、装置及设备 | |
CN115099925A (zh) | 一种基于区块链的风险评估方法、装置及设备 | |
CN114860615A (zh) | 规则自动化测试方法、装置、电子设备及存储介质 | |
CN113313600B (zh) | 消息的处理方法、装置及系统、存储介质、电子装置 | |
Torres et al. | Rolling in the Shadows: Analyzing the Extraction of MEV Across Layer-2 Rollups | |
CN113095676A (zh) | 生产事件风险等级的获取方法、装置、设备、介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40024350 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |