首页> 中国专利> 期货与证券行业测试用例并行自动化测试系统

期货与证券行业测试用例并行自动化测试系统

摘要

本发明公开了一种期货与证券行业测试用例并行自动化测试系统,具有测试队列、分发机、多个执行机和资源库,测试系统在接收执行机传输的测试用例的测试校验指令后,从所述的资源库中调取测试数据支持测试用例运行,生成测试结果;执行机监控测试用例的运行情况,获取测试结果,将该结果返回至分发机;测试完成后,将占用的测试数据资源释放,重新标记为可用状态;更改运行后的测试用例状态,在所述的测试队列中删除,当测试队列中的全部测试用例测试成功后,即测试队列为空后,完成多个测试用例的并行测试。本发明具有提高被测系统的使用率,充分利用各种测试资源,显著提升执行效率的优点。

著录项

  • 公开/公告号CN103391225A

    专利类型发明专利

  • 公开/公告日2013-11-13

    原文格式PDF

  • 申请/专利权人 大连飞创信息技术有限公司;

    申请/专利号CN201310320295.6

  • 申请日2013-07-26

  • 分类号H04L12/26;

  • 代理机构大连东方专利代理有限责任公司;

  • 代理人李馨

  • 地址 116023 辽宁省大连市沙河口区会展路129号44、46楼

  • 入库时间 2024-02-19 21:01:19

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-09-14

    授权

    授权

  • 2013-12-04

    实质审查的生效 IPC(主分类):H04L12/26 申请日:20130726

    实质审查的生效

  • 2013-11-13

    公开

    公开

说明书

技术领域

本发明涉及一种期货与证券行业测试用例的测试方法和系统,尤其涉及一 种采用并行自动化测试的方法和系统。涉及专利分类号H04电通信技术 H04L12/00数据交换网络H04L12/26监视装置;测试装置。

背景技术

随着期货与证券行业信息技术的发展,自动化测试技术已逐步在各家交易 所内开始应用,大量的手工测试用例转化为相应的自动化测试用例,通过传统 的串行执行用例的方式初步提高了测试的效率和测试的准确性。

然而紧急项目、紧迫变更发生时,上线时间紧迫,需要在短时间内完成全 面的回归测试,才能保证软件质量,只有高效的测试过程,才能确保系统及时 上线。而传统的串行执行方式,被测系统同一时间内只能执行某个测试任务内 的一个测试用例,执行完一个测试用后才能开始下一个测试用例的执行,显而 易见被测系统使用率过低。

由于串行执行系统在一个时间内只能处理一个测试用例,整个回归测试的 时间与测试用例的数量呈线性增长关系,回归测试包含的测试用例数量越多, 整个回归测试的耗时就越长,在面对巨量的测试用例任务时,传统的串行测试 系统无法做到在短时间内得到测试结果,尤其在对时间要求十分紧迫的金融证 券行业,往往会造成不可估量的损失。即使是代替了手工测试的串行执行自动 化测试在面对紧急多轮紧急回归测试任务时也显得效率低下。

因此,一种能够并行执行期货与证券行业自动化测试用例,提高被测系统 的使用率,充分利用各种测试资源,显著提升执行效率的并行执行方法就成为 了必要。

发明内容

本发明针对以上问题的提出,而研制的一种期货与证券行业测试用例并行 自动化测试系统,具有:

存储包含多个不带有测试数据的测试用例的测试队列;每个测试用例包括: 数据查询指令和测试校验指令;

分发机,该分发机内部具有多个循环进程,每个循环进程从所述队列的首 部按先入先出的顺序依次调取测试队列中的测试用例;

接收分发机中循环进程调取的测试用例,根据当前市场交易状态将测试用 例发送至对应的测试系统的多个执行机;

接收并运行执行机发送的测试用例的多个多线程的测试系统以及位于测试 系统中、存储测试数据资源的资源库,该资源库中的任一测试资源在一段时间 内,只能被一个测试用例调用;

所述的分发机根据测试用例对应的测试数据资源的挂起率和命中率,向对 应的执行机分发测试用例;

执行机向被测系统发送数据查询指令,从被测系统中的资源库中查询到合 适的数据后,执行机向测试系统发送测试用例中的测试校验指令;

测试系统在接收执行机传输的测试用例的测试校验指令后,从所述的资源 库中调取测试数据支持测试用例运行,生成测试结果;执行机监控测试用例的 运行情况,获取测试结果,将该结果返回至分发机;测试完成后,将占用的测 试数据资源释放,重新标记为可用状态;更改运行后的测试用例状态,在所述 的测试队列中删除,当测试队列中的全部测试用例测试成功后,即测试队列为 空后,完成多个测试用例的并行测试。

所述执行机的数量与分发机中的循环进程数量一致;每个执行机一次只接 收一个测试用例。

所述执行机具有二次非排除机制:当某一执行机准备向其对应的测试系统 传输用例时,首先查询符合测试用例的测试数据的占用情况;

若有符合测试用例调用条件的测试数据处于空闲状态,则执行机向测试系 统发送所述的测试校验指令;

若符合测试用例调用条件的全部测试数据处于占用状态,则执行机设定时 间阈值并进行等待,当等待到达时间阈值时,二次查询可条用的测试数据的占 用情况;

若有测试数据处于空闲状态,则执行机向测试系统发送测试用例的测试校 验指令;

若所有可调用的测试数据都处于占用状态,则执行机将当前的测试用例送 回分发机,由分发机将该测试用例发送回所述测试队列的尾部重新排队。

所述测试用例包括:

在交易日中的一个交易状态下即可完成测试的单状态用例和在交易中的多 个交易状态下完成测试的多状态用例。

当运行所述的多状态用例时,所述执行机首先检测所述的资源库中当前多 状态用例可使用的测试数据是否处于空闲状态以及当前的市场状态是否是多状 态用例中可运行的市场状态之一;

若可使用的测试数据处于空闲状态且市场状态符合,则执行机将当前的多 状态用例的测试校验指令发送至测试系统,调用资源库中的一组测试数据进行 测试,完成当前市场状态的测试后,返回测试用例至所述队列的尾端,重新循 环;将用例调用的测试数据输入排他池,并标记该测试数据和测试用例的对应 关系,待下一市场状态下,供所述的测试用例继续调用。

所述挂起率为:执行机为当前的测试用例没有查询到合适的测试数据资源 或者该用例对应的测试数据资源被多交易状态用例占用,则所述的测试用例处 于挂起状态;挂起率即为处于挂起状态的测试用例占测试用例总数的百分比;

所述命中率为:执行机为当前的测试用例查询对应的测试数据资源处于被 多状态测试用例占用的状态,则所述的测试用例处于命中状态;命中率即为处 于命中状态的测试用例占测试用例总数的百分比;

所述的分发机设定挂起率和分发率的阈值,当某一执行机中的测试用例达 到阈值时,分发机停止向该执行机分发测试用例。

由于采用了上述技术方案,本发明提供的期货与证券行业测试用例并行自 动化测试系统,采用了并行测试机制,在处理大量的测试用例时,相对于传统 串行的运行方式,极大的节省了测试时间。而且引入了判断当前市场状态的功 能和测试数据组挂起机制,可以有效的避免测试用例的阻塞。

附图说明

为了更清楚的说明本发明的实施例或现有技术的技术方案,下面将对实施 例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描 述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不 付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为一个交易日内交易状态的变化示意图

图2为本发明的网络架构示意图

图3为本发明单市场状态用例的测试流程图

图4为本发明多市场状态用例的测试流程图

图5为本发明中测试用例的命中率和挂起率计算示意图

图6为本发明测试用例的结构示意图

具体实施方式

