用于更新代码文件的方法和装置、存储介质、处理器以及终端与流程

文档序号:11285890阅读:203来源:国知局
用于更新代码文件的方法和装置、存储介质、处理器以及终端与流程

本申请涉及软件测试领域。具体地,本申请涉及一种用于更新代码文件的方法和装置、存储介质、处理器以及终端。



背景技术:

在现有的对游戏或软件进行测试的领域中,对于测试人员来说,频繁地更新测试环境是不可避免的。经常,程序员修改了某些代码文件或者漏洞,就需要测试人员更新一遍测试环境,以同步程序员对程序的修改,可能程序的很小的一个改动导致更新测试环境的时间可能会比测试的时间还长。

在现有的测试环境更新方案中,比较通用的有两种:

第一种测试环境更新方案:对于客户端,直接生成完整的测试包,卸载掉原有的安装包,重新安装测试包。这种方案需要对所有改动和未改动的代码文件都重新执行一次编译、压缩、加密、哈希等流程。耗时比最长。对于服务端,服务器直接重启更新所有代码文件或逐个更新有被改动的文件。

第二种测试环境更新方案:对于客户端:通过打补丁的方式进行更新代码文件。这种方案一般会与代码文件的上一个版本做比较,把上一个版本以后的所有被改动的代码文件都进行更新。这种方案需要删除客户端的补丁,重新下载新的补丁。对于服务端,服务器直接重启更新所有代码文件或逐个更新被改动的文件。

在现有的技术方案中,进行更新时会更新与测试不相关的代码文件,更新测试环境耗时比较长。如果客户端代码文件和服务端代码文件都有改动,则需要分别更新客户端和服务端两个环境。例如:程序仅修改了客户端代码文件里面的一个文件和服务端里面的一个文件,如果是整包更新,则需要把所有的代码文件更新一遍,然后更新服务器;如果是补丁更新,则会把所有上个版本以来所有程序员做出的改动都更新一遍,并更新服务器。

针对相关技术中进行更新时会更新与测试不相关的代码文件所导致的问题,目前尚未提出有效的解决方案。



技术实现要素:

本申请实施例提供了一种用于更新代码文件的方法和装置、存储介质、处理器以及终端,以至少解决现有技术中进行更新时会更新与测试不相关的代码文件使得更新测试环境耗时长的问题。

根据本申请实施例的一个方面,提供了一种用于更新代码文件的方法,包括:接收与代码文件关联的单号,单号包含在代码文件被提交到代码管理平台时所触发的请求信息中,作为在代码管理平台存储与单号关联的代码文件的路径的索引;根据单号从代码管理平台查询代码文件;以及如果代码文件对应于服务端代码文件,则对服务端代码文件进行更新,如果代码文件对应于客户端代码文件,则对客户端代码文件进行更新。

进一步地,用于更新代码文件的方法还包括:在查询到代码文件后,从代码管理平台下载代码文件。

进一步地,在用于更新代码文件的方法中,对服务端代码文件进行更新包括:将服务端代码文件替换为查询到的代码文件;以及重新加载被替换的代码文件。

进一步地,在用于更新代码文件的方法中,对客户端代码文件进行更新包括:将查询到的代码文件推送到客户端,用于使客户端将客户端代码文件替换为查询到的代码文件,客户端在替换后重启。

进一步地,在用于更新代码文件的方法中,客户端与用于内部测试的服务器连接。

进一步地,在用于更新代码文件的方法中,代码管理平台是svn,并且,请求信息是svnhook请求。

进一步地,在用于更新代码文件的方法中,请求信息包括代码文件的提交路径、提交人和log。

进一步地,在用于更新代码文件的方法中,单号包括在log中。

进一步地,在用于更新代码文件的方法中,单号是在使用项目管理工具提交代码文件到代码管理平台时添加的。

进一步地,用于更新代码文件的方法还包括:基于代码文件的文件格式,判断代码文件对应于服务端代码文件或者对应于客户端代码文件。

进一步地,在用于更新代码文件的方法中,代码文件的文件格式通过代码文件的后缀表示,其中,如果后缀是.c,则判断代码文件对应于服务端代码文件;如果后缀是.lua,则判断代码文件对应于客户端代码文件。

根据本申请实施例的另一个方面,提供了一种用于更新代码文件的装置,包括:接收模块,用于接收与代码文件关联的单号,单号包含在代码文件被提交到代码管理平台时所触发的请求信息中,作为在代码管理平台存储与单号关联的代码文件的路径的索引;查询模块,用于根据单号从代码管理平台查询代码文件;以及更新模块,如果代码文件对应于服务端代码文件,则更新模块对服务端代码文件进行更新,如果代码文件对应于客户端代码文件,则更新模块对客户端代码文件进行更新。

根据本申请实施例的另一个方面,提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述任意一项的用于更新代码文件的方法。

根据本申请实施例的另一个方面,提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述任意一项的用于更新代码文件的方法。

根据本申请实施例的另一个方面,提供了一种终端,包括:一个或多个处理器、存储器以及一个或多个程序,其中,一个或多个程序被存储在存储器中,并且被配置为由一个或多个处理器执行,一个或多个程序包括用于执行上述任意一项的用于更新代码文件的方法。

现有的测试环境更新方案比较慢,很多不是测试相关的代码文件都会被更新。如果逐个更新测试文件又需要大量的机械劳动。本发明通过关联单号,一键快速更新相关改动的代码文件,更新包括对服务端和客户端的更新,解决了部署测试环境慢的问题。

本发明根据项目管理平台的单号,一键对客户端和服务端进行测试环境的更新,而且更新的内容是仅与指定单号内容相关的代码文件,从而避免更新多余的信息。

通过采用本发明提供的技术方案,可以避免更新不必要的文件,只针对测试内容相关的代码文件进行更新,极大的减少了部署测试环境所需要的时间。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据本申请实施例的用于更新代码文件的方法的流程图;

图2是根据本申请实施例的用于更新代码文件的装置的框图;

图3是示出在根据本申请示例性实施例的用于更新代码文件的方法中存储更新信息的流程图;

图4是示出在根据本申请示例性实施例的用于更新代码文件的方法中更新客户端测试环境的流程图;

图5是是示出在根据本申请示例性实施例的用于更新代码文件的方法中通过项目管理平台的单号更新代码文件的流程图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块或单元。

本发明主要针对如何快速部署游戏或软件的测试环境。在测试环境更新的技术方案中,包括如下技术术语:

svn:是subversion的简称,是一个用于版本控制的代码管理平台,相较于rcs、cvs,subversion采用了分支管理系统,它的设计目标就是取代cvs。互联网上很多版本控制服务已从cvs迁移到subversion。换句换说,svn用于多人共同开发同一个项目,用于共享资源的目的。

svnhook:是指在svn工具里面加一个钩子(hook),每当通过svn提交代码文件的时候都会触发这个钩子,钩子的作用是把svn每次代码文件提交的信息发送到指定的服务器。

根据本申请实施例,提供了一种用于更新代码文件的方法。图1是根据本申请实施例的用于更新代码文件的方法的流程图。

如图1所示,本申请提供了一种用于更新代码文件的方法,包括:步骤s102,接收与代码文件关联的单号,单号包含在代码文件被提交到代码管理平台时所触发的请求信息中,作为在代码管理平台存储与单号关联的代码文件的路径的索引;步骤s104,根据单号从代码管理平台查询代码文件;以及步骤s106,如果代码文件对应于服务端代码文件,则对服务端代码文件进行更新,如果代码文件对应于客户端代码文件,则对客户端代码文件进行更新。本申请通过引入单号的概念,将单号与要更新的代码文件相关联。例如,可以在服务器接收用户输入的单号,该单号与要更新的代码文件相关联,使得通过单号可以找到要更新的代码文件。这种关联是在代码文件被提交到代码管理平台时建立的。在提交代码文件到代件管理平台时,会触发请求信息,在请求信息中,用户可以在其中加入单号,将其与该提交的代码文件相关联。代码管理平台在接收到包含单号的代码文件的请求信息时,可以将单号作为索引存储代码文件,可以通过该单号进行索引找到存储与单号关联的代码文件的路径。这样,可以通过单号直接找到对应的代码文件。查询到代码文件后,对服务器和客户端分别进行更新操作,如果代码文件对应于服务端的要更新的代码文件,则对服务端代码文件进行更新操作,如果代码文件对应于客户端的要更新的代码文件,则对客户端代码文件进行更新操作。以这样的方式,用户直接输入单号,即可采用单号对应的代码文件对服务器或者客户端进行代码文件的更新操作,避免了更新不需要更新的代码文件,并且对服务端和客户端分别进行更新,节约了代码文件更新的时间,节省了服务器处理资源,人工操作简便。

根据本申请实施例,用于更新代码文件的方法还包括:在查询到代码文件后,从代码管理平台下载代码文件。从代码管理平台查询到代码文件之后,需要将代码文件传输给需要更新代码文件的服务器或者客户端,在这之前,服务器需要从代码管理平台通过下载代码文件的方式获得查询到的代码文件。这些代码文件被服务器下载到本地,用于进一步的处理操作。这样,可以根据需要,准备更新服务端代码文件或者更新客户端代码文件。

根据本申请实施例,在用于更新代码文件的方法中,对服务端代码文件进行更新包括:将服务端代码文件替换为查询到的代码文件;以及重新加载被替换的代码文件。代码文件的更新通常分为对服务端代码文件的更新和对客户端代码文件的更新。在更新前,需要判断查询到的代码文件,即要更新的代码文件是在服务端还是在客户端。如果要更新的代码文件在服务端,换句话说,查询到的代码文件对应于服务端代码文件,那么服务器直接将服务端代码文件替换为查询到的代码文件,该代码文件已经在前一步本地下载到服务器。替换代码文件后,为了使代码文件生效,服务器仅重加载被替换的代码文件即可,不必加载全部代码文件。以这样的方式,服务器可以仅更新用户之前通过输入单号指定的代码文件,避免了更新不必要的代码文件,节省了更新需要的时间和资源。

根据本申请实施例,在用于更新代码文件的方法中,对客户端代码文件进行更新包括:将查询到的代码文件推送到客户端,用于使客户端将客户端代码文件替换为查询到的代码文件,客户端在替换后重启。在更新前的判断过程中,如果判断要更新的代码文件在客户端,即查询到的代码文件与客户端代码文件相对应,则需要更新客户端代码文件。由于代码文件在前一步下载到了服务器,该代码文件需要发送到客户端。在本申请实施例中,查询到的代码文件被以推送的方式发送到客户端,用于客户端代码文件的更新。客户端在接收到代码文件后,将与代码文件相对应客户端代码文件替换为接收到的代码文件。代码文件在替换后,客户端通过重启的方式使代码文件的更新生效。以这样的方式,客户端可以仅更新用户之前通过输入单号指定的代码文件,避免了更新不必要的代码文件,节省了更新需要的时间和资源。

根据本申请实施例,在用于更新代码文件的方法中,客户端与用于内部测试的服务器连接。代码文件的更新可以用于测试的用途。例如,在测试中,客户端与内部测试的服务器连接,内部测试的服务器是相对于外部玩家或者用户所在或者使用的外部服务器而言的。客户端与内部测试服务器进行更新后代码文件的测试,使更新和维护人员检测代码文件更新情况,排除故障或者进行进一步优化,而不影响外部玩家或者用户的体验。

根据本申请实施例,在用于更新代码文件的方法中,代码管理平台是svn,并且,请求信息是svnhook请求。svn是一种用于版本控制的代码管理平台。程序员在编写代码文件时,可以从svn取得代码文件,本地编写代码文件,写好后将编写的代码文件上传回svn。这样,多个程序员可以共享代码文件库,对其中的代码文件进行编写和修改,实现多人同时的代码文件开发。在使用svn进行代码文件编写和上传的过程中,发送的请求上传的信息为svnhook请求,svnhook指“svn钩子”,是一种程序,内置在svn中,可以在代码文件提交的时候用于为每次代码文件提交添加单号并且进行逻辑判断,例如是否已包括单号,这样将单号引入代码文件更新中,在更新时可按照单号进行更新操作。

