一种支持并行测试的测试资源管理方法

文档序号:6399735阅读:118来源:国知局
专利名称:一种支持并行测试的测试资源管理方法
技术领域
本发明涉及测试技术领域,特别涉及一种对自动测试系统中的测试资源进行智能化配置管理的方法。
背景技术
测试资源管理程序主要用来管理自动测试系统中的各种测试资源软、硬件的信息,它是自动测试系统中一个非常重要的辅助程序,尤其是对于复杂的通用自动测试系统来说更是如此。当然,对于有些小型的自动测试系统,由于测试资源较少,测试程序是专用的,极少出现并行测试的情况,所以也有不提供测试资源管理程序,而由测试程序直接通过驱动程序访问仪器的情况。目前常见的测试资源管理程序只是管理了自动测试系统中的硬件、软件的静态信息,比如:硬件的程控地址、驱动等信息。如图1所示,测试程序11通过测试资源管理程序12提供的API函数访问到自动测试系统中所有测试资源的信息,然后根据需要装载相应的驱动程序13,并通过驱动程序访问测试仪器14。同测试仪器14会话的建立和结束都由测试程序11负责管理,与测试资源管理程序12无关。因此,现有测试资源管理程序12只是管理了自动测试系统中的测试资源的静态信息。测试程序11只能通过这些信息装载相应驱动程序13来访问所需仪器,从测试程序11本身的角度来管理测试仪器14的访问状态,无法从自动测试系统的角度管理测试仪器14状态。这样就造成了以下问题:当多个测试程序并行运行时,互相之间交错而无序的访问测试仪器,造成测试仪器的状态紊乱,从而无法得到准确的测量数据。因此,现有的测试资源管理程序无法对并行测试提供有力支撑,极大的限制了测试仪器的测试能力,降低了测试效率。

