CN115185821A - 程序测试中版本标注方法、系统、设备及存储介质 - Google Patents
程序测试中版本标注方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN115185821A CN115185821A CN202210709601.4A CN202210709601A CN115185821A CN 115185821 A CN115185821 A CN 115185821A CN 202210709601 A CN202210709601 A CN 202210709601A CN 115185821 A CN115185821 A CN 115185821A
- Authority
- CN
- China
- Prior art keywords
- file
- version
- version number
- target
- program
- 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.)
- Pending
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/368—Test management for test version control, e.g. updating test cases to a new software version
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Abstract
本发明提出一种程序测试中版本标注方法、系统、设备及存储介质,该方法包括:获取目标程序的修改文件,修改文件至少包括:对目标程序进行故障修改而构成的更新文件和对目标程序进行版本更新而构成的脚本文件;根据目标程序的环境变量,获取环境变量对应的目标程序的最大版本号;对最大版本号进行更新,并将更新后的版本号作为目标版本号;通过更新文件和脚本文件,对目标程序进行更新,并标注更新后目标程序的版本号。本发明实施例提供的程序测试中版本标注方法,在修改为目标程序中的故障后自动实现对目标程序的版本标注,而不用像传统方法那样进行人工手动标注。既提高了程序测试的效率,也减轻了测试人员的工作量。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种程序测试中版本标注方法、系统、设备及存储介质。
背景技术
软件项目通常由研发小组共同分析、设计、编码和维护,并有测试小组对完成编码调试的软件进行全面测试,在软件项目开发的过程中,不同的环境对应不同的服务器,常见的有测试服务器、预发服务器和正式服务器等,一段代码作为一个分支,被复制成多个相同的分支,每个分支分别对应到不同的服务器。
在软件的测试过程中,所有定位到的错误都可能导致对软件代码的全面修改,小的可能是对源文件中某个变量定义的修改,大的到重新设计程序模块甚至是整个开发流程的变动,具体地说在测试过程中会遇到一些棘手的问题,例如:需要将整个软件版本恢复到以前某时间点的状态;控制程序在同一时间只能在以为测试人员进行修改;如何保留修改的轨迹以撤销错误的修改,如何对研发过程中形成的软件版本进行标识、管理等。因此在软件测试的过程中,为了保证修改的可回溯性,没修改一次bug,就需要对该段代码打一次tag,即标注一次版本号,现有技术中这些都是人工手动操作,但是在测试过程中通常需要修改很多次bug,这样就会打很多次tag,如果都用人工手动操作完成,工作量大,效率低下,并且容易混淆出错。
发明内容
本发明提供一种程序测试中版本标注方法、系统、设备及存储介质,其主要目的在于自动进行程序测试过程中的版本标注,有效提高程序测试效率。
第一方面,本发明实施例提供一种程序测试中版本标注方法,包括:
获取目标程序的修改文件,所述修改文件至少包括:对所述目标程序进行故障修改而构成的更新文件和对所述目标程序进行版本更新而构成的脚本文件,所述脚本文件中包括所述目标程序的当前版本号和目标版本号;
根据所述目标程序的环境变量,获取所述环境变量对应的所述目标程序的最大版本号;
对所述最大版本号进行更新,并将更新后的版本号作为所述目标版本号;
通过所述更新文件和所述脚本文件,对所述目标程序进行更新,并标注更新后目标程序的版本号。
优选地,所述根据所述目标程序的环境变量,获取所述环境变量对应的所述目标程序的最大版本号,包括:
通过预设命令获取所述环境变量,根据预设映射表,查找所述环境变量对应的分支名,所述预设映射表存储每一环境变量和每一分支名之间的映射关系;
若所述目标程序的名称和所述分支名相同,获取所述环境变量下所述目标程序的最大版本号。
优选地,所述通过所述更新文件和所述脚本文件,对所述目标程序进行更新,包括:
根据所述脚本文件及所述更新文件对所述当前版本号的复制版本文件进行更新,得到所述目标版本号的版本文件,所述当前版本号的复制版本文件为对所述当前版本号的版本文件进行复制得到的;
将所述当前版本号的版本文件更新为所述目标版本号的版本文件。
优选地,所述将所述当前版本号的版本文件更新为所述目标版本号的版本文件,包括:
运行所述脚本文件,利用运行后的脚本文件复制所述当前版本号的版本文件,得到所述当前版本号的复制版本文件;
通过所述脚本文件,利用所述更新文件对所述当前版本号的复制版本文件进行更新,得到所述目标版本号的版本文件。
优选地,所述通过所述脚本文件,利用所述更新文件对所述当前版本号的复制版本文件进行更新,得到所述目标版本号的版本文件,包括:
若所述更新文件包含由所述当前版本号更新至所述目标版本号时待删除文件的标识,则通过所述脚本文件删除所述当前版本号的复制版本文件中所述标识对应的文件,将删除后的复制版本文件作为所述目标版本号的版本文件;
若所述更新文件包含由所述当前版本号更新至所述目标版本号时待增加文件及所述待增加文件在所述当前版本号的版本文件中的地址,则通过所述脚本文件按照所述地址将所述待增加文件添加至所述当前版本号的复制版本文件中,将增加后的复制版本文件作为所述目标版本号的版本文件;
若所述更新文件包含由所述当前版本号更新至所述目标版本号时待修改文件的标识以及所述待修改文件的修改内容,则通过所述脚本文件基于所述标识确定所述当前版本号的复制版本文件中的待修改文件,并按照所述修改内容对所述待修改文件进行修改,将修改后的复制版本文件作为所述目标版本号的版本文件。
优选地,所述获取目标程序的修改文件之前还包括:
获取登陆账号,若在预设账号库中查找到所述登录账号,则获取所述登录账号对应的权限;
若所述当前登录账号对应的权限符合要求,则对所述目标程序解冻。
优选地,所述通过预设命令获取所述环境变量,之前还包括:
定义每一环境变量对应的预设命令。
第二方面,本发明实施例提供一种程序测试中版本标注系统,包括:
获取模块,用于获取目标程序的修改文件,所述修改文件至少包括:对所述目标程序进行故障修改而构成的更新文件和对所述目标程序进行版本更新而构成的脚本文件,所述脚本文件中包括所述目标程序的当前版本号和目标版本号;
版本模块,用于根据所述目标程序的环境变量,获取所述环境变量对应的所述目标程序的最大版本号;
更新模块,用于对所述最大版本号进行更新,并将更新后的版本号作为所述目标版本号;
标注模块,用于通过所述更新文件和所述脚本文件,对所述目标程序进行更新,并标注更新后目标程序的版本号。
第三方面,本发明实施例提供一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述程序测试中版本标注方法的步骤。
第四方面,本发明实施例提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述程序测试中版本标注方法的步骤。
本发明实施例提供的一种程序测试中版本标注方法、系统、设备及存储介质,通过更新文件获取修改内容,通过脚本文件获取更新操作,将不同的环境变量分别对应不同的程序分支,先获取该目标程序的最大版本号,然后对该最大版本号进行更新,将更新后的版本号作为目标版本号,利用更新文件和脚本文件对目标程序进行更新,只需要执行该脚本文件即可。本发明实施例提供的程序测试中版本标注方法,在修改为目标程序中的故障后自动实现对目标程序的版本标注,而不用像传统方法那样进行人工手动标注。既提高了程序测试的效率,也减轻了测试人员的工作量。
附图说明
图1为本发明实施例提供的一种程序测试中版本标注方法的场景示意图;
图2为本发明实施例提供的一种程序测试中版本标注方法的流程图;
图3为本发明实施例提供的一种程序测试中版本标注系统的结构示意图;
图4为本发明实施例中提供的一种计算机设备的结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1为本发明实施例提供的一种程序测试中版本标注方法的场景示意图,如图1所示,包括客户端和服务器,本发明实施例中的执行主体为服务器,客户端对目标程序进行修改后,得到目标程序的修改文件后,将该修改文件发送给服务器,服务器接收到该修改文件后,执行该一种程序测试中版本标注方法,对更新后的目标程序进行版本号的标注。
需要说明的是,服务端可以用独立的服务器或者是多个服务器组成的服务器集群来实现。客户端可为智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此。客户端和服务端可以通过蓝牙、USB(Universal Serial Bus,通用串行总线)或者其他通讯连接方式进行连接,本发明实施例在此不做限制。
在软件产品开发的众多方法中,没有哪一种方法是能够绝对保证产品质量,事实上很多软件企业在长期的产品开发过程中形成了自己独有的开发模式,Release开发模型是一个通用的开发模型,广泛地用于各个软件生产企业。Release开发模型是常用的软件管理模型,Release开发模型的重点是创建具有版本号、项目名、组织名等单一的软件产品,产品一旦发布,新产品便以此产品的当前版本为起点。在这种测试环境中,需要跟踪产品的每一个版本,并且要知道哪些程序修改了,修改原因。Release开发模型有3种基本状态:开发、测试、发布,每个状态中的变更修改相互独立,从而保证开发中的程序不影响测试,测试结果不影响已发布的产品。对Release开发模型的3个状态有一些可进行的操作,如检入、检出、提交、归并、分支、版本比较和版本标签等,一般的配置工具都提供了这些操作方法:
1、检入,把在本地工作区已修改的工作文件放回到服务器的用户环境的过程,服务器以增量式存储,仅保留版本间的差别。
2、检出,将服务器的用户环境中的文件取到本地工作区形成工作文件的过程。
3、分支,由于测试、修改bug或发布等其它原因,建立与当前版本并行的另一新版本的过程。分支是软件开发由当前开发轨迹切换到另一开发轨迹的方法。
4、合并,将多个分支上的代码合并到主干,形成新的版本的过程,有水平合并和垂直合并两种形式。
5、提交,将一个具有较为成熟的、性能稳定的程序包从生命周期中的一个状态推进到一个新的状态,以执行新的过程。如从开发状态提交到测试状态,进入产品的测试状态,从测试状态提交到发布状态,进入产品的发布状态。
6、版本比较,仅限于文本文件的版本比较。
7、版本标签,为某个文件的修订版打上有意义文本字符表桥。
本发明实施例提供的一种程序测试中版本标注方法也是在上述Release开发模型上进行,图2为本发明实施例提供的一种程序测试中版本标注方法的流程图,如图2所示,该方法包括:
S210,获取目标程序的修改文件,所述修改文件至少包括:对所述目标程序进行故障修改而构成的更新文件和对所述目标程序进行版本更新而构成的脚本文件,所述脚本文件中包括所述目标程序的当前版本号和目标版本号;
在本实施例中,目标程序是指需要进行测试的应用程序,将目标程序更新前所使用的旧版本称为当前版本,当前版本对应的版本号码为当前版本号,将目标程序更新至的新版本称为目标版本,目标版本对应的号码为目标版本号,此处的目标版本号码即为更新后目标程序的版本号码。
需要理解的是,程序的新版本是对旧版本的漏洞进行完善,或/和在旧版本中添加功能后得到的、相比旧版本更加完善好用的程序版本。
需要理解的是,想要其具有的服务器上的目标程序由当前版本更新为目标版本时,可以在发布平台上传目标程序的目标版本的修改文件。
与发布平台通信连接的服务器查询到发布平台发布了目标程序的目标版本时,或者当服务器上的更新装置收到管理员对目标程序的更新指令时,更新装置可以从发布平台获取发布的修改文件。
在一些示例下,更新装置需要从发布平台下载得到修改文件;在另外一些示例下,修改文件是打包在文件包中的,因此更新装置需要下载、解压并验证文件包后,才能得到修改文件;具体获得方法可以根据实际情况进行确定,本发明实施例在此不做具体的限定。修改文件包括脚本文件和更新文件,其中脚本文件是目标程序由当前版本更新至目标版本所使用的文件,脚本文件是由发布平台生成的、由不同的程序命令组合起来的,可以被运行且被运行后可以按照确定的顺序自动连续地执行的文件,脚本文件被运行后可以基于更新文件对当前版本的版本文件进行更新;更新文件是目标版本的版本文件与当前版本的版本文件是存在差异的文件,此处存在差异的文件包括目标版本的版本文件会比当前版本的版本文件多一些的文件、少一些的文件,以及在两种版本的版本文件中存在一些具有不同内容的文件。
S220,根据所述目标程序的环境变量,获取所述环境变量对应的所述目标程序的最大版本号;
然后根据目标程序的环境变量,得到该环境变量对应的目标程序的最大版本号。本发明实施例中,目标程序的环境变量是指该目标程序修改完毕后需要发布到哪个服务器中,是测试服务器、预发服务器还是正式服服务器,每个服务器对应的目标程序分支是不同的。通过写入相应的命令来获取目标程序的环境变量,本发明实施例中,通过写入相应的命令来获取目标程序的环境变量,具体方法可以是现在scripts文件夹下面建立release脚本文件,在package.json中定义命令,通过命令方式传入写入环境:
上述命令定义程序中,test表示测试服务器,pre表示预发服务器,prod表示正式服服务器,通过相应命令获取环境变量,并根据环境变量得到目标程序具体所对应的服务器。然后在该环境变量下找到该目标程序的所有版本号,并对所有版本号进行排序,去除最大的版本号,该最大的版本号就是对目标程序进行最后更新后的版本。
S230,对所述最大版本号进行更新,并将更新后的版本号作为所述目标版本号;
对该最大版本号进行更新,本发明实施例中,版本号通常由三部分组成:主版本号、次版本号和修订号,主版本号主要表示目标程序的应用程序接口版本,当对应用程序接口进行修改后,会相应地修改该主版本号;次版本号表示目标程序功能,当新增该目标程序的功能后,会对该次版本号进行修改;修订号表示该目标程序向下兼容性,当对该目标程序作了向下兼容性修改后,就会对该修订号进行修改,本发明实施例中,先判断修改文件中对目标程序进行修改的是哪部分,然后再针对表示这部分的版本号进行修订,比如是主版本号部分进行了修订,则对主版本号进行了修正更新,如果是对次版本号进行了修订,则对此版本号进行修正更新,如果是对修订号进行了修订,则对修订号进行修正更新;作为本发明实施例中对版本号的另一种更新实现方式,可以直接通过一个主版本对目标程序的版本号进行表示,而不需要用到次版本和修订号等,当需要对该目标程序的版本号进行更新时,直接将该主版本加1即可。具体更新规则可以参考业务方的版本号更新规则,不同业务方对版本号的更新方法可能不同,本发明实施例对此不做具体的限定。
将更新后的版本号作为目标版本号,上面步骤中虽然脚本文件中包括了目标程序的当前版本号和目标版本号,该当前版本号表示该目标程序曾经的一个历史版本,可能是第一个版本,也可能是某个中间版本,具体根据实际情况进行确定,刚开始获取到的目标版本号可以认为是设置了这个参数,但是其具体取值是未知的,可以给个预设值对目标版本号初始化一下。本步骤中,将更新后的版本号作为目标版本号,可以得到该目标版本号的实际取值。
S240,通过所述更新文件和所述脚本文件,对所述目标程序进行更新,并标注更新后目标程序的版本号。
利用该更新文件和该脚本文件对目标程序进行更新,由于脚本文件中包括一连串被写成命令的文件,运行该脚本文件即可连续执行这些命令,目标程序的目标版本号已经被写入脚本文件中,该脚本文件中包含对目标程序标注版本号的命令,通过运行该脚本文件,可以实现对目标程序版本号的自动标注。本发明实施例中的脚本文件中所包含的命令如下:
async function runShell(version){
const tag=`${env}-${version}`
await$`git add.`
await$`git commit-m"chore:release${tag}"`
await$`git tag${tag}`
await$`gitpush`
await$`gitpush origin--tags`
await$`clear`
}
需要了解的是,目标程序处于运行状态时,当前版本的版本文件是处于运行状态的,在运行状态下目标程序不能被更新,因此需要对当前版本的版本文件进行复制得到当前版本的复制版本文件。
服务器上的更新文件根据脚本文件及更新文件可以对当前版本的复制版本文件进行更新得到目标版本的版本文件,然后运行该目标版本的版本文件。在一些示例下,运行后的脚本文件可以基于更新文件更新复制版本文件得到目标版本的版本文件,包括在复制版本文件中添加待增加文件、删除待删除文件以及修改待修改文件。
需要了解的是,在得到目标版本的版本文件之后,服务器上目标程序运行的版本仍然是当前版本,在将当前版本的版本文件更新为目标版本的版本文件后,是目标版本的版本文件处于运行状态,此时服务器上目标程序使用的是目标版本。
本发明实施例提供的一种程序测试中版本标注方法,通过更新文件获取修改内容,通过脚本文件获取更新操作,将不同的环境变量分别对应不同的程序分支,先获取该目标程序的最大版本号,然后对该最大版本号进行更新,将更新后的版本号作为目标版本号,利用更新文件和脚本文件对目标程序进行更新,只需要执行该脚本文件即可。本发明实施例提供的程序测试中版本标注方法,在修改为目标程序中的bug后自动实现对目标程序的版本标注,而不用像传统方法那样进行人工手动标注,既提高了程序测试的效率,也减轻了测试人员的工作量。
在上述实施例的基础上,优选地,所述根据所述目标程序的环境变量,获取所述环境变量对应的所述目标程序的最大版本号,包括:
通过预设命令获取所述环境变量,根据预设映射表,查找所述环境变量对应的分支名,所述预设映射表存储每一环境变量和每一分支名之间的映射关系;
若所述目标程序的名称和所述分支名相同,获取所述环境变量下所述目标程序的最大版本号。
首先通过预设命令获取环境变量,然后根据环境变量在预设映射表中进行查找,得到环境变量对应的分支名。由于预设映射表中存储有每个环境变量和对应的分支名之间的映射关系,根据环境变量,在预设映射表中进行查找,查找到对应的分支名后,然后判断该分支名与目标程序的名称是否相同,如果相同,则说明目标程序和环境变量之间的对应关系是正确的。
在上述实施例的基础上,优选地,所述通过所述更新文件和所述脚本文件,对所述目标程序进行更新,包括:
根据所述脚本文件及所述更新文件对所述当前版本号的复制版本文件进行更新,得到所述目标版本号的版本文件,所述当前版本号的复制版本文件为对所述当前版本号的版本文件进行复制得到的;
将所述当前版本号的版本文件更新为所述目标版本号的版本文件。
除了复制目标程序的当前版本的版本文件得到复制版本文件,运行后的脚本文件还会利用更新文件对复制版本文件进行更新得到目标版本的版本文件,具体由复制版本文件得到目标版本的版本文件的方式可以为:
若更新文件中包含由当前版本更新至目标版本时待删除文件的标识,则通过脚本文件删除当前版本的复制版本文件中该标识对应的文件。
若更新文件包含由当前版本更新至目标版本时待增加文件及待增加文件在当前版本的版本文件中的地址,则通过脚本文件按照地址将待增加文件添加至当前版本的复制版本文件中。
若更新文件包含由当前版本更新至目标版本时待修改文件的标识以及待修改文件的修改内容,则通过脚本文件基于标识确定当前版本的复制版本文件中的待修改文件,并按照修改内容对待修改文件进行修改。
需要理解的是,在实际应用过程中,更新文件可以包括待删除文件的标识、待增加文件及待增加文件在当前版本的版本文件中的地址,以及待修改文件的标识以及待修改文件的修改内容中的至少一种,对应的利用更新文件得到目标版本的版本文件的方式可以为上述三种情况中的一种或多种。
在上述实施例的基础上,优选地,所述获取目标程序的修改文件之前还包括:
获取登陆账号,若在预设账号库中查找到所述登录账号,则获取所述登录账号对应的权限;
若所述当前登录账号对应的权限符合要求,则对所述目标程序解冻。
测试用户在登录Release开发模型时,需要先输入账户和密码,每个测试人员预先会配备相应的账号和密码,并且公司内部不同职位的测试人员也有不同的修改权限,服务器接收到测试人员登录系统请求时,会获取到登录账号,然后将该登录账号与数据库中的账号进行查找,如果能找到,说明该登录账号可以登录该系统,如果不能,则返回登录失败的结果。并且根据数据库中记录的该登录账号的权限,看该测试员工是否有对该目标程序进行修改的权限,如果有,则对目标程序进行解冻,如果没有权限,则不对目标程序进行解冻,测试人员就无法对该目标程序进行修改。
图3为本发明实施例提供的一种程序测试中版本标注系统的结构示意图,如图3所示,该系统包括获取模块310、版本模块320、更新模块330和标注模块340,其中:
获取模块310用于获取目标程序的修改文件,所述修改文件至少包括:对所述目标程序进行故障修改而构成的更新文件和对所述目标程序进行版本更新而构成的脚本文件,所述脚本文件中包括所述目标程序的当前版本号和目标版本号;
版本模块320用于根据所述目标程序的环境变量,获取所述环境变量对应的所述目标程序的最大版本号;
更新模块330用于对所述最大版本号进行更新,并将更新后的版本号作为所述目标版本号;
标注模块340用于通过所述更新文件和所述脚本文件,对所述目标程序进行更新,并标注更新后目标程序的版本号。
在上述实施例的基础上,优选地,所述版本模块包括映射单元和判断单元,其中:
所述映射单元用于通过预设命令获取所述环境变量,根据预设映射表,查找所述环境变量对应的分支名,所述预设映射表存储每一环境变量和每一分支名之间的映射关系;
所述判断单元用于若所述目标程序的名称和所述分支名相同,获取所述环境变量下所述目标程序的最大版本号。
在上述实施例的基础上,优选地,所述更新模块包括复制单元和版本更新单元,其中:
所述复制单元用于根据所述脚本文件及所述更新文件对所述当前版本号的复制版本文件进行更新,得到所述目标版本号的版本文件,所述当前版本号的复制版本文件为对所述当前版本号的版本文件进行复制得到的;
所述版本更新单元用于将所述当前版本号的版本文件更新为所述目标版本号的版本文件。
在上述实施例的基础上,优选地,所述版本更新单元包括运行子单元和更新子单元,其中:
所述运行子单元用于运行所述脚本文件,利用运行后的脚本文件复制所述当前版本号的版本文件,得到所述当前版本号的复制版本文件;
所述更新子单元用于通过所述脚本文件,利用所述更新文件对所述当前版本号的复制版本文件进行更新,得到所述目标版本号的版本文件。
在上述实施例的基础上,优选地,所述更新子单元包括第一子单元、第二子单元和第三子单元,其中:
所述第一子单元用于若所述更新文件包含由所述当前版本号更新至所述目标版本号时待删除文件的标识,则通过所述脚本文件删除所述当前版本号的复制版本文件中所述标识对应的文件;
所述第二子单元用于若所述更新文件包含由所述当前版本号更新至所述目标版本号时待增加文件及所述待增加文件在所述当前版本号的版本文件中的地址,则通过所述脚本文件按照所述地址将所述待增加文件添加至所述当前版本号的复制版本文件中;
所述第三子单元用于若所述更新文件包含由所述当前版本号更新至所述目标版本号时待修改文件的标识以及所述待修改文件的修改内容,则通过所述脚本文件基于所述标识确定所述当前版本号的复制版本文件中的待修改文件,并按照所述修改内容对所述待修改文件进行修改。
在上述实施例的基础上,优选地,还包括登录模块和权限模块,其中:
所述登录模块用于获取登陆账号,若在预设账号库中查找到所述登录账号,则获取所述登录账号对应的权限;
所述权限模块用于若所述当前登录账号对应的权限符合要求,则对所述目标程序解冻。
在上述实施例的基础上,优选地,还包括预设命令定义模块,其中:
所述预设命令定义模块用于定义每一环境变量对应的预设命令。
上述程序测试中版本标注系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
图4为本发明实施例中提供的一种计算机设备的结构示意图,该计算机设备可以是服务器,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括计算机存储介质、内存储器。该计算机存储介质存储有操作系统、计算机程序和数据库。该内存储器为计算机存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储执行程序测试中版本标注方法过程中生成或获取的数据,如当前版本号和目标版本号。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种程序测试中版本标注方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中的程序测试中版本标注方法的步骤。或者,处理器执行计算机程序时实现程序测试中版本标注系统这一实施例中的各模块/单元的功能。
在一实施例中,提供一计算机存储介质,该计算机存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中程序测试中版本标注方法的步骤。或者,该计算机程序被处理器执行时实现上述程序测试中版本标注系统这一实施例中的各模块/单元的功能。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种程序测试中版本标注方法,其特征在于,包括:
获取目标程序的修改文件,所述修改文件至少包括:对所述目标程序进行故障修改而构成的更新文件和对所述目标程序进行版本更新而构成的脚本文件,所述脚本文件中包括所述目标程序的当前版本号和目标版本号;
根据所述目标程序的环境变量,获取所述环境变量对应的所述目标程序的最大版本号;
对所述最大版本号进行更新,并将更新后的版本号作为所述目标版本号;
通过所述更新文件和所述脚本文件,对所述目标程序进行更新,并标注更新后目标程序的版本号。
2.根据权利要求1所述的程序测试中版本标注方法,其特征在于,所述根据所述目标程序的环境变量,获取所述环境变量对应的所述目标程序的最大版本号,包括:
通过预设命令获取所述环境变量,根据预设映射表,查找所述环境变量对应的分支名,所述预设映射表存储每一环境变量和每一分支名之间的映射关系;
若所述目标程序的名称和所述分支名相同,获取所述环境变量下所述目标程序的最大版本号。
3.根据权利要求1所述的程序测试中版本标注方法,其特征在于,所述通过所述更新文件和所述脚本文件,对所述目标程序进行更新,包括:
根据所述脚本文件及所述更新文件对所述当前版本号的复制版本文件进行更新,得到所述目标版本号的版本文件,所述当前版本号的复制版本文件为对所述当前版本号的版本文件进行复制得到的;
将所述当前版本号的版本文件更新为所述目标版本号的版本文件。
4.根据权利要求3所述的程序测试中版本标注方法,其特征在于,所述将所述当前版本号的版本文件更新为所述目标版本号的版本文件,包括:
运行所述脚本文件,利用运行后的脚本文件复制所述当前版本号的版本文件,得到所述当前版本号的复制版本文件;
通过所述脚本文件,利用所述更新文件对所述当前版本号的复制版本文件进行更新,得到所述目标版本号的版本文件。
5.根据权利要求4所述的程序测试中版本标注方法,其特征在于,所述通过所述脚本文件,利用所述更新文件对所述当前版本号的复制版本文件进行更新,得到所述目标版本号的版本文件,包括:
若所述更新文件包含由所述当前版本号更新至所述目标版本号时待删除文件的标识,则通过所述脚本文件删除所述当前版本号的复制版本文件中所述标识对应的文件,将删除后的复制版本文件作为所述目标版本号的版本文件;
若所述更新文件包含由所述当前版本号更新至所述目标版本号时待增加文件及所述待增加文件在所述当前版本号的版本文件中的地址,则通过所述脚本文件按照所述地址将所述待增加文件添加至所述当前版本号的复制版本文件中,将增加后的复制版本文件作为所述目标版本号的版本文件;
若所述更新文件包含由所述当前版本号更新至所述目标版本号时待修改文件的标识以及所述待修改文件的修改内容,则通过所述脚本文件基于所述标识确定所述当前版本号的复制版本文件中的待修改文件,并按照所述修改内容对所述待修改文件进行修改,将修改后的复制版本文件作为所述目标版本号的版本文件。
6.根据权利要求1至5任一所述的程序测试中版本标注方法,其特征在于,所述获取目标程序的修改文件之前还包括:
获取登陆账号,若在预设账号库中查找到所述登录账号,则获取所述登录账号对应的权限;
若所述当前登录账号对应的权限符合要求,则对所述目标程序解冻。
7.根据权利要求2所述的程序测试中版本标注方法,其特征在于,所述通过预设命令获取所述环境变量,之前还包括:
定义每一环境变量对应的预设命令。
8.一种程序测试中版本标注系统,其特征在于,包括:
获取模块,用于获取目标程序的修改文件,所述修改文件至少包括:对所述目标程序进行故障修改而构成的更新文件和对所述目标程序进行版本更新而构成的脚本文件,所述脚本文件中包括所述目标程序的当前版本号和目标版本号;
版本模块,用于根据所述目标程序的环境变量,获取所述环境变量对应的所述目标程序的最大版本号;
更新模块,用于对所述最大版本号进行更新,并将更新后的版本号作为所述目标版本号;
标注模块,用于通过所述更新文件和所述脚本文件,对所述目标程序进行更新,并标注更新后目标程序的版本号。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述程序测试中版本标注方法的步骤。
10.一种计算机存储介质,所述计算机存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述程序测试中版本标注方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210709601.4A CN115185821A (zh) | 2022-06-22 | 2022-06-22 | 程序测试中版本标注方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210709601.4A CN115185821A (zh) | 2022-06-22 | 2022-06-22 | 程序测试中版本标注方法、系统、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115185821A true CN115185821A (zh) | 2022-10-14 |
Family
ID=83514877
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210709601.4A Pending CN115185821A (zh) | 2022-06-22 | 2022-06-22 | 程序测试中版本标注方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115185821A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115599437A (zh) * | 2022-10-26 | 2023-01-13 | 北京领雁科技股份有限公司(Cn) | 一种软件版本的处理方法、装置、电子设备及存储介质 |
-
2022
- 2022-06-22 CN CN202210709601.4A patent/CN115185821A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115599437A (zh) * | 2022-10-26 | 2023-01-13 | 北京领雁科技股份有限公司(Cn) | 一种软件版本的处理方法、装置、电子设备及存储介质 |
CN115599437B (zh) * | 2022-10-26 | 2023-10-20 | 北京领雁科技股份有限公司 | 一种软件版本的处理方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110297813B (zh) | 数据迁移方法、装置、计算机设备及存储介质 | |
CN110209650B (zh) | 数据规整迁移方法、装置、计算机设备和存储介质 | |
CN109032611B (zh) | 脚本部署方法、装置、计算机设备及存储介质 | |
US8782609B2 (en) | Test failure bucketing | |
CN111078568B (zh) | 代码规范方法、装置、计算机设备和存储介质 | |
CN108874661B (zh) | 测试映射关系库生成方法、装置、计算机设备和存储介质 | |
US10248409B1 (en) | Limiting the effects of source code patches on corresponding native-code patches | |
CN112380130A (zh) | 基于调用依赖关系的应用测试方法和装置 | |
CN111897727A (zh) | 软件测试方法、装置、计算机设备及存储介质 | |
CN106603289B (zh) | 一种lmt配置文件平滑升级方法 | |
CN111737227A (zh) | 数据修改方法及系统 | |
CN115185821A (zh) | 程序测试中版本标注方法、系统、设备及存储介质 | |
CN114924737A (zh) | 一种电池管理系统源代码集成测试方法、测试装置及电子设备 | |
CN112435007A (zh) | 基于Node.js的代码提交方法、装置、计算机设备及存储介质 | |
CN114385196A (zh) | 结合rpa和ai的软件部署方法及装置 | |
CN112685311A (zh) | 测试脚本自动生成方法、装置、计算机设备及存储介质 | |
CN113126998B (zh) | 一种增量源码获取方法、装置、电子设备及存储介质 | |
CN115658033A (zh) | 一种rpa代码开发方法及系统 | |
CN110377476A (zh) | 终端测试方法、终端及可读存储介质 | |
CN116610551A (zh) | 代码覆盖率计算方法、装置、设备和介质 | |
CN114003250A (zh) | 一种软件部署方法及装置 | |
CN113821213A (zh) | 基于人工智能的前端代码检测及修复方法、装置及设备 | |
CN113900729A (zh) | 一种SteamVR系统的追踪设备参数配置方法及装置 | |
CN114003486A (zh) | 一种插件调试方法、客户端、服务器及存储介质 | |
CN112817931B (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 |