根据本申请实施例,在用于更新代码文件的方法中,请求信息包括代码文件的提交路径、提交人和log。向代码管理平台提交代码文件的过程中,可以对本次提交添加关于代码文件的需要的信息,使得在查询或者使用代码文件时能够获得需要的信息。例如,请求信息中可以包括代码文件的提交路径,用于表示代码文件位置;提交人,用于表示提交人的信息;以及log,用于表示关于代码文件的记录信息,等等。请求信息中可以包括需要的信息,有益于代码文件的管理。

根据本申请实施例,在用于更新代码文件的方法中,单号包括在log中。在关于代码文件的记录信息log中,可以包括单号,将单号作为关于代码文件的一部分信息,用于代码文件的提交。单号在代码文件的log中,使得代码文件与单号相关联。每条代码文件对应于单独的单号,单号能够作为检索和存储代码文件的依据。

根据本申请实施例,在用于更新代码文件的方法中,单号是在使用项目管理工具提交代码文件到代码管理平台时添加的。每次代码文件提交时,必须在log中加上例如“#单号”的信息,才允许提交,不然代码管理平台会返回提交失败信息或报警信息,以这样的方式,保证每条代码文件提交时都存在对应的单号。

根据本申请实施例,用于更新代码文件的方法还包括:基于代码文件的文件格式,判断代码文件对应于服务端代码文件或者对应于客户端代码文件。代码文件具有文件格式,服务段代码文件的文件格式与客户端代码文件的文件格式不同,因此该文件格式可以作为判断该代码文件对应于服务端代码文件或者对应于客户端代码文件的依据。

根据本申请实施例,在用于更新代码文件的方法中,代码文件的文件格式通过代码文件的后缀表示,其中,如果后缀是.c,则判断代码文件对应于服务端代码文件;如果后缀是.lua,则判断代码文件对应于客户端代码文件。代码文件的文件格式可以“.”+字母的形式的后缀表示在代码文件的文件名中。例如,可以采用“.c”和“.lua”的后缀分别表示代码文件对应的是服务端代码文件或者客户端代码文件。本申请实施例的代码文件的文件格式及后缀不限于此,且代码文件的文件格式及后缀可以根据程序开发所选择的语言不同做出不同的修改。以这样的方式,可以基于代码文件的文件名判断代码文件对应于服务端代码文件或者对应于客户端代码文件,从而进行相应的更新。

根据本申请另一个实施例,提供了一种用于更新代码文件的装置。图2是根据本申请实施例的用于更新代码文件的装置的框图。

如图2所示,本申请提供了一种用于更新代码文件的装置,包括:接收模块202,用于接收与代码文件关联的单号,单号包含在代码文件被提交到代码管理平台时所触发的请求信息中,作为在代码管理平台存储与单号关联的代码文件的路径的索引;查询模块204,用于根据单号从代码管理平台查询代码文件;以及更新模块206,如果代码文件对应于服务端代码文件,则更新模块对服务端代码文件进行更新,如果代码文件对应于客户端代码文件,则更新模块对客户端代码文件进行更新。

根据本申请实施例的另一个方面,提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述任意一项的用于更新代码文件的方法。

根据本申请实施例的另一个方面,提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述任意一项的用于更新代码文件的方法。

根据本申请实施例的另一个方面,提供了一种终端,包括:一个或多个处理器、存储器以及一个或多个程序,其中,一个或多个程序被存储在存储器中,并且被配置为由一个或多个处理器执行,一个或多个程序包括用于执行上述任意一项的用于更新代码文件的方法。

根据本申请实施例的用于更新代码文件的装置、存储介质、处理器和终端能够执行上述的用于更新代码文件的方法,详细内容见上述根据本申请实施例的用于更新代码文件的方法的描述,在此不再赘述。

还提供了根据本申请示例性实施例的用于更新代码文件的方法。在根据本申请示例性实施例的用于更新代码文件的方法中,介绍了关联单号的代码文件被上传到代码管理平台svn服务器的信息存储过程、对服务端更新和对客户端更新的更新测试环境的过程、以及仅通过输入单号即可通过项目管理平台的单号更新代码文件的过程。

信息存储

