CN101615159A - 离线测试***及其本地数据管理方法及相应的装置 - Google Patents
离线测试***及其本地数据管理方法及相应的装置 Download PDFInfo
- Publication number
- CN101615159A CN101615159A CN200910161539A CN200910161539A CN101615159A CN 101615159 A CN101615159 A CN 101615159A CN 200910161539 A CN200910161539 A CN 200910161539A CN 200910161539 A CN200910161539 A CN 200910161539A CN 101615159 A CN101615159 A CN 101615159A
- Authority
- CN
- China
- Prior art keywords
- subtask
- test
- module
- data capsule
- test case
- 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.)
- Granted
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明披露了一种离线测试***及其本地数据管理方法及相应的装置,该***包括依次连接的离线测试控制单元、含数据容器的数据容器管理器以及服务器;其中,离线测试控制单元向数据容器管理器发出控制命令;数据容器管理器针对离线测试控制单元的控制命令,从服务器下载测试任务到数据容器中,并生成及保存用于访问测试任务的索引文件;服务器保存及管理离线测试***的测试任务的数据。本发明为离线测试***庞大的本地库文件管理提供组件化的解决方案,即以组件的形式访问、编辑、上传测试子任务等,并提供了丰富的操作接口,同时便于***的维护。
Description
技术领域
本发明涉及软件测试领域,尤其涉及离线测试***及其本地数据管理方法及相应的装置。
背景技术
通常软件测试过程涉及到测试需求分析、测试方案设计、测试用例设计以及测试用例的执行等环节。在软件测试过程中,有效的测试管理***(工具)是必不可少的。目前,这种测试管理工具是采用分布式架构,譬如是浏览器/服务器(B/S,Browser/Server)模式,或是客户端/服务器(C/S,Client/Server)模式。这种分布式架构的测试管理工具,客户端需要通过网络实时访问远程服务器,从远程服务器获取大量数据到客户端。在客户端很多而出现网络拥挤的情况下,网络时延、稳定性及数据的正确性等均难以得到保证。尤其是在测试领域,会由于这些问题导致测试效率降低,从而延缓测试执行进度。当测试不能及时覆盖软件***,从而及时发现软件***中潜藏的故障,软件的质量也就不能得到保障。
为了应对软件测试的这些问题,可采用离线测试模式进行软件测试。具体来说是客户端一次从服务器下载需要数据(比如测试用例),然后在本地执行下载的测试用例,需要的时候再把本地执行测试用例后产生的信息上传到服务器。显然,这种离线模式在解决网络时延以及降低服务器压力问题的同时,也提高了软件测试的执行效率。
关于软件测试的离线测试的解决方案,专利CN101119239(一种离线的测试执行构造方法及其装置)做了详细介绍。该专利中表述的离线测试***主要包括:登陆模块、导出模块、执行模块、上传模块以及日志模块。首先,用户登陆服务器,获取到用户的基本配置信息;然后从服务器下载该用户的测试任务以及该测试任务下的测试用例到本地客户端,并创建相应的库文件;还原本地的测试任务,并为用户提供执行的测试用例以及测试用例详细信息;在需要时上传测试用例执行信息到服务器。
一般情况下,测试任务所包含的测试用例少则几千条,多则上万条。如此多的测试用例下载到本地,则本地数据(测试用例)的管理,诸如数据组织、界面显示、监控、内存管理等,就显得尤为重要。比如,库文件的粒度如果很大,则文件解析耗时,并且给检索、保存等带来问题,更大的隐患是,一旦发生异常,可能会造成本地执行数据丢失或者文件丢失,从而遭受巨大的损失;如果文件粒度很小,当***要在不同文件之间进行检索、或其它处理等,又会带来诸多不便;如果在访问时加载文件,则又会导致文件解析的重复操作。还有,测试人员在本地执行测试用例时,将测试用例执行信息自动保存及自动上传,以及对库文件的监控与卸载等,也显得很重要。而这些具体的问题,在该专利中并没有给出具体的方案。
如果不能对下载到本地的库文件进行有效地管理,随着测试的不断进展,库文件将会越来越庞大,因此这种离线测试模式对本地数据的管理问题会越来越突显。
发明内容
本发明所要解决的技术问题是提供一种离线测试***及其本地数据管理方法及相应的装置,能够有效地管理下载到本地的数据。
为了解决上述技术问题,本发明提供了一种离线测试***,包括依次连接的离线测试控制单元、含数据容器的数据容器管理器以及服务器;其中:
离线测试控制单元,用于向数据容器管理器发出控制命令;
数据容器管理器,用于针对离线测试控制单元的控制命令,从服务器下载测试任务到数据容器中,并生成及保存用于访问测试任务的索引文件;
服务器,用于保存及管理离线测试***的测试任务的数据。
进一步地,
数据容器管理器采用目录加内容的二级索引模式生成索引文件,来管理下载到本地的测试任务数据;亦即将每个测试任务细分为多个子任务,其中每个子任务包含多个测试用例,子任务采用目录进行索引访问,测试用例采用目录下的内容进行索引访问。
进一步地,
离线测试控制单元,还用于将数据容器管理器提供的索引文件加载在用户界面上供用户读取,根据用户在用户界面上选择的子任务向数据容器管理器发出访问子任务请求,并将数据容器管理器返回的子任务和/或测试用例加载在用户界面上供用户读取和/或选择执行;
数据容器管理器,还用于将生成的索引文件提供给离线测试控制单元;针对访问子任务请求并依据索引文件的目录从数据容器中索引到用户选择的子任务,和/或依据目录下的内容解析用户选择的子任务中的测试用例,并将子任务和/或测试用例返回给离线测试控制单元。
进一步地,
数据容器管理器,还用于为子任务和其测试用例配置属性字段,并配置用于标记子任务和其测试用例是否修改的标签;根据离线测试控制单元发出的编辑子任务请求,将相应的子任务和其测试用例的属性字段进行更新,并将相应的标签标记为已修改,同时生成上传属性字段,并向离线测试控制单元返回编辑子任务响应;针对离线测试控制单元发出的上传子任务命令,依据上传属性字段将更新的子任务和/或测试用例上传到所述服务器中,并向离线测试控制单元返回上传日志;
离线测试控制单元,还用于根据用户在用户界面上选择编辑的子任务和/或测试用例发出编辑子任务请求;根据数据容器管理器返回的编辑子任务响应,向容器管理器发出上传子任务命令。
进一步地,
数据容器管理器,在将子任务和/或测试用例返回给离线测试控制单元的同时,或者在将上传属性字段返回给离线测试控制单元的同时,还修改相应的子任务的最后访问时间戳;数据容器管理器还用于对加载在数据容器中的子任务进行监控,一旦发现有超时未使用或未被访问的子任务便对其进行删除,以保证数据容器的存储空间的利用率。
为了解决上述技术问题,本发明提供了一种应用于离线测试***的数据容器管理装置,包括依次连接的目录管理模块和测试子任务模块,其中:
目录管理模块,用于根据离线测试***的控制命令,从服务器下载测试任务到本地,并生成及保存用于索引测试任务的索引文件;
测试子任务模块,用于将下载到本地的测试任务添加到索引文件中,通过该索引文件对测试任务进行访问。
进一步地,
目录管理模块,采用目录加内容的二级索引模式生成该索引文件;
测试子任务模块,将每个测试任务细分为多个子任务,其中每个子任务包含多个测试用例,对子任务采用目录进行索引,对测试用例采用目录下的内容进行索引。
进一步地,该装置还包括与测试子任务模块连接的子任务解析模块,其中:
目录管理模块,还用于将生成的索引文件提供给离线测试***;
测试子任务模块,还用于针对离线测试***发出的访问子任务请求并依据目录索引到用户选择的子任务,和/或为子任务解析模块提供索引的子任务,并将索引的子任务和/或子任务解析模块返回的测试用例返回给离线测试***;
子任务解析模块,用于依据目录下的内容解析子任务中的测试用例,并将解析的测试用例返回给测试子任务模块。
进一步地,该装置还包括分别与测试子任务模块连接的子任务编辑模块和子任务上传模块,其中:
测试子任务模块,还用于为子任务和其测试用例配置属性字段,并配置用于标记子任务和其测试用例是否修改的标签;针对离线测试***发出的编辑子任务请求,为子任务编辑模块提供索引的子任务和/或测试用例;针对离线测试***发出的子任务上传命令,并根据子任务编辑模块返回的更新的属性字段和标记的标签生成上传属性字段,并提供给子任务上传模块;将子任务上传模块返回的上传日志返回给离线测试***;
子任务编辑模块,用于对测试子任务模块提供的子任务和/或测试用例的属性字段进行相应地更新,并将相应的标签标记为已修改,同时将更新的属性字段和标记的标签返回给测试子任务模块;
子任务上传模块,用于将测试子任务模块提供的上传属性字段将经过修改的子任务和其测试用例上传到所述服务器,并向测试子任务模块返回上传日志。
进一步地,该装置还包括与测试子任务模块连接的子任务监控模块,其中:
测试子任务模块,还用于在将索引的子任务和/或测试用例返回给离线测试***的同时,或者,在向子任务上传模块提供上传属性字段的同时,还修改相应的子任务和/或测试用例的最后访问时间戳,并将索引文件中的子任务和/或测试用例提供给子任务监控模块;将子任务监控模块返回的被标记的子任务和/或测试用例从索引文件中删除;
子任务监控模块,用于根据子任务和/或测试用例的最后访问时间戳对索引文件中的子任务进行监控,一旦发现有超时未使用或未被访问的子任务和/或测试用例便对其进行标记并返回给测试子任务模块。
为了解决上述技术问题,本发明提供了一种应用于离线测试***的本地数据管理方法,涉及离线测试***中的数据容器管理器,该方法包括:
数据容器管理器从服务器将用户的测试任务下载到本地,并将下载到本地的测试任务添加到在本地生成及保存一索引文件中,通过该索引文件对测试任务进行访问。
进一步地,
数据容器管理器采用目录加内容的二级索引模式生成及保存索引文件,亦即将每个测试任务细分为多个子任务,其中每个子任务包含多个测试用例,子任务采用目录进行索引访问,测试用例采用目录下的内容进行索引访问。
进一步地,
离线测试***将该索引文件加载在用户界面上供用户读取,根据用户在用户界面上选择的子任务向数据容器管理器发出访问子任务请求;
数据容器管理器依据目录索引子任务,和/或依据目录下的内容索引到测试用例,并将索引的子任务和/或测试用例通过离线测试***加载在用户界面上供用户读取和/或选择执行。
进一步地,该方法还包括:
数据容器管理器为子任务和其测试用例配置属性字段,并配置用于标记子任务和其测试用例是否修改的标签;
离线测试***根据用户在用户界面上选择编辑的子任务和/或测试用例向数据容器管理器发出编辑子任务请求;数据容器管理器根据该编辑子任务请求将相应的任务和其测试用例的属性字段进行更新,并将相应的标签标记为已修改,同时生成上传属性字段,并向离线测试***返回编辑子任务响应;
离线测试***根据编辑子任务响应,向数据容器管理器发出上传子任务命令;数据容器管理器针对上传子任务命令,依据上传属性字段将更新的子任务和/或测试用例上传到服务器中,并向离线测试***返回上传日志。
进一步地,数据容器管理器在将子任务和/或测试用例返回给离线测试***的同时,或者在将上传属性字段返回给离线测试***的同时,还修改相应的子任务的最后访问时间戳;该方法还包括:
数据容器管理器对加载在数据容器中的子任务进行监控,一旦发现有超时未使用或未被访问的子任务便对其进行删除,以保证数据容器的存储空间的利用率。
本发明提供的离线测试***及其本地数据管理方法及相应的装置,为离线测试***庞大的本地库文件管理提供组件化的解决方案。本地数据管理装置即数据容器其“目录+内容”的二级索引数据的管理模式,有效地控制了库文件的加载粒度,同时,也有效地提高了本地测试子任务以及测试用例的处理效率,在任务下载时,可以先下载任务目录,然后根据目录有选择的下载测试用例内容(子任务及其中的测试用例),从而降低了服务器一次全部下载数据的负担;通过数据容器的监控功能,降低了本地数据丢失的风险,并使得承载数据容器的内存更能被有效利用。通过对测试用例采用属性标签,有效地提高了数据上传效率,尤其是在批量数据上传的情况下。本发明以组件的形式进行测试子任务访问、编辑、上传等,为离线测试***提供了丰富、集成的操作接口,同时便于***的维护。
附图说明
图1是本发明实施例的对本地数据进行管理的数据容器管理器在离线测试***中的定位示意图;
图2是本发明的离线测试***实施例的结构框图;
图3是图2所示实施例中的数据容器管理器实施例的结构示意图;
图4是图3所示数据容器管理器实施例的二级索引模式示意图;
图5是二级索引模式的静态类图;
图6本发明实施例的数据容器管理器与离线测试***控制单元的交互流程图。
具体实施方式
以下结合附图和优选实施例对本发明的技术方案进行详细地阐述。以下实施例仅仅用于说明和解释本发明,而不构成对本发明技术方案的限制。
为了解决离线测试***需管理大量的本地文件所带来的问题,本发明提供了一种离线测试***实施例,该***通过在原有的离线测试***中增加一个数据容器管理器实现的,通过图1对该***逻辑结构的展现,可以看出增加的数据容器管理器在离线测试***中的逻辑定位。如图1所示,由上传组件和下传组件构成数据访问层,由用户界面GUI构成人机交互层,通过在数据访问层和人机交互层之间添加由该数据容器管理器构成的数据管理层,以实现离线测试***对下载到本地的测试用例数据的有效管理。
本发明提供的离线测试***其实施例的结构如图2所示,该***200包括依次连接的离线测试控制单元210、含数据容器的数据容器管理器220以及服务器230;其中:
离线测试控制单元210,用于向数据容器管理器220发出控制命令,或发出访问测试任务数据请求,并将数据容器管理器220返回的测试任务数据加载在用户界面上供用户读取和/或选择执行;或者,将用户在用户界面上编辑修改的测试任务数据通过编辑修改请求发向数据容器管理器220;
数据容器管理器220,用于根据离线测试控制单元210的控制命令,从服务器230下载测试任务数据到数据容器中,并生成及保存测试任务数据的索引文件;或将在数据容器中编辑修改的测试任务数据上传到服务器230中,并生成上传日志;根据离线测试控制单元210的访问测试任务数据请求,依据索引文件从数据容器中索引到相应的测试任务数据,并返回给离线测试控制单元210,或根据离线测试控制单元210的编辑修改请求将在用户界面上编辑修改的测试任务数据写入到数据容器中;
数据容器管理器220采用“目录+内容”的索引模式生成索引文件,来管理下载到本地的测试任务数据(即库文件),如图3所示;每个测试任务又细分为一系列子任务,称为目录(Profile)。每个子任务又包含一系列的测试用例,称为内容(Content)。离线测试控制单元210将用户在用户界面上发出的测试子任务执行命令传递给数据容器管理器220,数据容器管理器220解析用户选择的子任务,并将相应的用户测试用例数据返回给离线测试控制单元210;离线测试控制单元210根据从数据容器管理器220获取到的测试用例以子任务的形式加载到用户界面供用户执行测试子任务用。
数据容器管理器220还用于对加载在数据容器中的测试任务数据进行监控,一旦发现有超时未使用或未被访问的测试任务数据便进行删除,以保证数据容器的数据存储空间的利用率。
服务器230,用于保存和管理离线测试***的测试任务数据。
图4表示的是图2中所示的数据容器管理器220的一个实施例的结构,该数据容器管理器包括依次连接的目录管理模块、测试子任务模块,还包括与测试子任务模块连接的子任务解析模块,其中:
目录管理模块,用于将下载在数据容器中的测试任务数据分成多个子任务以及每个子任务下属的测试用例,并形成含有目录和内容的子任务列表供给离线***的用户选择;根据离线测试控制单元的子任务访问请求,将在子任务列表内查找到的子任务返回给离线测试控制单元,供用户读取;
测试子任务模块,用于将下载到本地的测试任务添加到子任务列表中,通过子任务列表对下载的测试任务进行管理;针对离线测试控制单元发出的访问子任务请求并根据据目录索引到用户选择的子任务,和/或为子任务解析模块提供索引的子任务,并将索引的子任务和或子任务解析模块返回的测试用例返回给离线测试控制单元,然后修改子任务最后访问时间戳;
子任务解析模块,用于解析测试子任务模块索引的子任务,并将其中测试用例数据和详细信息提供给离线***的用户,供用户访问、编辑或执行。
数据容器管理器220还包括与测试子任务模块连接的子任务编辑模块和子任务上传模块,其中:
测试子任务模块,还用于为子任务和其测试用例配置属性字段,并通过标签解析器配置用于标记子任务和其测试用例是否修改的标签;针对离线测试控制单元发出的编辑子任务请求,为子任务编辑模块提供索引的子任务和/或测试用例;针对离线测试控制单元发出的子任务上传命令,并根据子任务编辑模块返回的更新的属性字段和标记的标签生成属性字段列表提供给子任务上传模块;将子任务上传模块返回的上传日志返回给离线测试控制单元;
同时生成上传属性字段,并向所述离线测试控制单元返回编辑子任务响应;针对所述离线测试控制单元发出的上传子任务命令,依据所述上传属性字段将更新的子任务和/或测试用例上传到所述服务器中,并向所述离线测试控制单元返回上传日志;
子任务编辑模块,用于对测试子任务模块提供的上传属性字段进行相应地更新,并将相应的标签标记为已修改,同时将更新的属性字段和标记的标签返回给测试子任务模块;为子任务配置测试故障单,并提供测试编辑辅助信息;
子任务上传模块,用于将测试子任务模块提供的属性字段列表将经过修改的子任务和其测试用例上传到服务器,并向测试子任务模块返回上传日志。
数据容器管理器220还包括与测试子任务模块连接的子任务监控模块,其中:
所述测试子任务模块,还用于在将索引的所述子任务和/或所述测试用例返回给所述离线测试***的同时,或者在向所述子任务上传模块提供属性字段列表的同时,还修改相应的子任务和/或测试用例的最后访问时间戳,并将目录中的子任务和/或测试用例提供给子任务监控模块;将子任务监控模块返回的被标记的子任务和/或测试用例从目录中删除;
子任务监控模块,用于根据子任务和/或测试用例的最后访问时间戳对目录中的子任务进行监控,一旦发现有超时未使用或未被访问的子任务和/或测试用例便对其进行标记并返回给测试子任务模块。
本发明针对上述***实施例,还相应地提出离线测试方法实施例,包括如下步骤:
(1)根据用户的登陆信息,从服务器将该用户的测试任务下载到本地,并在本地生成及保存测试任务索引文件;
该测试任务索引文件采用“目录+内容”的索引模式,如前所述的含有目录(索引子任务)和内容(索引测试用例)的子任务列表。
(2)通过离线测试***的用户界面将该索引文件中的目录和内容提供给用户;
(3)根据用户在该目录中选择的子任务,将其内容即测试用例以子任务形式加载到用户界面供用户读取;
(4)根据在用户界面上的测试任务执行命令解析用户选择的子任务,并提供给用户测试用例相关数据,供用户执行测试任务用或进行编辑修改用。
上述方法实施例具体包括如下一些流程:数据容器访问(Acess)流程、数据容器编辑(Edition)流程、数据容器监控(Monitor)流程以及数据容器上传(Upload)流程。以下将对其一一进行详细阐述。
数据容器访问(Acess)流程,即采用“目录+内容”的模式访问数据容器中的测试任务数据,并实现数据容器内容动态加载功能,具体步骤如下:
A1、离线测试控制单元发出测试任务数据的访问申请,并提交子任务索引到数据容器管理器;
A2、数据容器管理器根据子任务索引查询子任务列表中的目录,如查询到相应的子任务则返回该子任务,并修改该子任务最后访问的时间戳;否则直接转到步骤A3;
A3、数据容器管理器在测试任务数据(库文件)中查询是否存在该子任务,如存在则加载该库文件到数据容器并解析,并返回该子任务到离线测试控制单元,并修改该子任务访问时间戳;如不存在则直接转到步骤A4;
A4、提示离线测试控制单元该测试子任务不存在,返回失败。
上述对数据容器的访问,实现了测试子任务的一级索引功能,更进一步地,可以实现基于测试子任务查找测试用例的二级索引功能,具体步骤如下:
A21、离线测试控制单元将获取到的子任务显示在用户界面上;
A22、用户在该界面上输入测试用例索引,由数据容器管理器根据离线测试控制单元传输的该测试用例索引在相应的子任务下查找相应的测试用例,如果查找到则转步骤A23、否则向离线测试控制单元返回查找失败信息;
A23、向离线测试控制单元返回查找到的测试用例,并修改子任务最后访问时间戳。
数据容器测试用例编辑(Eition)流程,具体步骤如下:
E1、离线测试控制单元将在用户界面上输入的子任务索引及测试用例索引传输给数据容器管理器,数据容器管理器如在子任务列表中查询到相应的子任务则转步骤E2;否则转步骤E4;
E2、根据测试用例索引在子任务列表中若查询到相应的测试用例则转步骤E3,否则转步骤E6;
E3、获取测试用例属性字段,编辑修改该属性字段的值;
E4、修改该属性字段的标签;
E5、修改该子任务的标签以及最后访问时间戳;返回编辑修改后的测试用例到离线测试控制单元,退出到离线测试***;
E6、返回编辑失败信息,退出到离线测试***。
其中,对上述步骤E4、进一步提供属性标签的修改流程,具体步骤如下:
E41、在初始化时,建立一个属性与该属性所在位组成的散列表,并在该散列表中为每个测试用例设置一个采用0(表示未修改)、1(表示已修改)组成的属性标签串,其初始值为全0;属性标签串中每一位对应一个属性字段,当该位值为1时,表示该属性字段被编辑修改过;
E42、当编辑修改测试用例属性字段的值时,获取查询散列表中该测试用例的标签串,并更新标签串中相应的标签位。
数据容器监控(Monitor)流程,包括周期保存监控与子任务空闲监控,具体步骤如下:
M1、启动子任务监控线程,获取子任务列表,通过该子任务列表遍历数据容器中的子任务;
M2、获取数据容器中的子任务,读取其最后一次访问时间戳,并与当前时间进行比较,如果时间差小于预先设置的最大空闲周期则转步骤M3,否则转步骤M4;
M3、读取最后一次保存时间戳,并与当前时间进行比较,如果时间差小于预先设置的最大保存周期则转步骤M6,否则转步骤M5;
最后一次保存时间是指***定期自动对子任务及其测试用例进行保存的时间。
M4、关闭该子任务,并从数据容器将该子任务卸载,转步骤M2;
M5、获取子任务内容属性标签串,如果标签位有修改则保存标签串,并修改最后一次保存时间戳,转步骤M6;
M6、延时一个监控周期,获取下一个子任务,转步骤M2。
数据容器上传(Upload)流程,根据属性标签串决定需要上传的属性数据,具体步骤如下:
U1、判断用户是否登陆到服务器,如已登陆则转步骤U2、否则退出到离线测试***;
U2、启动数据容器上传线程,获取子任务列表,通过该子任务列表遍历数据容器中子任务;
U3、获取子任务,读取该子任务属性标签,如果该属性标签修改过则转步骤U4,没有修改过则判断是否还有待处理子任务,有则转步骤U3,没有则转步骤U5、
U4、上传该子任务,并记录子任务上传日志,修改该子任务的访问时间戳,转步骤U3;
U5、退出容器上传线程,移交上传日志到离线测试控制单元继续处理。
其中,上述子任务上传步骤U4,进一步还包括:
U41、输入该子任务,对该子任务进行解析处理;
U42、获取已经修改的子任务列表,遍历该列表继续步骤U43;
U43、从子任务列表获取测试用例,为空则退出,不为空则转步骤U44;
U44、获取测试用例属性标签位;
U45、根据对该测试用例属性标签位的解析,生成测试用例上传字段列表;
U46、遍历该上传字段列表,上传测试用例的属性新值到服务器;上传成功则记录上传日志;转U43继续处理下一个测试用例。
其中,上述步骤U45,进一步包括:
U451、构造测试用例上传字段列表,列表采用“字段名+字段值”构造,其中字段名、字段值内容如表1所示,转步骤U452;
表1
字段名 | 字段值 |
status | Pass:表示测试用例执行通过;Fail:表示测试用例执行未通过;NoRun:表示表示测试用例未执行 |
tester | 张三:测试者姓名 |
execdate | 2009-5-11:测试执行时间 |
U452、输入属性标签串,解析出测试用例的属性字段;
U453、查询散列表中的标签串,获取被修改的属性字段,并添加到到上传字段列表,添加形式即“字段名+字段值”;
U454、上传成功后将属性标签串复位。
本地库文件可以采用XML(eXtensible Markup Language,可扩展标记语言)进行组织层次化的目录文件及其测试子任务文件。这样可以抽象出XML操作积累接口,比如IBaseXML,其他诸如目录文件(IProfile)、子任务文件(IContent)的解析可以继承该接口定制,如图5所示。数据容器管理的即是由这些类实例化(对象)并解析出来的xml文档(内存数据,或DOM,Document Object Model),通过上述接口可以实现对XML的访问、存储、上传、执行等操作。
当数据容器管理器加载子任务(库文件)生成XML文档后,文档对象作为一个节点添加到其中的测试子任务模块,该模块为该节点创建诸如索引、句柄、最后访问时间,最后保存时间。这些数据,是数据容器监控的核心参考数据,数据容器在启动时,自动创建一个监控线程,监控这些XML文档,实现本地执行自动存储并把XML文档数据丢失风险降到最低。
上述加载到内存的xml文档,除了用于实现本地任务、进行测试用例数据的管理外,进一步实现了修改标签功能,而标签的管理由标签解析器进行。具体步骤如下:
(1)标签解析器初始化解析器散列表,散列表包括属性字段名称和该属性字段所在属性标签串的位置(从1开始),如表2所示。
表2
属性字段 | 标签串位置 | 说明 |
status | 1 | 测试用例状态(Pass,Fail,NoRun) |
tester | 2 | 测试用例执行者姓名 |
version | 3 | 当前用例测试版本 |
execdate | 4 | 测试执行时间 |
bug | 5 | 测试用例发现故障单 |
(2)测试用例设置属性以及属性标签,如:
<ztt type=″case″id=″134″name=″test_123″modify=″N″flag=″00000″;status=″NoRun″tester=″″execdate=″″bug=″″version=″″/ztt>
(3)编辑测试用例,比如设置测试状态status为“Pass“,测试者(Tester)为张三,执行日期(execdate)为2009-5-11,数据容器管理器修改属性值,而标签解析器自动更新属性标签,比如modify=″Y″flag=″11010″。如:
<ztt type=″case″id=″134″name=″test_123″modify=″M″flag=″11010″;status=″Pass″tester=″张三″execdate=″2009-5-11″bug=″″version=″V01″/ztt>
(4)上传测试用例,标签解析器获取测试用例属性字段并解析flag=″11010,获取修改的标签位(即值为1的标签位),根据标签位的值为0或1生成上传字段列表,如表3所示。
表3
字段名 | 字段值 |
status | Pass |
tester | 张三 |
execdate | 2009-5-11 |
(5)根据上传字段列表,调用上传接口进行子任务上传。成功后再由标签解析器复位修改标签,如modify=″N″flag=″00000″。
数据容器管理器作为独立的组件,为离线测试***提供本地数据访问,包括目录管理、测试数据访问、测试数据编辑、测试数据上传等,具体参考图6。上述流程仅是本发明的具体实施例,不构成对发明所述方法以及基于方法提供的装置的任何限制。
Claims (15)
1、一种离线测试***,包括依次连接的离线测试控制单元、含数据容器的数据容器管理器以及服务器;其中:
所述离线测试控制单元,用于向所述数据容器管理器发出控制命令;
所述数据容器管理器,用于针对所述离线测试控制单元的所述控制命令,从所述服务器下载测试任务到所述数据容器中,并生成及保存用于访问测试任务的索引文件;
所述服务器,用于保存及管理所述离线测试***的所述测试任务的数据。
2、按照权利要求1所述的***,其特征在于,
所述数据容器管理器采用目录加内容的二级索引模式生成所述索引文件,来管理下载到本地的测试任务数据;亦即将每个测试任务细分为多个子任务,其中每个子任务包含多个测试用例,所述子任务采用所述目录进行索引访问,所述测试用例采用所述目录下的所述内容进行索引访问。
3、按照权利要求2所述的***,其特征在于,
所述离线测试控制单元,还用于将所述数据容器管理器提供的所述索引文件加载在用户界面上供用户读取,根据用户在所述用户界面上选择的所述子任务向所述数据容器管理器发出访问子任务请求,并将所述数据容器管理器返回的子任务和/或测试用例加载在所述用户界面上供用户读取和/或选择执行;
所述数据容器管理器,还用于将生成的所述索引文件提供给所述离线测试控制单元;针对所述访问子任务请求并依据所述索引文件的所述目录从所述数据容器中索引到用户选择的子任务,和/或依据所述目录下的所述内容解析所述用户选择的子任务中的所述测试用例,并将所述子任务和/或所述测试用例返回给所述离线测试控制单元。
4、按照权利要求3所述的***,其特征在于,
所述数据容器管理器,还用于为所述子任务和其测试用例配置属性字段,并配置用于标记所述子任务和其测试用例是否修改的标签;根据所述离线测试控制单元发出的编辑子任务请求,将相应的所述子任务和其测试用例的所述属性字段进行更新,并将相应的所述标签标记为已修改,同时生成上传属性字段,并向所述离线测试控制单元返回编辑子任务响应;针对所述离线测试控制单元发出的上传子任务命令,依据所述上传属性字段将更新的子任务和/或测试用例上传到所述服务器中,并向所述离线测试控制单元返回上传日志;
所述离线测试控制单元,还用于根据用户在所述用户界面上选择编辑的所述子任务和/或测试用例发出所述编辑子任务请求;根据所述数据容器管理器返回的所述编辑子任务响应,向所述数据容器管理器发出所述上传子任务命令。
5、按照权利要求3或4所述的***,其特征在于,
所述数据容器管理器,在将所述子任务和/或所述测试用例返回给所述离线测试控制单元的同时,或者在将所述上传属性字段返回给所述离线测试控制单元的同时,还修改相应的子任务的最后访问时间戳;所述数据容器管理器还用于对加载在所述数据容器中的子任务进行监控,一旦发现有超时未使用或未被访问的子任务便对其进行删除,以保证所述数据容器的存储空间的利用率。
6、一种应用于离线测试***的数据容器管理装置,包括依次连接的目录管理模块和测试子任务模块,其中:
所述目录管理模块,用于根据所述离线测试***的控制命令,从服务器下载测试任务到本地,并生成及保存用于索引测试任务的索引文件;
所述测试子任务模块,用于将下载到本地的所述测试任务添加到所述索引文件中,通过所述索引文件对所述测试任务进行访问。
7、按照权利要求6所述的装置,其特征在于,
所述目录管理模块,采用目录加内容的二级索引模式生成所述索引文件;
所述测试子任务模块,将每个测试任务细分为多个子任务,其中每个子任务包含多个测试用例,对所述子任务采用所述目录进行索引,对所述测试用例采用所述目录下的所述内容进行索引。
8、按照权利要求7所述的装置,其特征在于,还包括与所述测试子任务模块连接的子任务解析模块,其中:
所述目录管理模块,还用于将生成的所述索引文件提供给所述离线测试***;
所述测试子任务模块,还用于针对所述离线测试***发出的访问子任务请求并依据所述目录索引到用户选择的子任务,和/或为所述子任务解析模块提供索引的所述子任务,并将索引的所述子任务和/或所述子任务解析模块返回的所述测试用例返回给所述离线测试***;
所述子任务解析模块,用于依据所述目录下的所述内容解析所述子任务中的所述测试用例,并将解析的所述测试用例返回给所述测试子任务模块。
9、按照权利要求8所述的装置,其特征在于,还包括分别与所述测试子任务模块连接的子任务编辑模块和子任务上传模块,其中:
所述测试子任务模块,还用于为所述子任务和其测试用例配置属性字段,并配置用于标记所述子任务和其测试用例是否修改的标签;针对所述离线测试***发出的编辑子任务请求,为所述子任务编辑模块提供索引的所述子任务和/或所述测试用例;针对所述离线测试***发出的子任务上传命令,并根据所述子任务编辑模块返回的更新的属性字段和标记的标签生成上传属性字段,并提供给所述子任务上传模块;将所述子任务上传模块返回的上传日志返回给所述离线测试***;
所述子任务编辑模块,用于对所述测试子任务模块提供的所述子任务和/或测试用例的所述属性字段进行相应地更新,并将相应的所述标签标记为已修改,同时将更新的属性字段和标记的标签返回给所述测试子任务模块;
所述子任务上传模块,用于将所述测试子任务模块提供的所述上传属性字段将经过修改的子任务和其测试用例上传到所述服务器,并向所述测试子任务模块返回所述上传日志。
10、按照权利要求8或9所述的装置,其特征在于,还包括与所述测试子任务模块连接的子任务监控模块,其中:
所述测试子任务模块,还用于在将索引的所述子任务和/或所述测试用例返回给所述离线测试***的同时,或者,在向所述子任务上传模块提供所述上传属性字段的同时,还修改相应的子任务和/或测试用例的最后访问时间戳,并将所述索引文件中的子任务和/或测试用例提供给所述子任务监控模块;将所述子任务监控模块返回的被标记的子任务和/或测试用例从所述索引文件中删除;
所述子任务监控模块,用于根据所述子任务和/或测试用例的最后访问时间戳对所述索引文件中的子任务进行监控,一旦发现有超时未使用或未被访问的子任务和/或测试用例便对其进行标记并返回给所述测试子任务模块。
11、一种应用于离线测试***的本地数据管理方法,涉及所述离线测试***中的数据容器管理器,所述方法包括:
所述数据容器管理器从服务器将用户的测试任务下载到本地,并将下载到本地的所述测试任务添加到在本地生成及保存一索引文件中,通过所述索引文件对所述测试任务进行访问。
12、按照权利要求11所述的方法,其特征在于,
所述数据容器管理器采用目录加内容的二级索引模式生成及保存所述索引文件,亦即将每个测试任务细分为多个子任务,其中每个子任务包含多个测试用例,所述子任务采用所述目录进行索引访问,所述测试用例采用所述目录下的所述内容进行索引访问。
13、按照权利要求12所述的方法,其特征在于,
所述离线测试***将所述索引文件加载在用户界面上供用户读取,根据用户在所述用户界面上选择的所述子任务向所述数据容器管理器发出访问子任务请求;
所述数据容器管理器依据所述目录索引所述子任务,和/或依据所述目录下的内容索引到测试用例,并将索引的所述子任务和/或所述测试用例通过所述离线测试***加载在所述用户界面上供用户读取和/或选择执行。
14、按照权利要求12所述的方法,其特征在于,还包括:
所述数据容器管理器为所述子任务和其测试用例配置属性字段,并配置用于标记所述子任务和其测试用例是否修改的标签;
所述离线测试***根据用户在所述用户界面上选择编辑的所述子任务和/或测试用例向所述数据容器管理器发出所述编辑子任务请求;所述数据容器管理器根据所述编辑子任务请求将相应的所述子任务和其测试用例的所述属性字段进行更新,并将相应的所述标签标记为已修改,同时生成上传属性字段,并向所述离线测试***返回编辑子任务响应;
所述离线测试***根据所述编辑子任务响应,向所述数据容器管理器发出所述上传子任务命令;所述数据容器管理器针对所述上传子任务命令,依据所述上传属性字段将更新的子任务和/或测试用例上传到所述服务器中,并向所述离线测试***返回上传日志。
15、按照权利要求13或14所述的方法,其特征在于,所述数据容器管理器在将所述子任务和/或所述测试用例返回给所述离线测试***的同时,或者在将所述上传属性字段返回给所述离线测试***的同时,还修改相应的子任务的最后访问时间戳;所述方法还包括:
所述数据容器管理器对加载在所述数据容器中的子任务进行监控,一旦发现有超时未使用或未被访问的子任务便对其进行删除,以保证所述数据容器的存储空间的利用率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101615394A CN101615159B (zh) | 2009-07-31 | 2009-07-31 | 离线测试***及其本地数据管理方法及相应的装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101615394A CN101615159B (zh) | 2009-07-31 | 2009-07-31 | 离线测试***及其本地数据管理方法及相应的装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101615159A true CN101615159A (zh) | 2009-12-30 |
CN101615159B CN101615159B (zh) | 2011-03-16 |
Family
ID=41494810
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101615394A Expired - Fee Related CN101615159B (zh) | 2009-07-31 | 2009-07-31 | 离线测试***及其本地数据管理方法及相应的装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101615159B (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102622298A (zh) * | 2012-03-02 | 2012-08-01 | 奇智软件(北京)有限公司 | 一种软件测试***及方法 |
CN102868461A (zh) * | 2012-08-07 | 2013-01-09 | 大唐移动通信设备有限公司 | 一种基带测试方法、装置及*** |
CN103530232A (zh) * | 2013-10-24 | 2014-01-22 | 北京经纬恒润科技有限公司 | 一种软件测试管理框架构建方法及装置 |
CN103902542A (zh) * | 2012-12-25 | 2014-07-02 | 百度在线网络技术(北京)有限公司 | 一种测试环境中数据库的运维方法及*** |
CN103905258A (zh) * | 2012-12-24 | 2014-07-02 | 百度国际科技(深圳)有限公司 | 一种客户端数据上传功能的测试方法及装置 |
CN104360952A (zh) * | 2012-03-02 | 2015-02-18 | 北京奇虎科技有限公司 | 一种软件测试***及方法 |
CN105094906A (zh) * | 2015-07-22 | 2015-11-25 | 网易(杭州)网络有限公司 | 一种游戏服务器热更新方法、装置与*** |
CN105117348A (zh) * | 2015-09-28 | 2015-12-02 | 佛山市朗达信息科技有限公司 | 一种监控软件测试执行进度的方法 |
CN105357067A (zh) * | 2015-10-14 | 2016-02-24 | 广州杰赛科技股份有限公司 | 一种云平台的测试方法及*** |
WO2018045541A1 (zh) * | 2016-09-08 | 2018-03-15 | 华为技术有限公司 | 一种容器分配的优化方法及处理设备 |
CN109117360A (zh) * | 2017-06-26 | 2019-01-01 | 北京京东尚科信息技术有限公司 | 一种离线处理业务数据的方法和装置 |
CN109634843A (zh) * | 2018-10-31 | 2019-04-16 | 中国科学院软件研究所 | 一种面向ai芯片平台的分布式自动化软件测试方法及平台 |
CN109827781A (zh) * | 2018-12-29 | 2019-05-31 | 中国汽车技术研究中心有限公司 | 一种车辆测试数据处理方法、装置及*** |
US10417113B1 (en) | 2016-03-10 | 2019-09-17 | Amdocs Development Limited | System, method, and computer program for web testing and automation offline storage and analysis |
CN110781079A (zh) * | 2019-10-08 | 2020-02-11 | 新华三大数据技术有限公司 | 数据处理流程调试方法、装置及电子设备 |
CN112491926A (zh) * | 2020-12-11 | 2021-03-12 | 迈普通信技术股份有限公司 | SRv6路径质量测量方法、装置、电子设备及存储介质 |
CN113391962A (zh) * | 2020-03-11 | 2021-09-14 | 百度在线网络技术(北京)有限公司 | 离线数据测试方法、离线数据测试装置和电子设备 |
CN113742239A (zh) * | 2021-09-14 | 2021-12-03 | 口碑(上海)信息技术有限公司 | 终端阅读器回归测试***、回归测试方法和交互方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100458729C (zh) * | 2006-09-29 | 2009-02-04 | 上海科泰世纪科技有限公司 | 嵌入式操作***中接口测试的自动化运行方法 |
CN101212362B (zh) * | 2006-12-26 | 2010-05-19 | 中兴通讯股份有限公司 | 一种融合多类型测试工具的自动化测试装置及方法 |
CN100512160C (zh) * | 2007-07-24 | 2009-07-08 | 中兴通讯股份有限公司 | 一种离线的测试执行构造方法及装置 |
-
2009
- 2009-07-31 CN CN2009101615394A patent/CN101615159B/zh not_active Expired - Fee Related
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104360952A (zh) * | 2012-03-02 | 2015-02-18 | 北京奇虎科技有限公司 | 一种软件测试***及方法 |
CN102622298A (zh) * | 2012-03-02 | 2012-08-01 | 奇智软件(北京)有限公司 | 一种软件测试***及方法 |
CN102622298B (zh) * | 2012-03-02 | 2015-01-07 | 北京奇虎科技有限公司 | 一种软件测试***及方法 |
CN102868461A (zh) * | 2012-08-07 | 2013-01-09 | 大唐移动通信设备有限公司 | 一种基带测试方法、装置及*** |
CN102868461B (zh) * | 2012-08-07 | 2015-04-15 | 大唐移动通信设备有限公司 | 一种基带测试方法、装置及*** |
CN103905258A (zh) * | 2012-12-24 | 2014-07-02 | 百度国际科技(深圳)有限公司 | 一种客户端数据上传功能的测试方法及装置 |
CN103902542A (zh) * | 2012-12-25 | 2014-07-02 | 百度在线网络技术(北京)有限公司 | 一种测试环境中数据库的运维方法及*** |
CN103530232B (zh) * | 2013-10-24 | 2016-04-06 | 北京经纬恒润科技有限公司 | 一种软件测试管理框架构建方法及装置 |
CN103530232A (zh) * | 2013-10-24 | 2014-01-22 | 北京经纬恒润科技有限公司 | 一种软件测试管理框架构建方法及装置 |
CN105094906A (zh) * | 2015-07-22 | 2015-11-25 | 网易(杭州)网络有限公司 | 一种游戏服务器热更新方法、装置与*** |
CN105117348A (zh) * | 2015-09-28 | 2015-12-02 | 佛山市朗达信息科技有限公司 | 一种监控软件测试执行进度的方法 |
CN105357067A (zh) * | 2015-10-14 | 2016-02-24 | 广州杰赛科技股份有限公司 | 一种云平台的测试方法及*** |
US10417113B1 (en) | 2016-03-10 | 2019-09-17 | Amdocs Development Limited | System, method, and computer program for web testing and automation offline storage and analysis |
WO2018045541A1 (zh) * | 2016-09-08 | 2018-03-15 | 华为技术有限公司 | 一种容器分配的优化方法及处理设备 |
CN109117360A (zh) * | 2017-06-26 | 2019-01-01 | 北京京东尚科信息技术有限公司 | 一种离线处理业务数据的方法和装置 |
CN109634843A (zh) * | 2018-10-31 | 2019-04-16 | 中国科学院软件研究所 | 一种面向ai芯片平台的分布式自动化软件测试方法及平台 |
CN109634843B (zh) * | 2018-10-31 | 2021-09-21 | 中国科学院软件研究所 | 一种面向ai芯片平台的分布式自动化软件测试方法及平台 |
CN109827781A (zh) * | 2018-12-29 | 2019-05-31 | 中国汽车技术研究中心有限公司 | 一种车辆测试数据处理方法、装置及*** |
CN110781079A (zh) * | 2019-10-08 | 2020-02-11 | 新华三大数据技术有限公司 | 数据处理流程调试方法、装置及电子设备 |
CN110781079B (zh) * | 2019-10-08 | 2022-08-09 | 新华三大数据技术有限公司 | 数据处理流程调试方法、装置及电子设备 |
CN113391962A (zh) * | 2020-03-11 | 2021-09-14 | 百度在线网络技术(北京)有限公司 | 离线数据测试方法、离线数据测试装置和电子设备 |
CN113391962B (zh) * | 2020-03-11 | 2023-08-15 | 百度在线网络技术(北京)有限公司 | 离线数据测试方法、离线数据测试装置和电子设备 |
CN112491926A (zh) * | 2020-12-11 | 2021-03-12 | 迈普通信技术股份有限公司 | SRv6路径质量测量方法、装置、电子设备及存储介质 |
CN113742239A (zh) * | 2021-09-14 | 2021-12-03 | 口碑(上海)信息技术有限公司 | 终端阅读器回归测试***、回归测试方法和交互方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101615159B (zh) | 2011-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101615159B (zh) | 离线测试***及其本地数据管理方法及相应的装置 | |
JP6774499B2 (ja) | オフラインでのハイブリッドアプリケーションへのアクセスの提供 | |
CN107797767B (zh) | 一种基于容器技术部署分布式存储***及其存储方法 | |
CN108037961A (zh) | 一种应用程序配置方法、装置、服务器和存储介质 | |
CN105095089A (zh) | 一种测试应用软件性能的方法及装置 | |
CN102236835B (zh) | 用于企业内容管理***的整合框架 | |
CN107967159A (zh) | 一种配置文件应用的方法以及服务器 | |
US20150178065A1 (en) | Dynamic delivery and integration of static content into cloud | |
CN104572043A (zh) | 一种对客户端应用的控件进行实时埋点的方法及装置 | |
CN103914438A (zh) | 基于模版与标记实现的Excel显示与导出方法及*** | |
US20100313197A1 (en) | System and method for operating domain profile using database in core framework for sdr mobile terminals | |
CN106559484A (zh) | 实例***免安装运行应用的方法 | |
US20130198333A1 (en) | Method and device for recording and reproducing web operation | |
US20130091416A1 (en) | Method for establishing a relationship between semantic data and the running of a widget | |
CN103412742A (zh) | 应用程序可配置ui的方法及装置 | |
WO2013175560A1 (ja) | 情報通信システム及び情報変換方法 | |
CN108037937A (zh) | 一种动态更新资源的方法 | |
CN110334326A (zh) | 一种识别配方文件并转化为xml文件的方法及*** | |
CN105589959A (zh) | 表单处理方法和表单*** | |
CN103744845A (zh) | 一种web平台数据缓存的方法和*** | |
US20080117808A1 (en) | Automatic configuration of network elements based on service contract definitions | |
CN104885073A (zh) | 用于生成数字版本的***和方法 | |
CN103501341A (zh) | 一种Web服务的创建方法及装置 | |
US9075619B2 (en) | Method and apparatus for supporting multi-modal dialog applications | |
CN101944123B (zh) | 面向半导体制造装备功能仿真的批量配置文件管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20180426 Address after: California, USA Patentee after: Global innovation polymerization LLC Address before: 518057 Department of law, Zhongxing building, South hi tech Industrial Park, Nanshan District hi tech Industrial Park, Guangdong, Shenzhen Patentee before: ZTE Corp. |
|
TR01 | Transfer of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110316 |
|
CF01 | Termination of patent right due to non-payment of annual fee |