CN113190448A - 测试代码更新方法及装置、电子设备、存储介质 - Google Patents
测试代码更新方法及装置、电子设备、存储介质 Download PDFInfo
- Publication number
- CN113190448A CN113190448A CN202110491011.4A CN202110491011A CN113190448A CN 113190448 A CN113190448 A CN 113190448A CN 202110491011 A CN202110491011 A CN 202110491011A CN 113190448 A CN113190448 A CN 113190448A
- Authority
- CN
- China
- Prior art keywords
- code file
- file
- test
- updating
- target
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3696—Methods or tools to render software testable
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种测试代码更新方法及装置、电子设备、存储介质,其中,方法包括:接收所述测试客户端发送的更新指令,所述更新指令包括待更新的文件列表;所述待更新的文件列表中包括多个测试代码文件以及各个所述测试代码文件对应的第一路径信息;根据所述测试代码文件对所述第一路径信息对应的原始代码文件进行更新,得到更新后的目标代码文件;将所述目标代码文件加载至对应的工作进程中,以实现所述目标代码文件的热更新。从而提高测试效率;并且,通过测试服务器来完成测试过程,可以避免影响他人使用该被测试的应用程序。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及测试代码更新方法及装置、电子设备、存储介质。
背景技术
在应用程序设计完成后,测试人员需要对应用程序进行测试,测试人员一般只拥有提交Debug(调试)目录下的代码的权限,而没有服务器部署的物理机器的操作权限,因此,测试人员没有提交其他Release(发布)开发目录的代码的权限。
有时候为了重现问题或者定位问题,测试人员需要给应用程序的代码加一些调试log(日志)或者修改代码的判断条件等情况进行测试。现有技术的处理方式是,测试人员整理出一份测试代码,通过SA(Senior Administrators,系统管理员)将调试代码提交到SVN(Subversion,开放源代码的版本控制系统)版本管理系统,然后操作服务器更新,将调试代码从SVN版本库中下载下来,再重启服务器进程,使之生效,以便测试人员得到相关的测试结果。该方式过程繁琐,不便于测试工作的进行;并且,测试工作在测试代码提交之后再进行,即提交到SVN版本管理系统的测试代码是未经测试的,容易给他人造成阻碍性影响。
发明内容
鉴于上述问题,提出了本申请以便提供克服上述问题或者至少部分地解决上述问题的测试代码更新方法及装置、电子设备、存储介质,包括:
一种测试代码更新方法,所述方法应用于测试客户端对应的测试服务器,所述方法包括:
接收所述测试客户端发送的更新指令,所述更新指令包括待更新的文件列表;所述待更新的文件列表中包括多个测试代码文件以及各个所述测试代码文件对应的第一路径信息;
根据所述测试代码文件对所述第一路径信息对应的原始代码文件进行更新,得到更新后的目标代码文件;
将所述目标代码文件加载至对应的工作进程中,以实现所述目标代码文件的热更新。
可选地,在所述接收所述测试客户端发送的更新指令之前,所述方法还包括:
接收所述测试客户端发送的同步文件指令;
根据所述同步文件指令确定对应的原始代码文件,并计算所述原始代码文件对应的MD5码;
将所述原始代码文件的对应MD5码和对应的路径信息发送至所述测试客户端,以使所述测试客户端根据所述原始代码文件的对应MD5码和对应的路径信息,确定测试代码文件,并确定所述测试代码文件对应的第一路径信息,将所述测试代码文件和所述第一路径信息存放到待更新的文件列表中。
可选地,所述根据所述测试代码文件对所述第一路径信息对应的原始代码文件进行更新,得到更新后的目标代码文件,包括:
判断是否存在所述第一路径信息对应的原始代码文件;
若是,则将所述测试代码文件替换所述原始代码文件,得到所述目标代码文件;
若否,则在所述第一路径信息对应的路径下生成一个新建文件作为所述所述第一路径信息对应的原始代码文件,并将所述测试代码文件替换所述原始代码文件,得到所述目标代码文件。
可选地,所述将所述目标代码文件加载至对应的工作进程中,以实现所述目标代码文件的热更新,包括:
获取所述目标代码文件的更新时间;
当所述更新时间晚于对应的工作进程的启动时间时,则将所述目标代码文件加载至所述工作进程中,以实现所述目标代码文件的热更新。
可选地,在所述当所述更新时间晚于对应的工作进程的启动时间时,则将所述目标代码文件加载至所述工作进程中,以实现所述目标代码文件的热更新之后,所述方法还包括:
当所述目标代码文件热更新完成后,记录对应的重加载时间;
根据所述重加载时间更新所述工作进程的启动时间。
可选地,在所述当所述更新时间晚于对应的工作进程的启动时间时,则将所述目标代码文件加载至所述工作进程中,以实现所述目标代码文件的热更新之后,所述方法还包括:
将所述加载至所述工作进程中的目标代码文件记录到热更新列表中;
向所述测试客户端返回所述热更新列表。
可选地,在所述将所述目标代码文件加载至对应的工作进程中,以实现所述目标代码文件的热更新之后,所述方法还包括:
接收所述测试客户端发送的回退请求;
依据所述回退请求确定待回退的目标代码文件;
将所述待回退的目标代码文件还原成对应的原始代码文件。
一种测试代码更新装置,所述装置应用于测试客户端对应的测试服务器,所述装置包括:
更新指令接收模块,用于接收所述测试客户端发送的更新指令,所述更新指令包括待更新的文件列表;所述待更新的文件列表中包括多个测试代码文件以及各个所述测试代码文件对应的第一路径信息;
目标文件生成模块,用于根据所述测试代码文件对所述第一路径信息对应的原始代码文件进行更新,得到更新后的目标代码文件;
目标文件更新模块,用于将所述目标代码文件加载至对应的工作进程中,以实现所述目标代码文件的热更新。
可选地,所述装置还包括:
同步指令接收模块,用于接收所述测试客户端发送的同步文件指令;
第一计算模块,用于根据所述同步文件指令确定对应的原始代码文件,并计算所述原始代码文件对应的MD5码;
第一发送模块,用于将所述原始代码文件对应的MD5码和对应的路径信息发送至所述测试客户端,以使所述测试客户端根据所述原始代码文件对应的MD5码和对应的路径信息,确定测试代码文件,并确定所述测试代码文件对应的第一路径信息,将所述测试代码文件和所述第一路径信息存放到待更新的文件列表中。
可选地,所述目标文件生成模块,包括:
判断模块,用于判断是否存在所述第一路径信息对应的原始代码文件;
第一更新模块,用于若存在所述第一路径信息对应的原始代码文件,则将所述测试代码文件替换所述原始代码文件,得到所述目标代码文件;
第二更新模块,用于若不存在所述第一路径信息对应的原始代码文件,则在所述第一路径信息对应的路径下生成一个新建文件作为所述所述第一路径信息对应的原始代码文件,并将所述测试代码文件替换所述原始代码文件,得到所述目标代码文件。
可选地,所述目标文件更新模块,包括:
更新时间获取模块,用于获取所述目标代码文件的更新时间;
热更新模块,用于当所述更新时间晚于对应的工作进程的启动时间时,则将所述目标代码文件加载至所述工作进程中,以实现所述目标代码文件的热更新。
可选地,所述装置还包括:
时间记录模块,用于当所述目标代码文件热更新完成后,记录对应的重加载时间;
时间更新模块,用于根据所述重加载时间更新所述工作进程的启动时间。
可选地,所述装置还包括:
生成更新列表模块,用于将所述加载至所述工作进程中的目标代码文件记录到热更新列表中;
返回更新列表模块,用于向所述测试客户端返回所述热更新列表。
可选地,所述装置还包括:
回退请求接收模块,用于接收所述测试客户端发送的回退请求;
回退文件确认模块,用于依据所述回退请求确定待回退的目标代码文件;
回退文件还原模块,用于将所述待回退的目标代码文件还原成对应的原始代码文件。
一种电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的测试代码更新方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的测试代码更新方法的步骤。
本申请具有以下优点:
在本申请的实施例中,测试人员可以通过测试客户端向对应的测试服务器发送更新指令,更新指令包括待更新的文件列表,待更新的文件列表中包括多个测试代码文件以及各个测试代码文件对应的第一路径信息;当测试服务器接收更新指令后,可以根据测试代码文件对第一路径信息对应的原始代码文件进行更新,得到更新后的目标代码文件,并将目标代码文件加载至对应的工作进程中,以实现目标代码文件的热更新;从而提高测试效率;并且,通过测试服务器来完成测试过程,可以避免影响他人使用该被测试的应用程序。
附图说明
为了更清楚地说明本申请的技术方案,下面将对本申请的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例的一种测试代码更新方法的步骤流程图;
图2为本申请一示例中待更新的文件列表的生成过程的步骤流程图;
图3为本申请一示例中更新原始代码文件的过程的步骤流程图;
图4为本申请一示例中执行目标代码文件的热更新过程的步骤流程图;
图5为本申请一示例中回退目标代码文件的过程的步骤流程图;
图6为本申请实施例的一种测试代码更新装置的结构框图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参照图1,示出了本申请一实施例提供的一种测试代码更新方法,该方法应用于与测试客户端对应的测试服务器。测试服务器用于为测试客户端提供相应的应用服务。在本申请实施例中,测试服务器可以与其他服务器拥有相同的SVN版本管理系统,该其他服务器用于为其他客户端提供相应的应用服务。一般地,其他客户端是指用户使用的客户端。该用户应当区别于应用程序的测试人员。
在本申请实施例中,上述方法具体可以包括如下步骤:
步骤101,接收所述测试客户端发送的更新指令,所述更新指令包括待更新的文件列表;所述待更新的文件列表中包括多个测试代码文件以及各个所述测试代码文件对应的第一路径信息;
步骤102,根据所述测试代码文件对所述第一路径信息对应的原始代码文件进行更新,得到更新后的目标代码文件;
步骤103,将所述目标代码文件加载至对应的工作进程中,以实现所述目标代码文件的热更新。
在本申请实施例中,测试人员可以通过测试客户端向对应的测试服务器发送更新指令,更新指令包括待更新的文件列表,待更新的文件列表中包括多个测试代码文件以及各个测试代码文件对应的第一路径信息;当测试服务器接收更新指令后,可以根据测试代码文件对第一路径信息对应的原始代码文件进行更新,得到更新后的目标代码文件,并将目标代码文件加载至对应的工作进程中,以实现目标代码文件的热更新;从而提高测试效率;并且,通过测试服务器来完成测试过程,可以避免影响他人使用该被测试的应用程序。
下面,将对本示例性实施例中测试代码更新方法作进一步地说明。
在步骤101中,接收所述测试客户端发送的更新指令,所述更新指令包括待更新的文件列表;所述待更新的文件列表中包括多个测试代码文件以及各个所述测试代码文件对应的第一路径信息。
在本申请实施例中,更新指令用于指示测试服务器将待更新的文件列表更新至测试服务器的对应路径中。其中,待更新的文件列表包括多个测试代码文件,该测试代码文件是测试人员在测试客户端中针对测试服务器中对应的原始代码文件进行修改得到的。需要说明的是,测试代码文件包括新增的文件。
具体地,测试服务器运行着从SVN版本库上下载下来的目标应用程序的最新版本的代码文件;测试客户端可以从测试服务器下载目标应用程序的最新版本的代码文件,也可以通过从其他设备导入等方式获得目标应用程序的最新版本的代码文件;将获得的代码文件保存在本地存储器中,以便测试人员根据实际测试工作的需求对测试客户端本地的代码文件进行修改,得到修改后的代码文件,即上述测试代码文件。
待更新的文件列表还包括每个测试代码文件对应的第一路径信息,第一路径信息是指测试代码文件在测试客户端中的相对路径的信息;其中,相对路径是指由这个文件所在的路径引起的跟其他文件的路径关系。
在具体实现中,测试客户端可以以测试代码文件对应的第一路径为key(关键字),测试代码文件的内容为值,组成更新文件集合,即待更新的文件列表,然后将该更新文件集合数据作为更新指令发送至测试服务器。示例性地,更新文件集合可以表示为:{"Server/Common/file_1.py"="content_1","Server/Common/file_2.py"="content_2"},其中,Server/Common/file_1.py为测试代码文件content_1的第一路径信息;Server/Common/file_2.py为测试代码文件content_2的第一路径信息;对应的更新指令可以表示为:/gmreload2 dict,其中,/gm reload2用于指示更新,参数dict为待更新的文件列表与对应的测试代码文件内容。
一般地,测试代码文件可以由测试人员在修改时主动标记得到,然后再将测试代码文件打包成待更新的文件列表,但是该方式会增加测试人员的工作量,也容易因为测试人员的人为疏忽造成遗漏或错误。在本申请一可选实施例中,可以对待更新的文件列表的生成过程进行改进,因此,在上述接收所述测试客户端发送的更新指令的步骤之前,该方法还可以包括:
接收所述测试客户端发送的同步文件指令;
根据所述同步文件指令确定对应的第二原始代码文件,并计算所述第二原始代码文件对应的MD5码;
将所述第二原始代码文件对应的MD5码和对应的第二路径信息发送至所述测试客户端,以使所述测试客户端根据所述第二原始代码文件对应的MD5码和所述第二路径信息,确定测试代码文件,并确定所述测试代码文件对应的第一路径信息,以及将所述测试代码文件和所述第一路径信息存放到待更新的文件列表中。
其中,同步文件指令用于将测试客户端中的待同步文件同步至测试服务器对应的路径下,以便进行调试或改变代码逻辑。待同步文件可以指测试客户端中与目标应用程序相关的代码文件,该代码文件可以包括经测试人员修改后的测试代码文件和未经修改的原始代码文件。
测试服务器接收同步文件指令后,可以根据同步文件指令确定目标应用程序代码的根目录,并获取根目录下的多个原始代码文件,然后计算各个第原始代码文件对应的MD5(MD5Message-Digest Algorithm,MD5信息摘要算法)码。为了便于区分,将测试服务器中与同步文件指令对应的原始代码文件表示为第二原始代码文件。
可选地,同步文件指令中还可以包括第三路径信息,当测试人员修改测试客户端中部分目录下的原始代码文件时,将该部分目录下的代码文件确定为待同步文件,并且将该部分目录的路径信息附加在同步文件指令中,因此,第三路径信息用于指示待同步文件在测试客户端中的相对路径的信息;测试服务器可以根据目标应用程序代码的根目录和第三路径信息确定测试服务器中对应的绝对路径,为了便于区分,将测试服务器中与同步文件指令对应的绝对路径的信息表示为第二路径信息;然后获取第二路径信息对应的各个第二原始代码文件,并计算各个第二原始代码文件对应的MD5码。
示例性地,当目标应用程序代码的根目录为Server,Server下面含2个文件夹,分别是Server/Data和Server/Common,当同步文件指令表示为:/gm reload时;表示将测试客户端中的目标应用程序代码的根目录下的待同步文件同步至测试服务器中目标应用程序代码的根目录下;当同步文件指令表示为:/gm reload Server/Common时,其中,/gmreload用于指示同步文件的操作,参数Server/Common为测试服务器中的相对路径,即表示将测试客户端中的Common文件夹中的待同步文件同步至测试服务器中的Common文件夹中。
测试服务器可以使用开源的hashlib库计算出第二原始代码文件的内容对应的MD5码,确保信息传输完整一致。由于计算出的MD5码是一个不超过32个字符的字符串,还可以减少后续传输的流量,提高传输速度。
测试服务器在计算出对应的每个第二原始代码文件对应的MD5码后,可以将第二原始代码文件对应的MD5码和该第二原始代码文件在测试服务器中的相对路径的信息(第二路径信息)发送至测试客户端。
具体地,可以以第二原始代码文件的第二路径信息为key,对应的MD5码为值组成第一集合,示例性地,该第一集合可以表示为:{"Server/Common/file_1.py"="md5_1","Server/Common/file_2.py"="md5_2"};然后发送至测试客户端;同时,还可以将测试客户端发送的同步文件指令中的参数一并发回测试客户端。
在计算机领域,如果两个文件的md5码相同,则认为这两个文件内容完全一致。由于第二原始代码文件相对于测试服务器的根目录是已知的、固定的,并且测试客户端中的目标应用程序的相关代码文件与测试服务器中的目标应用程序的相关代码文件具有相同的目录结构,因此,测试客户端接收测试服务器针对同步文件指令返回的信息后,可以根据第二路径信息确定第二原始代码文件在测试客户端中的绝对路径,然后获取该绝对路径下的各个待同步文件的MD5码。以待同步文件的相对路径为key,对应的MD5码为值组成第二集合。
测试客户端可以将第二集合中各个待同步文件的相对路径依次与第一集合中的第二路径信息进行比较,如果在第一集合中找不到与待同步文件的相对路径相同的第二路径信息,则说明该待同步文件为新增的代码文件,确定该待同步文件为测试代码文件,将该测试代码文件和测试代码文件的相对路径的信息(第一路径信息)存放到预设的待更新的文件列表中。
如果在第一集合中可以找到与待同步文件的相对路径相同的第二路径信息,则比较该相对路径对应的MD5码与第二路径信息对应的MD5码是否相同,若相同,则说明该待同步文件相对于原始代妈文件没有发生修改,可以跳过该待同步文件;若不同,则将该待同步文件相对于原始代妈文件发生修改,确定该待同步文件为测试代码文件,将该测试代码文件和测试代码文件的相对路径的信息(第一路径信息)存放到预设的待更新的文件列表中。
在步骤102中,根据所述测试代码文件对所述第一路径信息对应的原始代码文件进行更新,得到更新后的目标代码文件。
其中,第一路径信息对应的原始文件代码是指测试服务器中与第一路径信息对应路径下的原始文件代码。
上述根据所述测试代码文件对所述第一路径信息对应的原始代码文件进行更新,得到更新后的目标代码文件的过程,具体可以包括:
判断是否存在所述第一路径信息对应的原始代码文件;
若是,则将所述测试代码文件替换所述原始代码文件,得到所述目标代码文件;
若否,则在所述第一路径信息对应的路径下生成一个新建文件作为所述所述第一路径信息对应的原始代码文件,并将所述测试代码文件替换所述原始代码文件,得到所述目标代码文件。
具体地,测试服务器可以根据第一路径信息和目标应用程序代码在测试服务器中的根目录确定对应的第四路径信息,第四路径信息是指测试代码文件在测试服务器中的绝对路径的信息。
测试服务器判断是否存在第一路径信息对应的原始代码文件,即测试服务器判断第四路径信息的路径下是否存在原始代码文件,若存在,则将测试代码文件替换原始代码文件,即将测试代码文件的内容覆盖原始代码文件的内容,得到更新后的目标代码文件;若不存在,则在该路径下生成一个新建文件,并将测试代码文件替换该新建文件,即将测试代码文件的内容写入该新建文件中,得到更新后的目标代码文件。其中,目标代码文件的内容与对应的测试代码文件的内容相同。
可以理解,当存在第四路径信息对应的原始代码文件时,说明测试人员在测试客户端对原始代码文件进行了修改,得到对应的测试代码文件;因此,在更新时,将测试代码文件的内容覆盖对应的原始代码文件的内容。当不存在第四路径信息对应的原始代码文件时,说明测试人员在测试客户端新增了文件,因此,在更新时,在对应的路径下创建一个新建文件,然后将测试代码文件的内容写入到新建文件中,以实现在测试服务器中新增对应的文件。
在一可选实施例中,在上述得到目标代码文件之后,该方法还可以包括:
向所述测试客户端发送第一反馈信息,所述第一反馈信息用于表示测试服务器完成了将待更新的文件列表中的测试代码文件更新至测试服务器中的对应路径下,以使测试客户端的测试人员可以获知测试服务器的执行结果,了解更新进度。
在步骤103中,将所述目标代码文件加载至对应的工作进程中,以实现所述目标代码文件的热更新。
上述得到的更新后的目标代码文件是存储在测试服务器的硬盘上,为了使目标代码文件生效,达到修正BUG(漏洞)或者增加新功能的目的,在本申请实施例中,测试服务器在得到更新后的目标代码文件后,可以将目标代码文件加载到对应的工作进程中,以实现目标代码文件的热更新。
在一可选实施例中,上述将所述目标代码文件加载至对应的工作进程中,以实现所述目标代码文件的热更新的过程,具体可以包括:
获取所述目标代码文件的更新时间;
当所述更新时间晚于对应的工作进程的启动时间时,则将所述目标代码文件加载至所述工作进程中,以实现所述目标代码文件的热更新。
其中,目标代码文件的更新时间是指目标代码文件的生成时间,也可以认为是第一路径信息对应的原始代码文件被修改的时间。工作进程的启动时间可以认为是目标应用程序启动后的时间。
当目标代码文件的更新时间晚于对应工作进程的启动时间时,说明目标应用程序启动后目标代码文件对应的原始代码文件发生了变更,则将目标代码文件加载至对应的工作进程中,实现在不停机的状态下对目标应用程序的代码进行更改并使之生效。
当目标代码文件的更新时间早于对应工作进程的启动时间时,说明目标应用程序启动后目标代码文件对应的原始代码文件没有发生变更,此时可以执行空操作。
进一步地,在一可选实施例中,在上述当所述更新时间晚于对应的工作进程的启动时间时,则将所述目标代码文件加载至所述工作进程中,以实现所述目标代码文件的热更新之后,该方法还可以包括:
当所述目标代码文件热更新完成后,记录对应的重加载时间;
根据所述重加载时间更新所述工作进程的启动时间。
其中,重加载时间为目标应用程序中所有目标代码文件热更新完成时的时间。
当目标应用程序中的所有目标代码文件热更新完成后,可以记录重加载时间,然后根据重加载时间更新目标应用程序的启动时间,可以有效避免对目标代码文件进行重复的热更新操作。
进一步地,在一可选实施例中,在上述当所述更新时间晚于对应的工作进程的启动时间时,则将所述目标代码文件加载至所述工作进程中,以实现所述目标代码文件的热更新之后,该方法还可以包括:
将所述加载至所述工作进程中的目标代码文件记录到热更新列表中;
向所述测试客户端返回所述热更新列表。
在本实施例中,对于多个目标代码文件,可以依次进行热更新,当目标代码文件热更新成功后,可以将该目标代码文件记录到预设的热更新列表中,当所有的目标代码文件热更新完成后,测试服务器可以将热更新列表发送给测试客户端,以使测试客户端的测试人员可以获知测试服务器的执行结果,了解热更新进度。
进一步地,在一可选实施例中,在上述将所述目标代码文件加载至对应的工作进程中,以实现所述目标代码文件的热更新之后,该方法还可以包括:
接收所述测试客户端发送的回退请求;
依据所述回退请求确定待回退的目标代码文件;
将所述待回退的目标代码文件还原成对应的原始代码文件。
其中,回退请求用于请求将更新后的目标代码文件还原成对应的更新前的原始代码文件。
由于测试服务器中的目标应用程序代码文件是通过SVN版本系统进行更新的,因此,可以接收测试客户端发送的回退请求,并根据回退请求确定目标应用程序代码的根目录,然后获取根目录下的多个目标代码文件,最后将多个目标代码文件还原成对应的原始代码文件。
可选地,回退请求中还可以包括回退路径信息,该回退路径信息是待回退的目标代码文件在测试客户端中的相对路径的信息;测试服务器根据该回退路径信息和目标应用程序代码的根目录可以确定待回退的目标代码文件在测试服务器中的绝对路径的信息,然后将该绝对路径下的目标代码文件还原成对应的原始代码文件。
示例性地,当回退请求表示为:/gm revert时,表示将测试服务器中目标应用程序代码的根目录下的所有目标代码文件还原成对应的原始代码文件。当回退请求表示为:/gmrevert Server/Data时,其中,/gm revert为请求回退的操作,Server/Data为参数,表示要还原的目标代码文件的路径。服务器接收到回退请求后,可以执行svn revert-R Server/Data命令,其中,svn revert为svn版本管理系统支持的命令,-R参数是svn版本管理系统支持的表示递归执行该目录下的所有子目录的回退操作,Server/Data为参数,表示要还原的目标代码文件的路径;测试服务器执行该命令后,即可把指定路径下的目标代码文件回退到与svn版本库一致。
进一步地,在一可选实施例中,在上述将所述待回退的目标代码文件还原成对应的原始代码文件的过程后,还包括:
将还原成对应的原始代码文件的待回退的目标代码文件添加到恢复文件列表中;
向所述测试客户端返回所述恢复文件列表。
在本实施例中,对于多个待回退的目标代码文件,可以依次进行还原操作,当待回退的目标代码文件成功还原后,可以将该待回退的目标代码文件记录到预设的恢复文件列表中,当所有待回退的目标代码文件热成功还原后,测试服务器可以将恢复文件列表发送给测试客户端,以使测试客户端的测试人员可以获知测试服务器的执行结果,了解回退进度。需要说明的是,若不存在待回退的目标代码文件,则对应的恢复文件列表为空;即向测试客户端返回一个空列表。
进一步地,在一可选实施例中,
将所述原始代码文件加载至所述工作进程中。
在本实施例中,当测试服务器的硬盘中的待回退的目标代码文件完成还原操作后,由于测试服务器在接收回退请求之前可能已经执行了对目标代码文件的热更新,因此,为了使针对该回退操作得到的原始代码文件生效,在本申请实施例中,测试服务器在将待回退的目标代码文件还原至对应的原始代码文件后,更新该原始代码文件的更新时间,由于更新时间晚于工作进程的启动时间,因此,可以将与待回退的目标代码文件对应的原始代码文件加载到对应的工作进程中,以实现原始代码文件的热更新。
在本申请实施例中,测试人员可以通过测试客户端向对应的测试服务器发送更新指令,更新指令包括待更新的文件列表,待更新的文件列表中包括多个测试代码文件以及各个测试代码文件对应的第一路径信息;当测试服务器接收更新指令后,可以根据测试代码文件对第一路径信息对应的原始代码文件进行更新,得到更新后的目标代码文件,并将目标代码文件加载至对应的工作进程中,以实现目标代码文件的热更新;从而提高测试效率;并且,通过测试服务器来完成测试过程,可以避免影响他人使用该被测试的应用程序。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
为了使得本领域技术人员能够更加清楚地了解本申请的技术方案,下面将分别对待更新的文件列表的生成过程、更新原始代码文件的过程、执行目标代码文件的热更新过程以及回退目标代码文件的过程进行举例说明。
请参照图2,示出了本申请一示例中待更新的文件列表的生成过程的步骤流程,具体可以包括如下步骤:
步骤201,测试客户端发起同步文件指令。
步骤202,测试服务器接收同步文件指令后,计算同步文件指令对应的同步路径下所有原始代码文件的内容的MD5码。
步骤203,测试服务器把同步路径和对应的MD5码构成的第一文件列表发送给测试客户端。
步骤204,测试客户端计算与同步路径对应的本地同步路径下所有本地原始代码文件的内容的本地MD5码;将本地同步路径和对应的本地MD5码构成第二文件列表。
步骤205,测试客户端将第二文件列表中的本地同步路径和第一列表中的同步路径进行比较,确定新增的测试代码文件;将第二文件列表中的本地MD5码和第一列表中的MD5进行比较,确定在原始代码文件上修改得到的测试代码文件。
步骤206,将步骤205得到的测试代码文件放入待更新的文件列表中。
请参照图3,示出了本申请一示例中更新原始代码文件的过程的步骤流程,具体可以包括如下步骤:
步骤301,测试客户端将待更新的文件列表中的所有测试代码文件的内容读取到缓存里,以测试代码文件相对于测试服务器源代码的根目录的相对路径作为索引缓存起来,发送给测试服务器。
如{"Server/Common/file1.py"="content1","Server/Common/file2.py"="content2"},然后通过json.dumps把该数据打包成一串字符发送给测试服务器。
步骤302,测试服务器根据相对路径把对应的测试代码文件的内容覆盖写入该相对路径,得到目标代码文件。
具体的,服务器收到客户端发过来的消息后,先把对应的字符串内容使用json.loads解析成python的字典结构,然后获取到测试服务器中源代码根目录所在的绝对路径,源代码根目录绝对路径+文件相对路径=文件的绝对路径,按照该路径,如果文件本身不存在,则创建一个对应的文件,并把内容写入文件里;如果该文件存在,则直接把内容覆盖写入该文件路径。
步骤303,测试服务器执行目标代码文件的热更新。把测试客户端修改的内容重新加载到运行的测试服务器进程里。
步骤304,测试服务器将覆盖写入的文件列表和成功执行热更新的文件列表发送给测试客户端。
请参照图4,示出了本申请一示例中执行目标代码文件的热更新过程的步骤流程,具体可以包括如下步骤:
步骤401,测试服务器在目标应用程序进程启动的时候记录当前启动时间。
该启动时间用于后续文件热更新时,与文件的最后修改时间进行比较,来决定该文件是否需要执行热更新。
步骤402,测试服务器把目标代码文件记载到工作进程中。
具体地,根据Python的语言属性,通过import的方式,把目标代码文件对应的模块引入工作空间,同时也缓存在sys.modules管理器中。
步骤403,测试服务器在模块加载时,注册对应模块的重加载函数。
具体地,注册函数是模块import时,已经写好的reload执行函数,当收到热更新请求时,就把该函数执行一遍,主要为了重置该模块的数据。这个注册reload函数是非必须的,主要从模块本身的特性来看是否需要重置模块的数据,如果有需要则注册该函数用于实现重置指定的数据;如果不需要,则无需注册该模块的reload函数。这些模块的reload函数组成集合ReloadFuncDict。
步骤404,测试服务器收到热更新请求时,先执行所有注册的重加载函数。
具体地,遍历从步骤403中得到的ReloadFuncDict,并逐个执行该函数,重置模块的数据。
步骤405,测试服务器执行模块热更新。
具体地,使用reloading作为热更新是否进行中的标记,开始执行模块热更新,如果reloading为True,此时再次收到重复的热更新请求,则直接返回不处理。如reloading为False,则打上reloading为True的标记,进入模块热更新。从sys.modules管理器中获取所有模块的集合,通过module.__file__属性查看模块所在文件的路径,并且通过os库的文件操作os.stat(filename).st_mtime获取该文件的最后修改时间,这个时间与从步骤401步骤得到的目标应用程序进程启动时间last_reload_time比较,如果该文件的最后修改时间早于或等于last_reload_time,那表示这个文件没有修改,不需要进行热更新;如果该文件的最后修改时间晚于last_reload_time,那表示文件后续有修改,需要进行热更新,然后把该模块放入待热更新模块列表里,待遍历完sys.modules管理器的所有模块后,重置last_reload_time为当前的时间。
对待更新模块列表的所有模块执行尝试__import__,将成功try import的模块,加入成功热更新的模块列表,否则不做处理。
把成功import的模块重新放入sys.modules管理器里,reloading的标记重置为False,表示模块的热更新执行完毕。
步骤406,测试服务器把成功热更新的模块列表发送给测试客户端。
具体的,把步骤405中成功热更新的模块列表发送给客户端,让用户知道执行结果。
请参照图5,示出了本申请一示例中回退目标代码文件的过程的步骤流程,具体可以包括如下步骤:
步骤501,测试客户端发送回退请求。
具体的,因为服务器的代码文件是通过svn版本系统进行更新的,同样的回退操作也采用svn命令的方式进行。
启动服务器后,游戏客户端与服务器建立连接,客户端向连接的服务器发起指令请求,请求服务器端回退被修改的文件,发起的回退文件指令请求里可以指定回退文件的路径,这里的路径是指要回退文件目录相对于服务器端源代码根目录Server的相对路径,也可以不指定,默认回退Server目录下的所有修改文件。
步骤502,测试服务器接收到回退请求后,根据指定的回退路径,执行回退恢复操作。
具体的,服务器接收到请求后执行svn revert-R Server/Data命令,其中svnrevert为svn版本管理系统支持的命令,-R参数svn版本管理系统支持的表示递归执行该目录下的所有子目录的回退操作,Server/Data为参数,表示要回退代码的路径,执行该命令后,即可把指定目录下的文件回退到与svn版本库一致。
读取指令执行结果,执行结果会显示回退的文件列表。
步骤503,服务器执行恢复文件的热更新。
具体的,从步骤502中得到恢复文件的列表后,按照与图4相似的流程逐个执行该列表中文件的热更新,把修改的内容重新import到运行的服务器程序里。
步骤504,测试服务器获取回退恢复操作的执行结果。
具体的,从步骤502中获取到恢复文件的列表,把该列表发送给测试客户端,让用户知道这一次的执行结果,如果没有恢复文件,也会同步一个空列表给测试客户端。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
参照图6,示出了本申请的一种测试代码更新装置实施例的结构框图,在本申请实施例中,该装置应用于测试客户端对应的测试服务器,所述装置具体可以包括如下模块:
更新指令接收模块601,用于接收所述测试客户端发送的更新指令,所述更新指令包括待更新的文件列表;所述待更新的文件列表中包括多个测试代码文件以及各个所述测试代码文件对应的第一路径信息;
目标文件生成模块602,用于根据所述测试代码文件对所述第一路径信息对应的原始代码文件进行更新,得到更新后的目标代码文件;
目标文件更新模块603,用于将所述目标代码文件加载至对应的工作进程中,以实现所述目标代码文件的热更新。
可选地,所述装置还包括:
同步指令接收模块,用于接收所述测试客户端发送的同步文件指令;
第一计算模块,用于根据所述同步文件指令确定对应的原始代码文件,并计算所述原始代码文件对应的MD5码;
第一发送模块,用于将所述原始代码文件对应的MD5码和对应的路径信息发送至所述测试客户端,以使所述测试客户端根据所述原始代码文件对应的MD5码和对应的路径信息,确定测试代码文件,并确定所述测试代码文件对应的第一路径信息,将所述测试代码文件和所述第一路径信息存放到待更新的文件列表中。
可选地,所述目标文件生成模块602,包括:
判断模块,用于判断是否存在所述第一路径信息对应的原始代码文件;
第一更新模块,用于若存在所述第一路径信息对应的原始代码文件,则将所述测试代码文件替换所述原始代码文件,得到所述目标代码文件;
第二更新模块,用于若不存在所述第一路径信息对应的原始代码文件,则在所述第一路径信息对应的路径下生成一个新建文件作为所述所述第一路径信息对应的原始代码文件,并将所述测试代码文件替换所述原始代码文件,得到所述目标代码文件。
可选地,所述目标文件更新模块603,包括:
更新时间获取模块,用于获取所述目标代码文件的更新时间;
热更新模块,用于当所述更新时间晚于对应的工作进程的启动时间时,则将所述目标代码文件加载至所述工作进程中,以实现所述目标代码文件的热更新。
可选地,所述装置还包括:
时间记录模块,用于当所述目标代码文件热更新完成后,记录对应的重加载时间;
时间更新模块,用于根据所述重加载时间更新所述工作进程的启动时间。
可选地,所述装置还包括:
生成更新列表模块,用于将所述加载至所述工作进程中的目标代码文件记录到热更新列表中;
返回更新列表模块,用于向所述测试客户端返回所述热更新列表。
可选地,所述装置还包括:
回退请求接收模块,用于接收所述测试客户端发送的回退请求;
回退文件确认模块,用于依据所述回退请求确定待回退的目标代码文件;
回退文件还原模块,用于将所述待回退的目标代码文件还原成对应的原始代码文件。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请实施例还公开了电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的测试代码更新方法的步骤。
本申请实施例还公开了计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的测试代码更新方法的步骤。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种测试代码更新方法、一种测试代码更新装置、电子设备和存储介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种测试代码更新方法,其特征在于,所述方法应用于测试客户端对应的测试服务器,所述方法包括:
接收所述测试客户端发送的更新指令,所述更新指令包括待更新的文件列表;所述待更新的文件列表中包括多个测试代码文件以及各个所述测试代码文件对应的第一路径信息;
根据所述测试代码文件对所述第一路径信息对应的原始代码文件进行更新,得到更新后的目标代码文件;
将所述目标代码文件加载至对应的工作进程中,以实现所述目标代码文件的热更新。
2.根据权利要求1所述的方法,其特征在于,在所述接收所述测试客户端发送的更新指令之前,所述方法还包括:
接收所述测试客户端发送的同步文件指令;
根据所述同步文件指令确定对应的原始代码文件,并计算所述原始代码文件对应的MD5码;
将所述原始代码文件对应的MD5码和对应的路径信息发送至所述测试客户端,以使所述测试客户端根据所述原始代码文件的对应MD5码和对应的路径信息,确定测试代码文件,并确定所述测试代码文件对应的第一路径信息,将所述测试代码文件和所述第一路径信息存放到待更新的文件列表中。
3.根据权利要求1所述的方法,其特征在于,所述根据所述测试代码文件对所述第一路径信息对应的原始代码文件进行更新,得到更新后的目标代码文件,包括:
判断是否存在所述第一路径信息对应的原始代码文件;
若是,则将所述测试代码文件替换所述原始代码文件,得到所述目标代码文件;
若否,则在所述第一路径信息对应的路径下生成一个新建文件作为所述所述第一路径信息对应的原始代码文件,并将所述测试代码文件替换所述原始代码文件,得到所述目标代码文件。
4.根据权利要求1所述的方法,其特征在于,所述将所述目标代码文件加载至对应的工作进程中,以实现所述目标代码文件的热更新,包括:
获取所述目标代码文件的更新时间;
当所述更新时间晚于对应的工作进程的启动时间时,则将所述目标代码文件加载至所述工作进程中,以实现所述目标代码文件的热更新。
5.根据权利要求4所述的方法,其特征在于,在所述当所述更新时间晚于对应的工作进程的启动时间时,则将所述目标代码文件加载至所述工作进程中,以实现所述目标代码文件的热更新之后,所述方法还包括:
当所述目标代码文件热更新完成后,记录对应的重加载时间;
根据所述重加载时间更新所述工作进程的启动时间。
6.根据权利要求4所述的方法,其特征在于,在所述当所述更新时间晚于对应的工作进程的启动时间时,则将所述目标代码文件加载至所述工作进程中,以实现所述目标代码文件的热更新之后,所述方法还包括:
将所述加载至所述工作进程中的目标代码文件记录到热更新列表中;
向所述测试客户端返回所述热更新列表。
7.根据权利要求1所述的方法,其特征在于,在所述将所述目标代码文件加载至对应的工作进程中,以实现所述目标代码文件的热更新之后,所述方法还包括:
接收所述测试客户端发送的回退请求;
依据所述回退请求确定待回退的目标代码文件;
将所述待回退的目标代码文件还原成对应的原始代码文件。
8.一种测试代码更新装置,其特征在于,所述装置应用于测试客户端对应的测试服务器,所述装置包括:
更新指令接收模块,用于接收所述测试客户端发送的更新指令,所述更新指令包括待更新的文件列表;所述待更新的文件列表中包括多个测试代码文件以及各个所述测试代码文件对应的第一路径信息;
目标文件生成模块,用于根据所述测试代码文件对所述第一路径信息对应的原始代码文件进行更新,得到更新后的目标代码文件;
目标文件更新模块,用于将所述目标代码文件加载至对应的工作进程中,以实现所述目标代码文件的热更新。
9.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至7中任一项所述的测试代码更新方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的测试代码更新方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110491011.4A CN113190448B (zh) | 2021-05-06 | 2021-05-06 | 测试代码更新方法及装置、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110491011.4A CN113190448B (zh) | 2021-05-06 | 2021-05-06 | 测试代码更新方法及装置、电子设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113190448A true CN113190448A (zh) | 2021-07-30 |
CN113190448B CN113190448B (zh) | 2022-11-04 |
Family
ID=76983798
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110491011.4A Active CN113190448B (zh) | 2021-05-06 | 2021-05-06 | 测试代码更新方法及装置、电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113190448B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114741315A (zh) * | 2022-04-28 | 2022-07-12 | 深圳市紫光同创电子有限公司 | 用例更新方法、装置、电子设备及存储介质 |
CN116149882A (zh) * | 2023-04-19 | 2023-05-23 | 北京轻松筹信息技术有限公司 | 一种生成接口描述文件的方法、装置、设备和存储介质 |
CN118445178A (zh) * | 2024-04-22 | 2024-08-06 | 蜜源(广州)新媒体科技有限公司 | 自动化测试脚本管理方法、装置、计算机设备和存储介质 |
Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070234300A1 (en) * | 2003-09-18 | 2007-10-04 | Leake David W | Method and Apparatus for Performing State-Table Driven Regression Testing |
US20080209401A1 (en) * | 2007-02-22 | 2008-08-28 | Microsoft Corporation | Techniques for integrating debugging with decompilation |
CN102063370A (zh) * | 2010-12-17 | 2011-05-18 | 北京控制工程研究所 | 一种从总线指令流中提取实际执行指令和预取指令的方法 |
US20110197176A1 (en) * | 2010-02-08 | 2011-08-11 | Microsoft Corporation | Test Code Qualitative Evaluation |
US8607208B1 (en) * | 2008-10-01 | 2013-12-10 | Oracle International Corporation | System and methods for object code hot updates |
US20150113518A1 (en) * | 2012-03-22 | 2015-04-23 | Irdeto Canada Corporation | Updating software components |
CN104714882A (zh) * | 2013-12-17 | 2015-06-17 | 腾讯科技(深圳)有限公司 | 代码信息处理的方法及装置 |
CN105045717A (zh) * | 2015-08-18 | 2015-11-11 | 网易(杭州)网络有限公司 | 测试环境部署方法、装置和系统 |
US20150355898A1 (en) * | 2014-06-04 | 2015-12-10 | Netease (Hangzhou) Network Co., Ltd. | Hot-update method and apparatus |
US20160110124A1 (en) * | 2014-10-21 | 2016-04-21 | International Business Machines Corporation | Detecting error count deviations for non-volatile memory blocks for advanced non-volatile memory block management |
US20160147633A1 (en) * | 2014-11-20 | 2016-05-26 | Fujitsu Limited | Generation of software test code |
US20170147324A1 (en) * | 2015-11-20 | 2017-05-25 | Google Inc. | Dynamic update of an application in compilation and deployment with cold-swapping |
CN107085555A (zh) * | 2017-04-19 | 2017-08-22 | 广州视源电子科技股份有限公司 | 代码测试方法、装置、终端及存储介质 |
CN107193607A (zh) * | 2017-05-26 | 2017-09-22 | 网易(杭州)网络有限公司 | 用于更新代码文件的方法和装置、存储介质、处理器以及终端 |
CN107480066A (zh) * | 2017-08-18 | 2017-12-15 | 网易(杭州)网络有限公司 | 代码覆盖率统计方法、装置、存储介质、处理器和终端 |
CN109564608A (zh) * | 2016-07-29 | 2019-04-02 | 高通股份有限公司 | 对用于应用二进制代码的经更新的版本的目标应用功能的虚拟存储器地址进行更新 |
CN110309655A (zh) * | 2019-07-05 | 2019-10-08 | 武汉绿色网络信息服务有限责任公司 | 一种检测app更新过程中安全性的方法以及检测装置 |
CN111045944A (zh) * | 2019-12-11 | 2020-04-21 | 广州品唯软件有限公司 | 回归测试方法、装置、系统及计算机可读存储介质 |
CN112000567A (zh) * | 2019-12-04 | 2020-11-27 | 国网河北省电力有限公司 | 一种基于云平台的调控软件测试服务方法 |
US20210011835A1 (en) * | 2019-07-12 | 2021-01-14 | HCL America Inc. | System and method for debugging source code of an application |
-
2021
- 2021-05-06 CN CN202110491011.4A patent/CN113190448B/zh active Active
Patent Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070234300A1 (en) * | 2003-09-18 | 2007-10-04 | Leake David W | Method and Apparatus for Performing State-Table Driven Regression Testing |
US20080209401A1 (en) * | 2007-02-22 | 2008-08-28 | Microsoft Corporation | Techniques for integrating debugging with decompilation |
US8607208B1 (en) * | 2008-10-01 | 2013-12-10 | Oracle International Corporation | System and methods for object code hot updates |
US20110197176A1 (en) * | 2010-02-08 | 2011-08-11 | Microsoft Corporation | Test Code Qualitative Evaluation |
CN102063370A (zh) * | 2010-12-17 | 2011-05-18 | 北京控制工程研究所 | 一种从总线指令流中提取实际执行指令和预取指令的方法 |
US20150113518A1 (en) * | 2012-03-22 | 2015-04-23 | Irdeto Canada Corporation | Updating software components |
CN104714882A (zh) * | 2013-12-17 | 2015-06-17 | 腾讯科技(深圳)有限公司 | 代码信息处理的方法及装置 |
US20150355898A1 (en) * | 2014-06-04 | 2015-12-10 | Netease (Hangzhou) Network Co., Ltd. | Hot-update method and apparatus |
US20160110124A1 (en) * | 2014-10-21 | 2016-04-21 | International Business Machines Corporation | Detecting error count deviations for non-volatile memory blocks for advanced non-volatile memory block management |
US20160147633A1 (en) * | 2014-11-20 | 2016-05-26 | Fujitsu Limited | Generation of software test code |
CN105045717A (zh) * | 2015-08-18 | 2015-11-11 | 网易(杭州)网络有限公司 | 测试环境部署方法、装置和系统 |
US20170147324A1 (en) * | 2015-11-20 | 2017-05-25 | Google Inc. | Dynamic update of an application in compilation and deployment with cold-swapping |
CN109564608A (zh) * | 2016-07-29 | 2019-04-02 | 高通股份有限公司 | 对用于应用二进制代码的经更新的版本的目标应用功能的虚拟存储器地址进行更新 |
CN107085555A (zh) * | 2017-04-19 | 2017-08-22 | 广州视源电子科技股份有限公司 | 代码测试方法、装置、终端及存储介质 |
CN107193607A (zh) * | 2017-05-26 | 2017-09-22 | 网易(杭州)网络有限公司 | 用于更新代码文件的方法和装置、存储介质、处理器以及终端 |
CN107480066A (zh) * | 2017-08-18 | 2017-12-15 | 网易(杭州)网络有限公司 | 代码覆盖率统计方法、装置、存储介质、处理器和终端 |
CN110309655A (zh) * | 2019-07-05 | 2019-10-08 | 武汉绿色网络信息服务有限责任公司 | 一种检测app更新过程中安全性的方法以及检测装置 |
US20210011835A1 (en) * | 2019-07-12 | 2021-01-14 | HCL America Inc. | System and method for debugging source code of an application |
CN112000567A (zh) * | 2019-12-04 | 2020-11-27 | 国网河北省电力有限公司 | 一种基于云平台的调控软件测试服务方法 |
CN111045944A (zh) * | 2019-12-11 | 2020-04-21 | 广州品唯软件有限公司 | 回归测试方法、装置、系统及计算机可读存储介质 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114741315A (zh) * | 2022-04-28 | 2022-07-12 | 深圳市紫光同创电子有限公司 | 用例更新方法、装置、电子设备及存储介质 |
CN114741315B (zh) * | 2022-04-28 | 2023-06-13 | 深圳市紫光同创电子有限公司 | 用例更新方法、装置、电子设备及存储介质 |
CN116149882A (zh) * | 2023-04-19 | 2023-05-23 | 北京轻松筹信息技术有限公司 | 一种生成接口描述文件的方法、装置、设备和存储介质 |
CN116149882B (zh) * | 2023-04-19 | 2023-08-08 | 北京轻松筹信息技术有限公司 | 一种生成接口描述文件的方法、装置、设备和存储介质 |
CN118445178A (zh) * | 2024-04-22 | 2024-08-06 | 蜜源(广州)新媒体科技有限公司 | 自动化测试脚本管理方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113190448B (zh) | 2022-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113190448B (zh) | 测试代码更新方法及装置、电子设备、存储介质 | |
US11741046B2 (en) | Method and apparatus for creating system disk snapshot of virtual machine | |
US10810035B2 (en) | Deploying a cloud instance of a user virtual machine | |
CN107193607B (zh) | 用于更新代码文件的方法和装置、存储介质、处理器以及终端 | |
US10949401B2 (en) | Data replication in site recovery environment | |
CN111399873A (zh) | 一种模型更新方法及装置 | |
US20070150433A1 (en) | Method for managing file in version control system | |
CN109766114B (zh) | 一种补丁文件的处理方法和装置 | |
CN106445643B (zh) | 克隆、升级虚拟机的方法及设备 | |
CN104182294A (zh) | 一种文件备份、文件恢复方法及装置 | |
CN105867903A (zh) | 代码库拆分的方法及装置 | |
CN113254394B (zh) | 一种快照处理方法、系统、设备及存储介质 | |
CN107992763B (zh) | 一种文件系统的掉电保护方法及装置 | |
CN114153822A (zh) | 一种数据迁移方法、装置、电子设备及存储介质 | |
CN113312066A (zh) | 动态热更新方法、存储介质 | |
US9454361B2 (en) | System and method of merging of objects from different replicas | |
CN109656825B (zh) | 美术资源处理的方法及装置、电子设备、存储介质 | |
CN111314403B (zh) | 资源一致性的校验方法和装置 | |
CN111858173A (zh) | 一种数据恢复方法、装置、设备和介质 | |
CN116432773A (zh) | 一种模型处理方法、装置、电子设备及存储介质 | |
CN111625397B (zh) | 业务日志备份方法、集群、装置、电子设备及存储介质 | |
CN113986851A (zh) | 一种文件同步方法、系统及存储介质 | |
CN103530202A (zh) | 针对终端程序的云备份及恢复方法 | |
CN107239505B (zh) | 集群镜像同步方法和系统 | |
CN114356245B (zh) | 一种海量文件快速比对更新的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |