CN115481041A - 一种代码模块测试方法、装置、设备及存储介质 - Google Patents
一种代码模块测试方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115481041A CN115481041A CN202211204060.6A CN202211204060A CN115481041A CN 115481041 A CN115481041 A CN 115481041A CN 202211204060 A CN202211204060 A CN 202211204060A CN 115481041 A CN115481041 A CN 115481041A
- Authority
- CN
- China
- Prior art keywords
- code
- test
- module
- tested
- function
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 291
- 238000003860 storage Methods 0.000 title claims abstract description 18
- 238000000034 method Methods 0.000 claims abstract description 44
- 230000006870 function Effects 0.000 claims description 197
- 238000004590 computer program Methods 0.000 claims description 20
- 238000011161 development Methods 0.000 abstract description 7
- 238000004458 analytical method Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 230000006872 improvement Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 108010028984 3-isopropylmalate dehydratase Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010367 cloning Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012812 general test Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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
-
- 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/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- General Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开一种代码模块测试方法、装置、设备及存储介质,涉及代码测试技术领域。方法包括:根据代码分支更新并编译被测代码,并根据编译后的被测代码更新测试环境;其中,被测代码包括至少一个功能模块,功能模块中设置有:功能模块密钥和功能标识符;代码分支记载被测代码中的功能模块与Git仓库中保存的相应功能模块的区别;抓取功能标识符,并通过密钥解锁测试内容,进行功能模块测试;生成对应于功能模块测试的测试结果,完成测试。通过实施上述,可以通过调整功能标识符对不同的功能模块进行测试,实现Jenkins流水线。节省了开发人员自测时间,提高开发效率,加快了迭代更新,提高了版本发布质量。
Description
技术领域
本发明涉及代码测试技术领域,特别涉及一种代码模块测试方法、装置、设备及存储介质。
背景技术
软件项目开发的整个过程一般分为如下几个步骤:确定功能需求、功能模块代码撰写、功能模块自测、功能验收。在撰写代码模块时,开发人员很多情况下会遇到功能模块需求相同,这些代码很多情况是可复用的,但是针对不同项目的代码自测结果却不能复用。为了避免开发人员频繁地自测功能模块代码,常采用基于Git仓库和Jenkins搭建的代码模块自动化测试平台,对功能模块代码进行测试。其中,Git仓库是一个开源的分布式版本控制系统,可以高效地处理从很小到非常大的项目版本管理。Git分布式的管理,可以提供开发者将最新的代码上传,也可以支持每个开发者通过克隆,在本地机器上拷贝一个完整的Git仓库。而Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。Jenkins是一个自动构建过程,包括自动编译、分发、部署等。
目前,大多数基于Git和Jenkins搭建的单元测试平台采用功能标识符区分功能模块,这种方式会在很多情况下造成代码传递不准确、功能标识符误识别等情况,导致代码模块误测,测试结果失败,严重甚至出现漏洞未测试的情况。因此,亟需一种代码模块测试方法、装置、设备及存储介质,能够准确识别待测功能模块,完成相应代码测试;并在测试过程中进行加密处理,保障测试过程的代码安全性。
发明内容
为了解决现有技术中,基于Git和Jenkins搭建的单元测试平台采用功能标识符区分功能模块,这种方式会在很多情况下造成代码传递不准确、功能标识符误识别等情况,导致代码模块误测,测试结果失败,严重甚至出现漏洞未测试的问题。本发明实施例提供一种代码模块测试方法、装置、设备及存储介质。为了解决上述的一个或多个技术问题,本发明采用的技术方案如下:
第一方面,提供一种代码模块测试方法,方法包括:
根据代码分支更新并编译被测代码,并根据编译后的被测代码更新测试环境;其中,被测代码包括至少一个功能模块,功能模块中设置有:功能模块密钥和功能标识符;代码分支记载被测代码中的功能模块与Git仓库中保存的相应功能模块的区别;
抓取功能标识符,并通过密钥解锁测试内容,进行功能模块测试;
生成对应于功能模块测试的测试结果,完成测试。
进一步地,根据代码分支更新并编译被测代码,并根据编译后的被测代码更新测试环境,包括:
与Git仓库建立连接,获取对应于被测代码的代码分支;
根据代码分支更新被测代码,并对更新后的被测代码进行编译;
若被测代码编译成功,则将编译成功的被测代码以软件形式拷贝至测试环境;
或,
将编译成功的被测代码以固件形式烧录至测试环境;
进一步地,抓取功能标识符,并通过密钥解锁测试内容,进行功能模块测试,包括:
将被测代码的功能模块中的功能标识符设置为赋能状态;
根据赋能状态由功能模块密钥生成与被测代码的功能模块对应的随机密钥,并将密钥保存于测试环境的内存中;
从内存中读取功能模块密钥,并对功能模块密钥进行解析;
当功能模块密钥被成功解析,则根据功能标识符配置测试任务。
进一步地,生成对应于功能模块测试的测试结果,包括:
当测试成功完成后,生成对应于功能模块测试的测试结果,包括:生成测试报告,并将测试报告发送至测试人员;其中测试报告包括:Git代码信息,流程开始时间,及测试结果。邮件发送。
进一步地,上述方法之前还包括:在被测代码中设置密钥和标识符,并将被测代码上传至Git仓库。
进一步地,在被测代码中设置密钥和标识符,并将被测代码上传至Git仓库包括:
分别在被测代码的各个功能模块中设置功能模块密钥和功能标识符;其中,功能模块密钥用于生成随机密钥,功能标识符的默认状态设置为使能关;
将包含功能模块密钥和功能标识符的被测代码传输至Git仓库。
进一步地,将包含功能模块密钥和功能标识符的被测代码传输至Git仓库之后还包括:
在Git仓库中,逐一比对被测代码的功能模块与现有功能模块的差异,若被测代码的功能模块与保存于Git仓库中的功能模块存在差异,则对应于存在差异的功能模块,生成一个代码分支。
第二方面,提供一种代码模块测试装置,装置包括:编译刷新模块,功能测试模块,结果输出模块;
编译刷新模块,用于根据代码分支更新并编译被测代码,并根据编译后的被测代码更新测试环境;其中,被测代码包括至少一个功能模块,功能模块中设置有:功能模块密钥和功能标识符;代码分支记载被测代码中的功能模块与Git仓库中保存的相应功能模块的区别;
功能测试模块,用于抓取功能标识符,并通过密钥解锁测试内容,进行功能模块测试;
结果输出模块,用于生成对应于功能模块测试的测试结果,完成测试。
第三方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行计算机程序时实现上述第一方面记载方法的步骤。
第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面记载方法的步骤。
本发明实施例提供的技术方案带来的有益效果是:
1.通过实施本发明实施例公开的一种代码模块测试方法,可以通过调整功能标识符对不同的功能模块进行测试,实现Jenkins流水线。节省了开发人员自测时间,提高开发效率加快了迭代更新;
2.整个流程可以做到开发一次,就测试一次,有问题可以及时发现并修改,提高了版本发布质量;
3.通过功能模块密钥,保障代码模块与Jenkins平台之间传递的安全性,当Jenkins端对密钥解析成功后,测试才会进行,保证开发功能模块跨平台安全传递,为整个开发迭代周期提高稳定性和安全性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种代码模块测试方法示意图;
图2是本发明实施例提供的一种代码模块测试装置示意图;
图3是本发明实施例提供的一种代码模块测试方法的计算机设备示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。说明书附图中的编号,仅表示对各个功能部件或模块的区分,不表示部件或模块之间的逻辑关系。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
对于本申请说明书中涉及的元器件符号,在电路图中指代元器件的类型,并区分各个元器件,例如:R1,R2,C等;在相应的公式中表示元器件相应物理量的大小,以斜体加以区分,例如:电阻R1对应的电阻值为R1。
下面,将参照附图详细描述根据本公开的各个实施例。需要注意的是,在附图中,将相同的附图标记赋予基本上具有相同或类似结构和功能的组成部分,并且将省略关于它们的重复描述。
为了解决现有技术中,基于Git和Jenkins搭建的单元测试平台采用功能标识符区分功能模块,这种方式会在很多情况下造成代码传递不准确、功能标识符误识别等情况,导致代码模块误测,测试结果失败,严重甚至出现漏洞未测试的问题。本发明实施例提供一种代码模块测试方法、装置、设备及存储介质。
在一个实施例中,如图1所示,一种代码模块测试方法,包括:
S100:根据代码分支更新并编译被测代码,并根据编译后的被测代码更新测试环境;其中,被测代码包括至少一个功能模块,功能模块中设置有:功能模块密钥和功能标识符;功能标识符的默认状态是“使能关”或“Disable”状态,在此状态下密钥不会被创建;当功能标识符被设置为表示赋能的“使能开”或“Enable”状态时,功能模块密钥将会为其所在的功能模块生成用于安全验证的密钥,密钥为随机生成,存储于作为测试环境的计算机的内存中。上述功能标识符和功能模块密钥的使能状态不影响作为测试环境的计算机的使用。
代码分支(Commit分支)记载被测代码中的功能模块与Git仓库中保存的相应功能模块的区别,更新的代码上传至Git仓库后,Git仓库会自动比对代码差异,并生成一个新的代码分支。
S200:抓取功能标识符,并通过密钥解锁测试内容,进行功能模块测试。
S300:生成对应于功能模块测试的测试结果,完成测试。
具体地,根据代码分支更新并编译被测代码,并根据编译后的被测代码更新测试环境,包括:
S110:与Git仓库建立连接,获取对应于被测代码的代码分支。
Git仓库可与Jenkins平台建立连接,当检测到Git仓库代码更新后,Jenkins平台会自动将代码更新为最新的代码分支。
S120:根据代码分支更新被测代码,并对更新后的被测代码进行编译。代码分支作为被测代码将被编译。
若被测代码编译成功,则S130:将编译成功的被测代码以软件形式拷贝至测试环境;
或,
将编译成功的被测代码以固件形式烧录至测试环境。
将被测代码保存至测试环境的方式取决于代码的类型,若用于设置硬件参数,则将代码烧录至测试环境;若是软件版本的更新,则直接拷贝至测试环境。
若所述被测代码编译失败,则S130′:结束测试流程,并生成相应的编译失败日志。可选地,该编译失败日志将以邮件形式发送至测试人员或用户。以何种形式发送至测试人员或用户,本发明不加以限定。
具体地,抓取功能标识符,并通过密钥解锁测试内容,进行功能模块测试,包括:
S210:将被测代码的功能模块中的功能标识符设置为赋能状态。
将编译成功的被测代码以软件形式拷贝至测试环境,或将编译成功的被测代码以固件形式烧录至测试环境以更新测试环境后,Jenkins通过IPMI Tool可以更改功能标识符的使能状态。
S220:根据赋能状态由功能模块密钥生成与被测代码的功能模块对应的随机密钥,并将密钥保存于测试环境的内存中。
S230:从内存中读取功能模块密钥,并对功能模块密钥进行解析。
当功能标识符处于Enable时,代码就会生成当前功能模块的密钥,密钥每次生成都为随机的,机器会将该功能模块密钥临时存储在内存中。Jenkins会读取机器系统内存中的功能模块密钥,并将该密钥进行拷贝,随后Jenkins借用Python UI控制,打开Jenkins网页检查任务中的用户的设置页面,通过UI控制API token,将该密钥填入。Jenkins中的检查任务会对密钥进行解析。
当功能模块密钥被成功解析,则S240:根据功能标识符配置测试任务。
Jenkins中预置了多个功能测试任务,测试任务根据功能标识符状态和密钥解析是否成功进行测试任务。若功能标识符状态为“使能开”或“Enable”的赋能状态,并且密钥解析成功,Jenkins会通过curl命令,触发测试任务。
测试的项目至少包括:通用的测试项目,以及针对该功能模块的测试项目。
当功能模块密钥被解析失败,则S240′:结束测试流程,生成密钥解析失败日志。可选地,该编译失败日志将以邮件形式发送至测试人员或用户。
具体地,生成对应于功能模块测试的测试结果,包括:
当测试成功完成后,生成对应于功能模块测试的测试结果,包括:
S310:生成测试报告,并将测试报告发送至测试人员;其中测试报告包括:Git代码信息,流程开始时间,及测试结果。邮件发送。
当测试失败时,生成对应于功能模块测试的测试结果,包括:
S310′:记录错误日志,根据所述错误日志生成分析报告,并将所述分析报告发送至测试人员,以便及时排查。
上述代码模块测试方法之前还包括:在被测代码中设置密钥和标识符,并将被测代码上传至Git仓库。
在被测代码中设置密钥和标识符,并将被测代码上传至Git仓库包括:
分别在被测代码的各个功能模块中设置功能模块密钥和功能标识符;其中,功能模块密钥用于生成随机密钥,功能标识符的默认状态设置为使能关;
将包含功能模块密钥和功能标识符的被测代码传输至Git仓库。
将包含功能模块密钥和功能标识符的被测代码传输至Git仓库之后还包括:
在Git仓库中,逐一比对被测代码的功能模块与现有功能模块的差异,若被测代码的功能模块与保存于Git仓库中的功能模块存在差异,则对应于存在差异的功能模块,生成一个代码分支。
在另一个实施例中,如图2所示,一种代码模块测试装置,包括:编译刷新模块,功能测试模块,结果输出模块;
编译刷新模块,用于根据代码分支更新并编译被测代码,并根据编译后的被测代码更新测试环境;其中,被测代码包括至少一个功能模块,功能模块中设置有:功能模块密钥和功能标识符;代码分支记载被测代码中的功能模块与Git仓库中保存的相应功能模块的区别;
功能测试模块,用于抓取功能标识符,并通过密钥解锁测试内容,进行功能模块测试;
结果输出模块,用于生成对应于功能模块测试的测试结果,完成测试。
在另一个实施例中,如图3所示,一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行计算机程序时实现上述第一方面记载方法的步骤。
在另一个实施例中,一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面记载方法的步骤。
通过实施本发明实施例公开的一种代码模块测试方法、装置、设备及可读介质,可以通过调整功能标识符对不同的功能模块进行测试,实现Jenkins流水线。节省了开发人员自测时间,提高开发效率加快了迭代更新;使整个开发流程可以做到开发一次,就测试一次,有问题可以及时发现并修改,提高了版本发布质量;通过功能模块密钥,保障代码模块与Jenkins平台之间传递的安全性,当Jenkins端对密钥解析成功后,测试才会进行,保证开发功能模块跨平台安全传递,为整个开发迭代周期提高稳定性和安全性。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
实施例一
下面结合图1阐述一种代码模块测试方法,方法包括:
S100:根据代码分支更新并编译被测代码,并根据编译后的被测代码更新测试环境;其中,被测代码包括至少一个功能模块,功能模块中设置有:功能模块密钥和功能标识符;代码分支记载被测代码中的功能模块与Git仓库中保存的相应功能模块的区别。
S200:抓取功能标识符,并通过密钥解锁测试内容,进行功能模块测试。
S300:生成对应于功能模块测试的测试结果,完成测试。
实施例二
一种代码模块测试方法,具体包括:
S100:根据代码分支更新并编译被测代码,并根据编译后的被测代码更新测试环境;其中,被测代码包括至少一个功能模块,功能模块中设置有:功能模块密钥和功能标识符;代码分支记载被测代码中的功能模块与Git仓库中保存的相应功能模块的区别。
S200:抓取功能标识符,并通过密钥解锁测试内容,进行功能模块测试;
S300:生成对应于功能模块测试的测试结果,完成测试。
具体地,根据代码分支更新并编译被测代码,并根据编译后的被测代码更新测试环境,包括:
S110:与Git仓库建立连接,获取对应于被测代码的代码分支;
S120:根据代码分支更新被测代码,并对更新后的被测代码进行编译;
若被测代码编译成功,则S130:将编译成功的被测代码以软件形式拷贝至测试环境;
或,
将编译成功的被测代码以固件形式烧录至测试环境。
若所述被测代码编译失败,则S130′:结束测试流程,并生成相应的编译失败日志。可选地,该编译失败日志将以邮件形式发送至测试人员或用户。
具体地,抓取功能标识符,并通过密钥解锁测试内容,进行功能模块测试,包括:
S210:将被测代码的功能模块中的功能标识符设置为赋能状态;
S220:根据赋能状态由功能模块密钥生成与被测代码的功能模块对应的随机密钥,并将密钥保存于测试环境的内存中;
S230:从内存中读取功能模块密钥,并对功能模块密钥进行解析;
当功能模块密钥被成功解析,则S240:根据功能标识符配置测试任务。
当功能模块密钥被解析失败,则S240′:结束测试流程,生成密钥解析失败日志。可选地,该编译失败日志将以邮件形式发送至测试人员或用户。
具体地,生成对应于功能模块测试的测试结果,包括:
当测试成功完成后,生成对应于功能模块测试的测试结果,包括:
S310:生成测试报告,并将测试报告发送至测试人员;其中测试报告包括:Git代码信息,流程开始时间,及测试结果。邮件发送。
当测试失败时,生成对应于功能模块测试的测试结果,包括:
S310′:记录错误日志,根据所述错误日志生成分析报告,并将所述分析报告发送至测试人员。
上述代码模块测试方法之前还包括:在被测代码中设置密钥和标识符,并将被测代码上传至Git仓库。
具体地,在被测代码中设置密钥和标识符,并将被测代码上传至Git仓库包括:
分别在被测代码的各个功能模块中设置功能模块密钥和功能标识符;其中,功能模块密钥用于生成随机密钥,功能标识符的默认状态设置为使能关;
将包含功能模块密钥和功能标识符的被测代码传输至Git仓库。
具体地,将包含功能模块密钥和功能标识符的被测代码传输至Git仓库之后还包括:
在Git仓库中,逐一比对被测代码的功能模块与现有功能模块的差异,若被测代码的功能模块与保存于Git仓库中的功能模块存在差异,则对应于存在差异的功能模块,生成一个代码分支。
实施例三
下面结合图2阐述一种代码模块测试装置,装置包括:编译刷新模块,功能测试模块,结果输出模块;
编译刷新模块,用于根据代码分支更新并编译被测代码,并根据编译后的被测代码更新测试环境;其中,被测代码包括至少一个功能模块,功能模块中设置有:功能模块密钥和功能标识符;代码分支记载被测代码中的功能模块与Git仓库中保存的相应功能模块的区别;
功能测试模块,用于抓取功能标识符,并通过密钥解锁测试内容,进行功能模块测试;
结果输出模块,用于生成对应于功能模块测试的测试结果,完成测试。
实施例四
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行计算机程序时实现上述第一方面记载方法的步骤。具体包括:
S100:根据代码分支更新并编译被测代码,并根据编译后的被测代码更新测试环境;其中,被测代码包括至少一个功能模块,功能模块中设置有:功能模块密钥和功能标识符;代码分支记载被测代码中的功能模块与Git仓库中保存的相应功能模块的区别。
S200:抓取功能标识符,并通过密钥解锁测试内容,进行功能模块测试;
S300:生成对应于功能模块测试的测试结果,完成测试。
具体地,根据代码分支更新并编译被测代码,并根据编译后的被测代码更新测试环境,包括:
S110:与Git仓库建立连接,获取对应于被测代码的代码分支;
S120:根据代码分支更新被测代码,并对更新后的被测代码进行编译;
若被测代码编译成功,则S130:将编译成功的被测代码以软件形式拷贝至测试环境;
或,
将编译成功的被测代码以固件形式烧录至测试环境。
若所述被测代码编译失败,则S130′:结束测试流程,并生成相应的编译失败日志。可选地,该编译失败日志将以邮件形式发送至测试人员或用户。
具体地,抓取功能标识符,并通过密钥解锁测试内容,进行功能模块测试,包括:
S210:将被测代码的功能模块中的功能标识符设置为赋能状态;
S220:根据赋能状态由功能模块密钥生成与被测代码的功能模块对应的随机密钥,并将密钥保存于测试环境的内存中;
S230:从内存中读取功能模块密钥,并对功能模块密钥进行解析;
当功能模块密钥被成功解析,则S240:根据功能标识符配置测试任务。
当功能模块密钥被解析失败,则S240′:结束测试流程,生成密钥解析失败日志。可选地,该编译失败日志将以邮件形式发送至测试人员或用户。
具体地,生成对应于功能模块测试的测试结果,包括:
当测试成功完成后,生成对应于功能模块测试的测试结果,包括:
S310:生成测试报告,并将测试报告发送至测试人员;其中测试报告包括:Git代码信息,流程开始时间,及测试结果。邮件发送。
当测试失败时,生成对应于功能模块测试的测试结果,包括:
S310′:记录错误日志,根据所述错误日志生成分析报告,并将所述分析报告发送至测试人员。
上述代码模块测试方法之前还包括:在被测代码中设置密钥和标识符,并将被测代码上传至Git仓库。
具体地,在被测代码中设置密钥和标识符,并将被测代码上传至Git仓库包括:
分别在被测代码的各个功能模块中设置功能模块密钥和功能标识符;其中,功能模块密钥用于生成随机密钥,功能标识符的默认状态设置为使能关;
将包含功能模块密钥和功能标识符的被测代码传输至Git仓库。
具体地,将包含功能模块密钥和功能标识符的被测代码传输至Git仓库之后还包括:
在Git仓库中,逐一比对被测代码的功能模块与现有功能模块的差异,若被测代码的功能模块与保存于Git仓库中的功能模块存在差异,则对应于存在差异的功能模块,生成一个代码分支。
实施例五
第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面记载方法的步骤。具体包括:
S100:根据代码分支更新并编译被测代码,并根据编译后的被测代码更新测试环境;其中,被测代码包括至少一个功能模块,功能模块中设置有:功能模块密钥和功能标识符;代码分支记载被测代码中的功能模块与Git仓库中保存的相应功能模块的区别。
S200:抓取功能标识符,并通过密钥解锁测试内容,进行功能模块测试;
S300:生成对应于功能模块测试的测试结果,完成测试。
具体地,根据代码分支更新并编译被测代码,并根据编译后的被测代码更新测试环境,包括:
S110:与Git仓库建立连接,获取对应于被测代码的代码分支;
S120:根据代码分支更新被测代码,并对更新后的被测代码进行编译;
若被测代码编译成功,则S130:将编译成功的被测代码以软件形式拷贝至测试环境;
或,
将编译成功的被测代码以固件形式烧录至测试环境。
若所述被测代码编译失败,则S130′:结束测试流程,并生成相应的编译失败日志。可选地,该编译失败日志将以邮件形式发送至测试人员或用户。
具体地,抓取功能标识符,并通过密钥解锁测试内容,进行功能模块测试,包括:
S210:将被测代码的功能模块中的功能标识符设置为赋能状态;
S220:根据赋能状态由功能模块密钥生成与被测代码的功能模块对应的随机密钥,并将密钥保存于测试环境的内存中;
S230:从内存中读取功能模块密钥,并对功能模块密钥进行解析;
当功能模块密钥被成功解析,则S240:根据功能标识符配置测试任务。
当功能模块密钥被解析失败,则S240′:结束测试流程,生成密钥解析失败日志。可选地,该编译失败日志将以邮件形式发送至测试人员或用户。
具体地,生成对应于功能模块测试的测试结果,包括:
当测试成功完成后,生成对应于功能模块测试的测试结果,包括:
S310:生成测试报告,并将测试报告发送至测试人员;其中测试报告包括:Git代码信息,流程开始时间,及测试结果。邮件发送。
当测试失败时,生成对应于功能模块测试的测试结果,包括:
S310′:记录错误日志,根据所述错误日志生成分析报告,并将所述分析报告发送至测试人员。
上述代码模块测试方法之前还包括:在被测代码中设置密钥和标识符,并将被测代码上传至Git仓库。
具体地,在被测代码中设置密钥和标识符,并将被测代码上传至Git仓库包括:
分别在被测代码的各个功能模块中设置功能模块密钥和功能标识符;其中,功能模块密钥用于生成随机密钥,功能标识符的默认状态设置为使能关;
将包含功能模块密钥和功能标识符的被测代码传输至Git仓库。
具体地,将包含功能模块密钥和功能标识符的被测代码传输至Git仓库之后还包括:
在Git仓库中,逐一比对被测代码的功能模块与现有功能模块的差异,若被测代码的功能模块与保存于Git仓库中的功能模块存在差异,则对应于存在差异的功能模块,生成一个代码分支。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括装载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置从网络上被下载和安装,或者从存储器被安装,或者从ROM被安装。在该计算机程序被外部处理器执行时,执行本申请的实施例的方法中限定的上述功能。
需要说明的是,本申请的实施例的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请的实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(Radio Frequency,射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述服务器中所包含的;也可以是单独存在,而未装配入该服务器中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该服务器执行时,使得该服务器:响应于检测到终端的外设模式未激活时,获取终端上应用的帧率;在帧率满足息屏条件时,判断用户是否正在获取终端的屏幕信息;响应于判断结果为用户未获取终端的屏幕信息,控制屏幕进入立即暗淡模式。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的实施例的操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java,Smalltalk,C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上对本申请所提供的技术方案进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本申请的限制。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种代码模块测试方法,其特征在于,所述方法包括:
根据代码分支更新并编译被测代码,并根据编译后的所述被测代码更新测试环境;其中,所述被测代码包括至少一个功能模块,所述功能模块中设置有:功能模块密钥和功能标识符;所述代码分支记载被测代码中的功能模块与Git仓库中保存的相应功能模块的区别;
抓取所述功能标识符,并通过密钥解锁测试内容,进行功能模块测试;
生成对应于所述功能模块测试的测试结果,完成测试。
2.根据权利要求1所述的一种代码模块测试方法,其特征在于,所述根据代码分支更新并编译被测代码,并根据编译后的所述被测代码更新测试环境,包括:
与Git仓库建立连接,获取对应于所述被测代码的代码分支;
根据所述代码分支更新被测代码,并对更新后的被测代码进行编译;
若所述被测代码编译成功,则将编译成功的所述被测代码以软件形式拷贝至测试环境;
或,
将编译成功的所述被测代码以固件形式烧录至测试环境。
3.根据权利要求1所述的一种代码模块测试方法,其特征在于,所述抓取所述功能标识符,并通过密钥解锁测试内容,进行功能模块测试,包括:
将被测代码的功能模块中的功能标识符设置为赋能状态;
根据所述赋能状态由所述功能模块密钥生成与被测代码的功能模块对应的随机密钥,并将所述密钥保存于所述测试环境的内存中;
从内存中读取所述功能模块密钥,并对所述功能模块密钥进行解析;
当所述功能模块密钥被成功解析,则根据功能标识符配置测试任务。
4.根据权利要求1所述的一种代码模块测试方法,其特征在于,所述生成对应于所述功能模块测试的测试结果,包括:
当测试成功完成后,生成对应于所述功能模块测试的测试结果,包括:生成测试报告,并将所述测试报告发送至测试人员;其中,所述测试报告包括:Git代码信息,流程开始时间,及测试结果。
5.根据权利要求1所述的一种代码模块测试方法,其特征在于,所述方法之前还包括:在被测代码中设置密钥和标识符,并将所述被测代码上传至Git仓库。
6.根据权利要求5所述的一种代码模块测试方法,其特征在于,所述在被测代码中设置密钥和标识符,并将所述被测代码上传至Git仓库包括:
分别在被测代码的各个功能模块中设置功能模块密钥和功能标识符;其中,所述功能模块密钥用于生成随机密钥,所述功能标识符的默认状态设置为使能关;
将包含所述功能模块密钥和所述功能标识符的所述被测代码传输至Git仓库。
7.根据权利要求6所述的一种代码模块测试方法,其特征在于,所述将包含所述功能模块密钥和所述功能标识符的所述被测代码传输至Git仓库之后还包括:
在Git仓库中,逐一比对被测代码的功能模块与现有功能模块的差异,若被测代码的功能模块与保存于所述Git仓库中的功能模块存在差异,则对应于存在差异的功能模块,生成一个代码分支。
8.一种代码模块测试装置,其特征在于,所述装置包括:编译刷新模块,功能测试模块,结果输出模块;
所述编译刷新模块,用于根据代码分支更新并编译被测代码,并根据编译后的所述被测代码更新测试环境;其中,所述被测代码包括至少一个功能模块,所述功能模块中设置有:功能模块密钥和功能标识符;所述代码分支记载被测代码中的功能模块与Git仓库中保存的相应功能模块的区别;
所述功能测试模块,用于抓取所述功能标识符,并通过密钥解锁测试内容,进行功能模块测试;
所述结果输出模块,用于生成对应于所述功能模块测试的测试结果,完成测试。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任意一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211204060.6A CN115481041A (zh) | 2022-09-29 | 2022-09-29 | 一种代码模块测试方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211204060.6A CN115481041A (zh) | 2022-09-29 | 2022-09-29 | 一种代码模块测试方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115481041A true CN115481041A (zh) | 2022-12-16 |
Family
ID=84394418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211204060.6A Pending CN115481041A (zh) | 2022-09-29 | 2022-09-29 | 一种代码模块测试方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115481041A (zh) |
-
2022
- 2022-09-29 CN CN202211204060.6A patent/CN115481041A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11281570B2 (en) | Software testing method, system, apparatus, device medium, and computer program product | |
US9940225B2 (en) | Automated error checking system for a software application and method therefor | |
RU2390826C2 (ru) | Автоматическая проверка контрольных примеров, которая неявно связана с автоматическим исполнением контрольных примеров | |
US10176079B2 (en) | Identification of elements of currently-executing component script | |
CN102736978B (zh) | 一种检测应用程序的安装状态的方法及装置 | |
CN110013672B (zh) | 用于机器运行的游戏的自动化测试的方法、设备、装置以及计算机可读存储介质 | |
CN109902005B (zh) | 一种自动化测试的方法和系统 | |
US20140201727A1 (en) | Updating firmware compatibility data | |
CN111274154A (zh) | 一种自动化测试的方法、装置、设备及存储介质 | |
CN107329889B (zh) | 一种c编译器自动化测试的方法 | |
CN112882930B (zh) | 自动化测试方法、装置、存储介质及电子设备 | |
CN112069068A (zh) | 自动化测试数据处理方法、装置、设备及可读存储介质 | |
CN111813382A (zh) | 无形资产管理系统及方法 | |
CN115658529A (zh) | 用户页面的自动化测试方法以及相关设备 | |
CN114546749A (zh) | 一种芯片随机测试用例回归方法、装置、设备及可读介质 | |
CN117494638B (zh) | 芯片功能的验证方法、验证平台、电子设备及存储介质 | |
US20210406158A1 (en) | Systems and methods for automated device testing | |
KR101252358B1 (ko) | Plc 명령어 테스트 장치 및 방법 | |
CN115481041A (zh) | 一种代码模块测试方法、装置、设备及存储介质 | |
CN113094281B (zh) | 一种混合式App的测试方法及装置 | |
CN114942887A (zh) | 一种程序安全测试方法、装置、设备和介质 | |
CN113986263A (zh) | 代码自动化测试方法、装置、电子设备、存储介质 | |
CN113515452A (zh) | 应用的自动测试方法、系统、电子设备及存储介质 | |
CN109634865B (zh) | 一种代码转测方法、装置及转测终端 | |
CN115237743A (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 |