为使本发明的实施例的目的、技术方案和优点更加清楚,下面结合本发明 实施例中的附图,对本发明实施例中的技术方案进行清楚完整的描述:

如图2所示:一种期货与证券行业测试用例并行自动化测试系统,主要包 括:

用于存储包含多个测试用例的测试队列,整个队列作为当次执行的用例集 合。在本发明中的所有测试用例都是不带有测试数据的测试用例,每个测试用 例都对应一个或多个市场状态(对应一个市场状态的测试用例为单状态用例; 多个市场状态的为多状态用例),测试用例只有在对应的市场状态下才能运行, 在测试系统上运行时,由测试系统调用测试数据,进行测试。

调用测试队列的分发机,在分发机的内部设有多个循环进程,每个循环进 程从所述队列的首部依次调取测试队列中的测试用例,即按先入先出FIFO的顺 序调用测试队列中的测试用例。

接收分发机中循环进程调取的测试用例,根据当前市场交易状态将测试用 例发送至对应的测试系统的多个执行机,在本发明中执行机的数量与分发机中 循环进程的数量一致。

接收并运行执行机发送的测试用例的多个测试系统,在本发明中的测试系 统能够同时运行多个来自所述测试队列中的用例,即多线程处理。

还包括存储有多组测试数据的资源库,在数据库中存储的测试数据一次只 能够被一个测试用例调用,在测试用例完成测试后,测试数据被分发机执行总 控修改状态后释放。

工作状态下:

测试系统在接收执行机传输的测试用例后,从所述的资源库中调取测试数 据支持测试用例运行,生成测试结果;执行机监控测试用例的运行情况,获取 测试结果,将该结果返回至分发机;测试完成后,将占用的测试数据资源释放, 重新标记为可用状态。

进一步的,考虑到每个期货与证券类测试用例所需运算命令非常多,所需 硬件资源较多,为保证用例运算效率,每台执行机每次只运行一个测试用例。

所述执行机的数量与分发机中的循环进程数量一致;每个执行机一次只接 收一个测试用例。

考虑到,测试数据一次只能够被一个测试用例调用,在调用的过程中不能 被其他的测试用例访问。当并行多个测试用例时,会产生测试数据的调用冲突。

在执行机向测试系统发送测试用例之前,执行机首先向被测系统发送数据 查询指令,从被测系统中的资源库中查询到合适的可调用测试数据后,执行机 向测试系统发送测试用例中的测试校验指令。

更进一步的,为了解决测试数据的调用冲突,本发明的多个执行机构具有 二次非排除机制:

当某一执行机准备向其对应的测试系统传输用例时,首先查询符合测试用 例的一组或多组测试数据的占用情况。

如果有符合测试用例调用条件的一组或多组测试数据处于空闲状态,则执 行机向测试系统发送测试用例,测试系统调用测试数据,开始运行测试用例, 直至完成该用例的测试,释放测试数据。

如果符合测试用例调用条件的全部测试数据都处于占用状态,则执行机设 定一个时间阈值,不对所持有的测试用例进行任何动作并等待,当等待到达时 间阈值时,二次查询可掉用的测试数据的占用情况,重复上次查询的过程。

进一步的,为了保证测试用例的测试效率,所述分发机根据数据资源的占 用情况,设定了分发规则主要包括设定命中率和挂起率。

挂起是一种用例的执行状态,表示:测试机在为当前的测试用例查询数据 资源时,没有查询到合适数据或发现对应的测试数据资源被多交易状态用例占 用的比例。

挂起率由基数和百分比组成。比如基数是10,百分比是60%,表示连续十 个用例挂起率的上限是60%,该挂起率,可认为设定,当到达该挂起率时,执 行机发出提示。挂起率的计算方式,如图5所示。

命中的定义:所述的挂起包括执行机没有查询到合适的测试数据资源或者 合适的测试数据资源被多状态用例占用。其中,后者多状态用例占用导致的用 例挂起就是一次命中。即挂起率包含了命中率。

命中率同样由基数和百分比组成。比如基数是10,百分比是60%,表示连 续十个用例命中上限是60%,达到这个上限则说明该被测系统中的资源(也就 是测试数据资源)被占用过多,已经不再适合被用例调用,此时执行机向分发 机发送提示信号,分发机在其监视页面给出当前资源被占用过多,不适于调用 的提示。

更进一步的,考虑到命中率会随着时间的推移而下降,为了保证测试用例 的分发效率,不影响测试用例的分发,当命中率或挂起率下降时,本发明中同 样具有类似的提醒机制:

执行机向分发机发出当前命中率或挂起率下降的信息,分发机在其(监视 页面发出警告提醒,提醒操作人员或由分发机自行修改分发策略,避免造成资 源的浪费。

当命中率或者挂起率达到设定的阈值时,分发机制认为该被测系统已不适 合再运行用例,因此就不再往该被测系统所对应的执行机分发用例了。

如图2所示,当环境Env1的命中率和挂起率到达了阈值,那么分发机将不 会再向循环1、2、3分发用例。

若有测试数据处于空闲状态,则执行机向测试系统发送测试用例,开始调 用数据运行用例,进行测试。

更进一步的,如果所有可调用的测试数据都处于占用状态,表明当前的测 试数据正在被一个耗时很长的多市场状态用例所占用,可能一直处于挂起状态, 继续等待时间可能会非常长,所以执行机将当前的测试用例送回分发机,由分 发机将该测试用例发送回所述测试队列的尾部重新排队,再次进行循环。

由于采用了上述的二次非排除机制,可以有效的解决测试数据不能被同时 使用而导致的测试用例堵塞的发生,使整个用例测试过程更加顺畅。

在实际的测试环境下,测试用例可分为两种:在交易日中的一个交易状态 下即可完成测试的单状态用例和在交易中的多个交易状态下完成测试的多状态 用例。

当运行所述的多状态用例时,所述执行机首先检测所述的资源库中当前多 状态用例可使用的测试数据是否处于空闲状态以及当前的市场状态是否是多状 态用例中可运行的市场状态之一;

若可使用的测试数据处于空闲状态且市场状态符合,则执行机将当前的多 状态用例包含的测试检验指令发送至测试系统,调用资源库中的一组测试数据 进行测试,完成当前市场状态的测试后,返回测试用例至所述队列的尾端,重 新循环;挂起所述的测试数据,待下一市场状态下,供所述的测试用例继续调 用。

如图6所示:每个测试用例在设计及编写时都会标注其所需要的市场状态。

对于单市场状态用例,在用例首部标出其所需要的市场状态用例。

对于多状态用例,会在后续步骤中间标示其后续步骤所需市场状态,比如 step4和step5需要在第二交易状态下才能执行,step6和step7需要在第三交易 状态下才能执行。

在每个测试用例执行前会有一个本次执行的策略定义,即根据所选的测试 用例自动筛选出本次执行需要哪几个市场交易状态,随后将这些市场交易状态 按顺序存储在脚本中:

比如当前所有的测试用例执行需要A、B、C三个市场状态。脚本开始执行 时,首先会选择需要A市场状态的的用例(包括单状态和多状态用例),随后判 断当前被测系统的交易状态是否是A,如果是A,那么这些用例可以被执行, 否则这些用例将不被执行。

当多状态用例的A状态部分执行完毕后,用例会被脚本安排到队列中,并 处于较高优先级。如果A状态的单用例和多状态用例的A部分全部执行完毕后, 系统会提示用例切换到下一交易状态B,脚本暂停运行。当切换完毕后,用户通 知系统已经完成交易状态切换,现在系统交易状态处于B。这时,脚本继续运行, 开始执行符合B市场状态的单用例,以及在A状态执行完毕期待B状态的多状 态用例。

在完成测试后,更新完成测试的测试用例的状态,主要操作如下表所示:

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局 限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本 发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护 范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号