具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。在本发明的一个附图或一种实施方式中描述的元素和特征可以与一个或更多个其它附图或实施方式中示出的元素和特征相结合。应当注意,为了清楚的目的,附图和说明中省略了与本发明无关的、本领域普通技术人员已知的部件和处理的表示和描述。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明基于柔性测试技术的测试数据版本控制方法第一实施例的流程图。如图1所示,本发明实施例提供了一种基于柔性测试技术的测试数据版本控制方法,包括:
步骤101、接收客户端发送的包含条目文件的操作请求,该条目文件包含当前测试数据版本的版本信息;
步骤102、根据上述版本信息判断当前测试数据版本是否为最新版本;
步骤103、根据判断结果对上述操作请求进行响应。
在本发明实施例中,上述步骤可以由服务器执行。当客户端欲进行上传或更新测试数据版本的操作时,需要首先向服务器发送相应的包含条目文件的操作请求,条目文件中包含了当前测试数据版本的版本信息,该当前测试数据版本为客户端中当前工作环境下的测试数据版本。条目文件可以是一个可扩展标志语言(eXtensibleMarkupLanguage,简称XML)文档,包含了关于工作拷贝中版本化资源的大多数管理性信息,可以保留文件在版本库中的统一资源定位符(UniformResourceLocator,简称URL)、原始修订版本、文件校验数据、可知的最后提交信息(如,作者、修订版本和时间戳)以及本地拷贝历史等。无论用户添加、修改或删除版本管理的文件夹中的文件,其操作均可写入条目文件。
服务器接收到操作请求后,根据其携带的版本信息与存储于服务器的版本库中的信息作对比,以判断上述当前测试数据版本是否为最新版本。然后,根据判断结果以及操作请求的不同类型对操作请求做不同的响应。在多人对同一文件进行修改时,通过对客户端中当前版本的判断,以对修改版本进行版本控制,确保目标文件版本的正确性和修改的有效性。
本发明提供的基于柔性测试技术的测试数据版本控制方法,通过客户端上传的版本信息判断客户端中的当前测试数据版本是否为最新版本,并根据判断结果对客户端的上传或更新请求进行响应,实现了有效的版本控制,有利于实现数据按需管理(DataOnDemand),提高了柔性测试的效率和可靠性。
图2为本发明基于柔性测试技术的测试数据版本控制方法第二实施例的流程图。如图2所示,在上述实施例的基础上,当上述操作请求为上传请求时,客户端发送的当前测试数据版本的版本信息包含当前测试数据版本的版本号,步骤102可以包括:
步骤201、比较当前测试数据版本的版本号N与版本库中最新版本信息表中的版本号M的大小,当版本号N大于版本号M时,执行步骤202,否则,执行步骤203;
步骤202、确定当前测试数据版本为最新版本;
步骤203、确定当前测试数据版本为非最新版本。
在本发明实施例中,当客户端发送上传请求时,服务器判断客户端中的当前测试数据版本是否为最新版本,即,判断当前测试数据版本是否在客户端中经过修改。文件的每个修订版本会被赋予一个独一无二的自然数作为版本号,初始的版本号设为0,当文件被修改后,要在该文件所有修订版本的版本号中最大的版本号加一,作为其最新的版本号。也就是说,当前版本在修改前无论是不是最新版本,其修改后的版本一定是最新版本。
服务器中的版本库作为核心部分是数据的中央仓库,以典型的文件和目录结构形式文件系统树来保存信息。版本库由实体文件和数据库两部分组成。实体文件为客户端每次上传的不同版本文件,为区分不同版本上传的文件,版本库的文件命名组成可以为:源文件名_上传用户名_上传机器码_上传时间(服务器上的时间戳为准)。同一文件的不同版本放在同一文件夹下,文件夹的层次结构与客户端上传的文件夹层次保持一致。数据库包括最新版本信息表和版本上传详细信息表,主要提供版本相关信息和对应的实体文件路径信息等。其中,最新版本信息表保存项目组的所有项目成员的最新版本信息,包括最新版本的目录树(包含实体文件的路径)和版本号,以及最新上传版本的用户名、上传机器、上传时间、上传备注等信息。
当服务器接收到客户端发送的上传请求时,将其携带的当前测试数据版本的版本号N与最新版本信息表中的版本号M做比较,当N>M时,证明当前测试数据版本已在客户端做过修订,为最新版本。
进一步地,步骤103可以包括:
步骤204、在当前测试数据版本为非最新版本时,向客户端发送禁止上传响应;
步骤205、在当前测试数据版本为最新版本时,向客户端发送上传许可响应,并继续执行步骤206;
步骤206、接收客户端上传的当前测试数据版本;
步骤207、将当前测试数据版本存储至版本库;
步骤208、根据当前测试数据版本的版本信息更新存储于版本库的最新版本信息表;
步骤209、根据当前测试数据版本的版本信息生成版本上传详细信息表,并存储于版本库中。
服务器进行上传核查,若当前测试数据版本不是最新版本,则禁止上传,若是最新版本,则允许上传。当客户端接收到上传许可响应时,向服务器发送当前测试数据版本,并更新本地的条目文件。服务器将该当前测试数据版本存储至版本库的实体文件中,并将该版本的版本信息更新到版本库的最新版本信息表中,由于客户端更多的操作是更新操作(即,下载最新版本的操作),这样便于更快的检索最新版本的目录树及实体文件所在路径,提高下载效率。
服务器根据当前测试数据版本的版本信息生成版本上传详细信息表,并存储于版本库中的数据库中。版本上传详细信息表保存上传文件的相关信息,包括每次上传版本的目录树和版本号,以及上传版本的用户名、上传时间、上传标注等信息。该表详细记录每次版本的修改信息,用于查看每个项目成员的上传版本信息,对上传的版本信息进行检索,以及旧版本的回溯。
当客户端上传文件时,除了将客户端要上传的条目文件与数据库中的最新版本信息进行比对核查,还可以同上传临时列表中其他用户正在上传的文件列表进行核查,当有多个用户同时上传时,上传文件若有包含或交叉关系,则只允许一个用户进行上传,其他用户上传失败。
本发明提供的基于柔性测试技术的测试数据版本控制方法,通过客户端上传的版本号判断客户端中的当前测试数据版本是否为最新版本,并根据判断结果对客户端的上传请求进行响应,实现了有效的版本控制,提高了柔性测试的效率和可靠性。
图3为本发明基于柔性测试技术的测试数据版本控制方法第三实施例的流程图。如图3所示,在上述方法第一实施例的基础上,当上述操作请求为更新请求时,客户端发送的当前测试数据版本的版本信息包含当前测试数据版本的版本号和最终修改时间,步骤102可以包括:
步骤301、比较当前测试数据版本的版本号N与版本库中最新版本信息表中的版本号M的大小,当版本号N大于版本号M时,执行步骤303,当版本号N小于版本号M时,执行步骤304,当版本号N等于版本号M时,执行步骤302;
步骤S302、比较当前测试数据版本的最终修改时间Tn与版本库中最新版本信息表中的最终修改时间Tm的大小,当最终修改时间Tn等于最终修改时间Tm时,执行步骤303,否则,执行步骤304;
步骤303、确定当前测试数据版本为最新版本;
步骤304、确定当前测试数据版本为非最新版本。
进一步地,步骤103可以包括:
步骤305、在当前测试数据版本为最新版本时,向客户端发送禁止更新响应;
步骤306、在当前测试数据版本为非最新版本时,向客户端发送更新许可响应,并执行步骤307;
步骤307、向客户端发送存储于版本库中的最新测试数据版本。
在本发明实施例中,当客户端发送更新请求(即,下载最新版本的请求)时,服务器根据该更新请求中携带的当前测试数据版本的版本号和最终修改时间判断其是否为最新版本。当N>M时,说明当前测试数据版本已在客户端做过修订,此时不能进行更新操作;当N<M时,说明当前测试数据版本在客户端未做过修订,且服务器中的版本为最新版本,此时可以进行更新操作;当N=M时,分两种情况,若Tn=Tm,则说明当前测试数据版本与服务器中的最新版本完全一致,是同一版本,也就是说客户端中的当前测试数据版本是最新版本,因此不需要进行更新操作,若Tn≠Tm,则说明当前测试数据版本已在客户端中做过修订,而服务器中也由其他客户端上传了更新的最新版本,此时允许客户端进行更新操作,而客户端中在当前测试数据版本做的修订需要重新在新版本中进一步修改。
在本发明实施例中,上传时不会同时下载最新版本的信息,下载时若本地已经修改也不会将已经修改的文件上传,二者是相互独立的。
本发明提供的基于柔性测试技术的测试数据版本控制方法,通过客户端上传的版本号及最终修改时间来判断客户端中的当前测试数据版本是否为最新版本,并根据判断结果对客户端的更新请求进行响应,实现了有效的版本控制,提高了柔性测试的效率和可靠性。
图4为本发明基于柔性测试技术的测试数据版本控制方法第四实施例的流程图。如图4所示,在上述方法实施例的基础上,本发明实施例提供的基于柔性测试技术的测试数据版本控制方法还可以包括:
步骤401、接收客户端发送的回溯请求,该回溯请求包含待回溯测试数据版本的版本号;
步骤402、根据该版本号查找待回溯测试数据版本的目录树;
步骤403、根据该目录树查找上述待回溯测试数据版本,并发送至客户端。
在本发明实施例中,客户端发送回溯请求(即,请求下载之前的版本)时,首先访问版本库中的数据库,查找对应版本的目录树(包括对应实体文件的路径),服务器在发送实体文件的同时将下载相关信息发送至客户端以更新条目文件。
本发明提供的基于柔性测试技术的测试数据版本控制方法,客户端允许一部分文件回溯到过去的某一版本,允许工作拷贝的任何一个部分在历史中前进或后退,实现了有效的版本控制,提高了柔性测试的效率和可靠性。
图5为本发明基于柔性测试技术的测试数据版本控制装置第一实施例的结构示意图。如图5所示,本发明实施例提供了一种基于柔性测试技术的测试数据版本控制装置,包括:接收模块51、判断模块52和响应模块53。其中,接收模块51用于接收客户端发送的包含条目文件的操作请求,该条目文件包含当前测试数据版本的版本信息;判断模块52用于根据接收模块51接收到的版本信息判断当前测试数据版本是否为最新版本;响应模块53用于根据判断模块52的判断结果对上述操作请求进行响应。
在本发明实施例中,上述基于柔性测试技术的测试数据版本控制装置可以为服务器。当客户端欲进行上传或更新测试数据版本的操作时,需要首先向服务器发送相应的包含条目文件的操作请求,条目文件中包含了当前测试数据版本的版本信息,该当前测试数据版本为客户端中当前工作环境下的测试数据版本。条目文件可以是一个XML文档,包含了关于工作拷贝中版本化资源的大多数管理性信息,可以保留文件在版本库中的URL、原始修订版本、文件校验数据、可知的最后提交信息(如,作者、修订版本和时间戳)以及本地拷贝历史等。无论用户添加、修改或删除版本管理的文件夹中的文件,其操作均可写入条目文件。
接收模块51接收到操作请求后,判断模块52根据其携带的版本信息与存储于服务器的版本库中的信息作对比,以判断上述当前测试数据版本是否为最新版本。然后,响应模块53根据判断结果以及操作请求的不同类型对操作请求做不同的响应。在多人对同一文件进行修改时,通过对客户端中当前版本的判断,以对修改版本进行版本控制,确保目标文件版本的正确性和修改的有效性。
本发明提供的基于柔性测试技术的测试数据版本控制装置,通过客户端上传的版本信息判断客户端中的当前测试数据版本是否为最新版本,并根据判断结果对客户端的上传或更新请求进行响应,实现了有效的版本控制,提高了柔性测试的效率和可靠性。
图6为本发明基于柔性测试技术的测试数据版本控制装置第二实施例的结构示意图。如图6所示,在上述装置第一实施例的基础上,当上述操作请求为上传请求时,接收模块51接收到的当前测试数据版本的版本信息包含当前测试数据版本的版本号,判断模块52可以用于比较当前测试数据版本的版本号N与版本库中最新版本信息表中的版本号M的大小,当版本号N大于版本号M时,确定当前测试数据版本为最新版本,否则,确定当前测试数据版本为非最新版本;
在本发明实施例中,当客户端发送上传请求时,判断模块52判断客户端中的当前测试数据版本是否为最新版本,即,判断当前测试数据版本是否在客户端中经过修改。文件的每个修订版本会被赋予一个独一无二的自然数作为版本号,初始的版本号设为0,当文件被修改后,要在该文件所有修订版本的版本号中最大的版本号加一,作为其最新的版本号。也就是说,当前版本在修改前无论是不是最新版本,其修改后的版本一定是最新版本。
服务器中的版本库作为核心部分是数据的中央仓库,以典型的文件和目录结构形式文件系统树来保存信息。版本库由实体文件和数据库两部分组成。实体文件为客户端每次上传的不同版本文件,为区分不同版本上传的文件,版本库的文件命名组成可以为:源文件名_上传用户名_上传机器码_上传时间(服务器上的时间戳为准)。同一文件的不同版本放在同一文件夹下,文件夹的层次结构与客户端上传的文件夹层次保持一致。数据库包括最新版本信息表和版本上传详细信息表,主要提供版本相关信息和对应的实体文件路径信息等。其中,最新版本信息表保存项目组的所有项目成员的最新版本信息,包括最新版本的目录树(包含实体文件的路径)和版本号,以及最新上传版本的用户名、上传机器、上传时间、上传备注等信息。
当服务器接收到客户端发送的上传请求时,判断模块52将其携带的当前测试数据版本的版本号N与最新版本信息表中的版本号M做比较,当N>M时,证明当前测试数据版本已在客户端做过修订,为最新版本。
进一步地,响应模块53可以包括:发送单元61、接收单元62、存储单元63和更新单元64。其中,发送单元61用于当判断模块52判断当前测试数据版本为非最新版本时,向客户端发送禁止上传响应;当判断模块52判断当前测试数据版本为最新版本时,向客户端发送上传许可响应;接收单元62用于接收客户端上传的当前测试数据版本;存储单元63用于将接收单元62接收到的当前述测试数据版本存储至版本库;更新单元64用于根据当前测试数据版本的版本信息更新存储于版本库的最新版本信息表,根据当前测试数据版本的版本信息生成版本上传详细信息表,并存储于版本库中。
判断模块52进行上传核查,若当前测试数据版本不是最新版本,则发送单元61向客户端发送禁止上传响应,若是最新版本,则发送单元61向客户端发送上传许可响应。当客户端接收到上传许可响应时,向服务器发送当前测试数据版本,并更新本地的条目文件。接收单元62接收到该当前测试数据版本后,存储单元63将其存储至版本库的实体文件中,更新单元64将该版本的版本信息更新到版本库的最新版本信息表中,由于客户端更多的操作是更新操作(即,下载最新版本的操作),这样便于更快的检索最新版本的目录树及实体文件所在路径,提高下载效率。更新单元64还根据当前测试数据版本的版本信息生成版本上传详细信息表,并存储于版本库中的数据库中。版本上传详细信息表保存上传文件的相关信息,包括每次上传版本的目录树和版本号,以及上传版本的用户名、上传时间、上传标注等信息。该表详细记录每次版本的修改信息,用于查看每个项目成员的上传版本信息,对上传的版本信息进行检索,以及旧版本的回溯。
当客户端上传文件时,除了将客户端要上传的条目文件与数据库中的最新版本信息进行比对核查,还可以同上传临时列表中其他用户正在上传的文件列表进行核查,当有多个用户同时上传时,上传文件若有包含或交叉关系,则只允许一个用户进行上传,其他用户上传失败。
本发明提供的基于柔性测试技术的测试数据版本控制装置,通过客户端上传的版本号判断客户端中的当前测试数据版本是否为最新版本,并根据判断结果对客户端的上传请求进行响应,实现了有效的版本控制,提高了柔性测试的效率和可靠性。
图7为本发明基于柔性测试技术的测试数据版本控制装置第三实施例的结构示意图。如图7所示,在上述装置第一实施例的基础上,当上述操作请求为更新请求时,接收模块51接收到的当前测试数据版本的版本信息包含当前测试数据版本的版本号和最终修改时间,判断模块52可以包括:第一比较单元71和第二比较单元72。其中,第一比较单元71用于比较当前测试数据版本的版本号N与版本库中最新版本信息表中的版本号M的大小,当版本号N大于版本号M时,确定当前测试数据版本为最新版本,当版本号N小于版本号M时,确定当前测试数据版本为非最新版本;第二比较单元,用于当版本号N等于版本号M时,比较当前测试数据版本的最终修改时间Tn与版本库中最新版本信息表中的最终修改时间Tm的大小,当最终修改时间Tn等于最终修改时间Tm时,确定当前测试数据版本为最新版本,否则,确定当前测试数据版本为非最新版本。
进一步地,响应模块53可以用于当判断模块52判断当前测试数据版本为最新版本时,向客户端发送禁止更新响应;当判断模块52判断当前测试数据版本为非最新版本时,向客户端发送更新许可响应,并向客户端发送存储于版本库中的最新测试数据版本。
在本发明实施例中,当客户端发送更新请求(即,下载最新版本的请求)时,判断模块52根据该更新请求中携带的当前测试数据版本的版本号和最终修改时间判断其是否为最新版本。第一比较单元71对N和M的大小进行比较,当N>M时,说明当前测试数据版本已在客户端做过修订,此时不能进行更新操作;当N<M时,说明当前测试数据版本在客户端未做过修订,且服务器中的版本为最新版本,此时可以进行更新操作;当N=M时,第二比较单元72对Tn和Tm的大小进行比较,分两种情况,若Tn=Tm,则说明当前测试数据版本与服务器中的最新版本完全一致,是同一版本,也就是说客户端中的当前测试数据版本是最新版本,因此不需要进行更新操作,响应模块53发送更新许可响应;若Tn≠Tm,则说明当前测试数据版本已在客户端中做过修订,而服务器中也由其他客户端上传了更新的最新版本,此时响应模块53发送更新许可响应,允许客户端进行更新操作,而客户端中在当前测试数据版本做的修订需要重新在新版本中进一步修改。
在本发明实施例中,上传时不会同时下载最新版本的信息,下载时若本地已经修改也不会将已经修改的文件上传,二者是相互独立的。
本发明提供的基于柔性测试技术的测试数据版本控制装置,通过客户端上传的版本号及最终修改时间来判断客户端中的当前测试数据版本是否为最新版本,并根据判断结果对客户端的更新请求进行响应,实现了有效的版本控制,提高了柔性测试的效率和可靠性。
图8为本发明基于柔性测试技术的测试数据版本控制系统实施例的系统框图。如图8所示,本发明实施例提供了一种基于柔性测试技术的测试数据版本控制系统,包括:客户端81和服务器82,服务器82为上述装置实施例中的基于柔性测试技术的测试数据版本控制装置,客户端81与服务器82通过互联网传输数据。当客户端81向服务器82发送包含条目文件的操作请求时,服务器82接收该操作请求,根据条目文件中包含的当前测试数据版本的版本信息判断当前测试数据版本是否为最新版本,并根据判断结果对上述操作请求进行响应。
本系统实施例中服务器82的功能如上述装置实施例中的具体描述,在此不再赘述。
本发明提供的基于柔性测试技术的测试数据版本控制系统,通过客户端上传的版本信息判断客户端中的当前测试数据版本是否为最新版本,并根据判断结果对客户端的上传或更新请求进行响应,实现了有效的版本控制,提高了柔性测试的效率和可靠性。
在本发明上述各实施例中,实施例的序号仅仅便于描述,不代表实施例的优劣。对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:只读存储器(Read-OnlyMemory,简称ROM)、随机存取存储器(RandomAccessMemory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的装置和方法等实施例中,显然,各部件或各步骤是可以分解、组合和/或分解后重新组合的。这些分解和/或重新组合应视为本发明的等效方案。同时,在上面对本发明具体实施例的描述中,针对一种实施方式描述和/或示出的特征可以以相同或类似的方式在一个或更多个其它实施方式中使用,与其它实施方式中的特征相组合,或替代其它实施方式中的特征。
应该强调,术语“包括/包含”在本文使用时指特征、要素、步骤或组件的存在,但并不排除一个或更多个其它特征、要素、步骤或组件的存在或附加。
最后应说明的是:虽然以上已经详细说明了本发明及其优点,但是应当理解在不超出由所附的权利要求所限定的本发明的精神和范围的情况下可以进行各种改变、替代和变换。而且,本发明的范围不仅限于说明书所描述的过程、设备、手段、方法和步骤的具体实施例。本领域内的普通技术人员从本发明的公开内容将容易理解,根据本发明可以使用执行与在此所述的相应实施例基本相同的功能或者获得与其基本相同的结果的、现有和将来要被开发的过程、设备、手段、方法或者步骤。因此,所附的权利要求旨在在它们的范围内包括这样的过程、设备、手段、方法或者步骤。