发明内容
本发明提出了一种支持并行测试的测试资源管理方法,解决了现有技术中多个测试程序同时访问同一测试仪器时造成测试仪器状态紊乱的问题。本发明的技术方案是这样实现的:一种支持并行测试的测试资源管理方法,包括以下步骤:步骤101,在测试资源管理器服务器程序启动时,创建测试资源管理器组件,并读入资源配置文件;步骤102,解析XML文件,将资源配置文件中信息提取出来;步骤103,根据提取出来的信息,构造测试仪器状态信息表的初始值;步骤104,等待测试仪器发送过来的请求消息,当新消息到来后,根据请求的不同,做出不同处理;步骤105,首先判断请求是否是申请测试仪器,如果判断为真,则再继续判断测试仪器是否是多通道仪器;如果判断为否,则再继续判断请求是否是释放测试仪器;步骤106,判断请求是否是释放测试仪器,如果判断为真,则修改状态信息表;步骤107,根据测试仪器是否为多通道仪器,如果测试仪器为多通道仪器,则将测试仪器中对应通道的状态改成“空闲”状态;如果测试仪器为单通道仪器,则将测试仪器的状态改为“空闲”状态;步骤108,当测试仪器通道数大于I时,则该测试仪器为多通道仪器;如果判断为真,则查看继续查看指定的通道是否空闲;否则,直接查看测试仪器是否空闲;步骤109,查看指定仪器的状态是否为“空闲”状态,如果为空闲,则转入步骤110 ;步骤110,向测试程序返回测试仪器正空闲的信息,并且修改状态信息表,将对应测试仪器的状态改为“正在使用”状态;步骤111,当测试仪器是多通道仪器时,判断指定通道是否正空闲,如果空闲则转入步骤113,否则转入步骤112进行处理;步骤112,向测试程序返回测试仪器通道忙信息;步骤113,如果指定通道是空闲的,向测试程序返回通道空闲的信息;步骤114,修改状态信息表,将对应测试仪器的指定通道的状态改为“正在使用”状态。可选地,测试程序访问测试仪器的步骤具体包括:步骤201,创建一个代理组件对象,如果测试程序要访问测试仪器,首先向测试资源管理器组件申请操作该测试仪器;步骤202,调用代理组件对象方法,申请访问指定仪器,在申请方法中传入仪器名称和通道索引参数;步骤203,接收方法返回信息;步骤204,判断返回消息是否是测试仪器空闲或测试仪器通道空闲,如果是表示当前测试仪器和通道正在空闲,可以使用;否则表示测试仪器正忙,需要等待,然后循环向代理组件重新申请使用测试仪器,直到测试仪器状态变为空闲;步骤205,调用测试仪器的驱动程序访问测试仪器;步骤206,当使用测试仪器完成测试工作后,需要调用代理组件对象相应方法来释放仪器。可选地,所述接收方法返回信息的步骤具体为,采用同步调用的方式,阻塞当前线程,直到接收到返回信息。可选地,所述接收方法返回信息的步骤具体为,采用异步调用的方式,传入回调函数名称,当有消息返回时,直接调用回调函数。本发明的有益效果是:(I)用户可以简单的、快速的开发出能够有序且有效的访问测试仪器资源的测试程序,不仅支持多线程并行测试仪器访问,而且支持多进程并行测试仪器访问,有效的利用了系统的仪器资源,极大的节省了硬件成本;(2)简单的利用图形界面程序修改配置就可以实现测试仪器的添加和更换,而不需要修改测试程序,也就是说本方法具有极好的可扩展性、可配置性、仪器互换性。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为现有的测试系统的结构示意图;图2为本发明一种支持并行测试的测试资源管理方法的结构示意图;图3为本发明一种支持并行测试的测试资源管理方法的进程间通信的结构示意图;图4为本发明一种支持并行测试的测试资源管理方法的流程图;图5为本发明一种支持并行测试的测试资源管理方法的测试程序的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明提出了一种支持并行测试的测试资源管理方法,本方法的体系结构如图2所示,在该结构中包括如下部分:承载服务器21、测试资源管理器组件22、资源配置文件23和测试资源配置编辑器24。下面详细阐述各个部分:测试资源管理器组件22负责管理系统中所有测试资源,装载资源配置文件23作为系统测试资源的初始化状态,并在此基础上管理测试资源的动态信息。测试程序11向它申请访问测试仪器14,根据所申请访问的测试仪器14是否空闲,反馈测试程序11是否可以访问。测试资源管理器组件22运行在独立进程中,而不是普通的COM组件。这样,测试资源管理器组件22才能够与多个测试程序进程进行交互,掌握系统中所有测试仪器的运行状态,而不是某个进程使用测试仪器的状态。承载服务器21为测试资源管理器组件22的宿主程序,可以是普通的Windows应用程序或控制台应用程序,也可以封装成为Windows服务的方式。承载服务器21主要功能是承载测试资源管理器组件22,利用信道实现进程间的通信。优选地,承载服务器采用单例模式运行,保证只有一个进程运行。资源配置文件23为一个XML文件,保存了系统中所有测试资源的静态信息,比如:仪器的程控地址、仪器的通道数、驱动程序文件等信息。测试资源配置编辑器24为一个Windows应用程序,主要功能是以图形化界面编辑资源配置文件,修改系统中所有测试资源的静态信息。系统中测试资源的运行状态信息是在静态信息的基础上加入多个动态描述信息来实现的。系统的静态信息包括系统中的所有软、硬件测试资源的信息,被保存在资源配置文件23中。当测试资源管理器服务器程序启动时,实例化测试资源管理器组件22,测试资源管理器组件22装载资源配置文件23,载入文件中的信息构建出测试资源的初始状态。这时,系统中的所有测试仪器14都是空闲状态。当一个测试程序向测试资源管理器组件22申请访问某个测试仪器时,测试资源管理器组件22向测试程序返回“空闲”的信息,并修改该测试仪器状态为“正在使用”状态。如果这时另一个测试程序向测试资源管理器组件22申请访问这个测试仪器时,测试资源管理器组件22向测试程序返回“正在使用”的信息,测试程序将停下来等待该测试仪器的释放。当测试程序使用完测试仪器后,向测试资源管理器组件22释放该测试仪器,测试资源管理器组件22修改该测试仪器的状态为“空闲”状态。通过这种方式,测试资源管理器组件22有效的管理了系统中测试资源的使用情况,将测试程序对测试仪器的并行访问转变为顺序访问,从而支持了系统级的并行测试,使得多个测试程序可以有序的访问仪器,提高了测试效率。而且,管理的动态信息是在静态信息的基础上,扩充了运行状态信息实现。静态信息是保存在资源配置文件中,而动态信息是内存中的数据,并不会被保存到文件中。优选地,本发明一种支持并行测试的测试资源管理方法的体系结构中还包括代理组件,测试程序实现和测试资源管理器组件通信,简化系统级资源管理。如图3所示,测试资源管理器组件22单独的运行在测试资源管理器服务器进程31中,而测试程序11运行在测试程序进程32中,即测试程序11和测试资源管理器组件22不是在一个进程内,所以测试程序11只能通过进程间通信的方式同测试资源管理器组件22进行通信。因为跨进程通信涉及到信道34、格式化程序33等技术细节,如果直接在测试程序11中实现进程间通信,会使得测试程序非常的复杂。代理组件35具有同测试资源管理器组件22相同的接口,利用格式化程序33和信道34,实现了同测试资源管理器组件22的通信。代理组件35可以被看作测试资源管理器组件22在测试程序11中的一个影子,测试程序11调用代理组件35中的方法实质上就是调用测试资源管理器组件22的方法。因为两者具有相同的接口,所以测试程序11丝毫感觉不到测试资源管理器组件22运行在单独的进程中。测试资源管理器组件22由一个单例模式的应用程序(即承载服务器)承载,也就是系统中只有一个测试资源管理器组件22运行。每个测试程序通过进程间通信的方式同测试资源管理器组件22交互,这样测试资源管理器组件22就变成了多个进程访问测试仪器的仲裁者,从而不仅支持多线程测试仪器访问,而且支持多进程测试仪器访问的并行管理。本发明一种支持并行测试的测试资源管理方法的流程图如图4所示,包括如下步骤:步骤101,在测试资源管理器服务器程序启动时,创建测试资源管理器组件,并读入资源配置文件;步骤102,解析XML文件,将资源配置文件中信息提取出来;步骤103,根据提取出来的信息,构造测试仪器状态信息表的初始值,该信息表不但包括了系统中软、硬件测试资源的静态信息,比如:硬件的程控地址、驱动的路径、硬件的通道数等信息,而且包含了关于仪器的动态信息,比如:硬件通道是否空闲等信息;步骤104,等待测试仪器发送过来的请求消息,当新消息到来后,根据请求的不同,做出不同处理;步骤105,首先判断请求是否是申请测试仪器,如果判断为真,则再继续判断测试仪器是否是多通道仪器;如果判断为否,则再继续判断请求是否是释放测试仪器;步骤106,判断请求是否是释放测试仪器,如果判断为真,则修改状态信息表;步骤107,根据测试仪器是否为多通道仪器,如果测试仪器为多通道仪器,则将测试仪器中对应通道的状态改成“空闲”状态;如果测试仪器为单通道仪器,则将测试仪器的状态改为“空闲”状态;步骤108,当测试仪器通道数大于I时,则该测试仪器为多通道仪器;如果判断为真,则查看继续查看指定的通道是否空闲;否则,直接查看测试仪器是否空闲;步骤109,查看指定仪器的状态是否为“空闲”状态,如果为空闲,则转入步骤110 ;步骤110,向测试程序返回测试仪器正空闲的信息,并且修改状态信息表,将对应测试仪器的状态改为“正在使用”状态;步骤111,当测试仪器是多通道仪器时,判断指定通道是否正空闲,如果空闲则转入步骤113,否则转入步骤112进行处理;步骤112,向测试程序返回测试仪器通道忙信息;步骤113,如果指定通道是空闲的,向测试程序返回通道空闲的信息;步骤114,修改状态信息表,将对应测试仪器的指定通道的状态改为“正在使用”状态。其中,测试程序访问测试仪器的流程图如图5所示,包括如下步骤:步骤201,创建一个代理组件对象,如果测试程序要访问测试仪器,首先需要向测试资源管理器组件申请操作该测试仪器;步骤202,调用代理组件对象方法,申请访问指定仪器,在申请方法中传入仪器名称和通道索引等参数;步骤203,接收方法返回信息,在这一步骤中,可以采用同步调用的方式,即阻塞当前线程,直到接收到返回信息;也可以采用异步调用的方式,传入回调函数名称,当有消息返回时,直接调用回调函数,不需要阻塞当前线程;步骤204,判断返回消息是否是测试仪器空闲或测试仪器通道空闲,如果是表示当前测试仪器和通道正在空闲,可以使用;否则表示测试仪器正忙,需要等待,然后循环向代理组件重新申请使用测试仪器,直到测试仪器状态变为空闲;步骤205,调用测试仪器的驱动程序访问测试仪器;步骤206,当使用测试仪器完成测试工作后,需要调用代理组件对象相应方法来释放仪器。利用本发明的一种支持并行测试的测试资源管理方法,用户可以简单的、快速的开发出能够有序且有效的访问测试仪器资源的测试程序,不仅支持多线程并行测试仪器访问,而且支持多进程并行测试仪器访问,有效的利用了系统的仪器资源,极大的节省了硬件成本;简单的利用图形界面程序修改配置就可以实现测试仪器的添加和更换,而不需要修改测试程序,也就是说本方法具有极好的可扩展性、可配置性、仪器互换性。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种支持并行测试的测试资源管理方法,其特征在于,包括以下步骤: 步骤101,在测试资源管理器服务器程序启动时,创建测试资源管理器组件,并读入资源配置文件; 步骤102,解析XML文件,将资源配置文件中信息提取出来; 步骤103,根据提取出来的信息,构造测试仪器状态信息表的初始值; 步骤104,等待测试仪器发送过来的请求消息,当新消息到来后,根据请求的不同,做出不同处理; 步骤105,首先判断请求是否是申请测试仪器,如果判断为真,则再继续判断测试仪器是否是多通道仪器;如果判断为否,则再继续判断请求是否是释放测试仪器; 步骤106,判断请求是否是释放测试仪器,如果判断为真,则修改状态信息表; 步骤107,根据测试仪器是否为多通道仪器,如果测试仪器为多通道仪器,则将测试仪器中对应通道的状态改成“空闲”状态;如果测试仪器为单通道仪器,则将测试仪器的状态改为“空闲”状态; 步骤108,当测试仪器通道数大于I时,则该测试仪器为多通道仪器;如果判断为真,则查看继续查看指定的通道是否空闲;否则,直接查看测试仪器是否空闲; 步骤109,查看指定仪器的状态是否为“空闲”状态,如果为空闲,则转入步骤110 ;步骤110,向测试程序返回测试仪器正空闲的信息,并且修改状态信息表,将对应测试仪器的状态改为“正在使用”状态;` 步骤111,当测试仪器是多通道仪器时,判断指定通道是否正空闲,如果空闲则转入步骤113,否则转入步骤112进行处理; 步骤112,向测试程序返回测试仪器通道忙信息; 步骤113,如果指定通道是空闲的,向测试程序返回通道空闲的信息; 步骤114,修改状态信息表,将对应测试仪器的指定通道的状态改为“正在使用”状态。
2.如权利要求1所述的支持并行测试的测试资源管理方法,其特征在于,测试程序访问测试仪器的步骤具体包括: 步骤201,创建一个代理组件对象,如果测试程序要访问测试仪器,首先向测试资源管理器组件申请操作该测试仪器; 步骤202,调用代理组件对象方法,申请访问指定仪器,在申请方法中传入仪器名称和通道索引参数; 步骤203,接收方法返回信息; 步骤204,判断返回消息是否是测试仪器空闲或测试仪器通道空闲,如果是表示当前测试仪器和通道正在空闲,可以使用;否则表示测试仪器正忙,需要等待,然后循环向代理组件重新申请使用测试仪器,直到测试仪器状态变为空闲; 步骤205,调用测试仪器的驱动程序访问测试仪器; 步骤206,当使用测试仪器完成测试工作后,需要调用代理组件对象相应方法来释放仪器。
3.如权利要求2所述的支持并行测试的测试资源管理方法,其特征在于,所述接收方法返回信息的步骤具体为,采用同步调用的方式,阻塞当前线程,直到接收到返回信息。
4.如权利要求2所述的支持并行测试的测试资源管理方法,其特征在于,所述接收方法返回信息的步骤具体为,采用异步调用的方式,传入回调函数名称,当有消息返回时,直接调用回调函数。 ·
全文摘要
本发明提出了一种支持并行测试的测试资源管理方法,解决了现有技术中多个测试程序同时访问同一测试仪器时造成测试仪器状态紊乱的问题。利用本发明的一种支持并行测试的测试资源管理方法,用户可以简单的、快速的开发出能够有序且有效的访问测试仪器资源的测试程序,不仅支持多线程并行测试仪器访问,而且支持多进程并行测试仪器访问,有效的利用了系统的仪器资源,极大的节省了硬件成本;简单的利用图形界面程序修改配置就可以实现测试仪器的添加和更换,而不需要修改测试程序,也就是说本方法具有极好的可扩展性、可配置性、仪器互换性。
文档编号G06F13/12GK103164360SQ20131006025
公开日2013年6月19日 申请日期2013年2月26日 优先权日2013年2月26日
发明者胡宝刚 申请人:中国电子科技集团公司第四十一研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1