图3是示出在根据本申请示例性实施例的用于更新代码文件的方法中存储更新信息的流程图。

在代码文件的信息存储过程中,引入了代码文件上传时指定的单号。

如图3所示,根据本申请示例性实施例的用于更新代码文件的方法中存储更新信息的步骤包括:

步骤s302,通过svn提交代码文件;

步骤s304,svnhook判断是否存在#单号;

步骤s306,如果在步骤s304,svnhook判断存在#单号,则发送svn信息到服务器;

步骤s308,服务器处理svn信息,将其存入数据库;

步骤s310,数据库存储代码文件和关联的单号,进行代码文件提交;

步骤s312,如果在步骤s304,svnhook判断不存在#单号,提交失败,返回提交失败信息或报警信息。

在代码文件的信息存储过程中,首先建立服务器,用于接收代码文件每次提交到代码管理平台svn时触发的svnhook请求,svnhook请求的信息中包括本次代码文件提交的各种svn信息,包括提交代码文件路径、提交人、log等等。服务器在接收到这些信息后会从log中提取项目管理工具(例如,redmine)的单号。提交人在提交代码文件的时候必须在代码文件的svn信息的log中加上单号(例如,以加上“#单号”的形式)才允许提交代码文件,否则代码管理平台svn会返回提交失败信息或报警信息。代码管理平台svn以log中加入的单号为索引,作为存储每个单号关联的代码文件的路径。

更新测试环境

1)服务端更新:服务器直接把对应代码文件替换掉并直接重加载进行更新。

2)客户端:是通过打开客户端,连接内部测试服,然后通过指令的方式告诉服务端要客户端要更新哪个代码文件,服务端就会从svn上把对应代码文件下载下来,然后通过协议的方式把代码文件推送到客户端覆盖对应的代码文件路径。

图4是示出在根据本申请示例性实施例的用于更新代码文件的方法中更新客户端测试环境的流程图。如图4所示,根据本申请示例性实施例的用于更新代码文件的方法中更新客户端测试环境的步骤包括:

步骤s402,通过指令通知服务端,更新客户端的代码文件;

步骤s404,服务器从svn下载对应的代码文件,保存到本地;

步骤s406,通过协议,把代码文件推送到客户端对应的路径;

步骤s408,重启客户端,使对应代码文件生效。

通过项目管理平台的单号更新代码文件

图5是是示出在根据本申请示例性实施例的用于更新代码文件的方法中通过项目管理平台的单号更新代码文件的流程图。

例如:测试人员希望测试某个单号相关的代码文件的改动,只需要把对应的单号通过界面发送给服务端。服务端就会在数据库里面去查询这个单号关联的代码文件,然后把这些代码文件从svn上下载到本地,并逐个查看对应的代码文件是服务端的代码文件还是客户端的代码文件,如果是服务端的代码文件就直接更新。如果是客户端的代码文件就执行客户端更新的逻辑。

如图5所示,根据本申请示例性实施例的用于更新代码文件的方法中通过项目管理平台的单号更新代码文件的流程如下:

步骤s502:在前端输入要测试的代码文件的单号,发送给服务器;

步骤s504:服务器根据单号查询数据库中关联的代码文件;

步骤s506:从svn下载关联的代码文件;

步骤s508:逐个遍历关联的代码文件;

步骤s510:判断代码文件是否是客户端代码文件;

步骤s512:如果在步骤s510判断代码文件是客户端代码文件,则通过协议把代码文件推送到客户端的对应路径,重启客户端;

步骤s514:如果在步骤s510判断代码文件不是客户端代码文件,服务器替换对应代码文件,重加载。

在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元或模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块或单元的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元或模块可以是或者也可以不是物理上分开的,作为单元或模块显示的部件可以是或者也可以不是物理单元或模块,即可以位于一个地方,或者也可以分布到多个网络单元或模块上。可以根据实际的需要选择其中的部分或者全部单元或模块来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元或模块可以集成在一个处理单元或模块中,也可以是各个单元或模块单独物理存在,也可以两个或两个以上单元或模块集成在一个单元或模块中。上述集成的单元或模块既可以采用硬件的形式实现,也可以采用软件功能单元或模块的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1