CN112527684A - 一种vue组件的测试方法、装置、终端以及存储介质 - Google Patents
一种vue组件的测试方法、装置、终端以及存储介质 Download PDFInfo
- Publication number
- CN112527684A CN112527684A CN202011555995.XA CN202011555995A CN112527684A CN 112527684 A CN112527684 A CN 112527684A CN 202011555995 A CN202011555995 A CN 202011555995A CN 112527684 A CN112527684 A CN 112527684A
- Authority
- CN
- China
- Prior art keywords
- target
- tested
- file
- vue component
- code block
- 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/3688—Test management for test execution, e.g. scheduling of test suites
-
- 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/3672—Test management
- G06F11/3692—Test management for test results analysis
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)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明公开了一种vue组件的测试方法、装置、终端以及存储介质,该vue组件的测试方法包括:创建包含有第一代码块和第二代码块的mixin文件;向目标vue组件对应的待测试文件插入mixin文件;在待测试文件中的每个目标代码块之后,插入用于调用第二代码块的第三代码块;生成并执行用于调用每个待测试生命周期函数的自动化测试脚本;在执行完自动化测试脚本之后,根据每个待测试生命周期函数对应的执行状态变量确定目标vue组件的自动化测试结果。可见,本发明能够实现自动完成vue组件的生命周期函数的测试,提高vue组件的生命周期函数测试方法的测试效率。本发明还涉及区块链技术领域。
Description
技术领域
本发明涉及自动化测试工具技术领域,尤其涉及一种vue组件的测试方法、装置、终端以及存储介质。
背景技术
在前端vue框架的自动化测试中,通常包括功能函数测试、点击事件测试、生命周期函数测试等测试流程。其中,针对vue组件的生命周期函数测试是前端vue框架的整个自动化测试中的重要部分。在针对vue组件的生命周期函数测试中,通常需要测试vue组件中的八个生命周期函数(beforeCreate函数、created函数、beforeMount函数、mounted函数、beforeUpdate函数、updated函数、beforeDestroy函数、destroyed函数)是否能够被顺利执行。目前,要实现判断vue组件中的生命周期函数是否能够被顺利执行,通常是由开发人员手动在vue组件的代码中添加两部分代码,一部分代码用于在全局的data函数中添加生命周期函数对应的变量,另一部分代码用于在生命周期函数成功执行之后,设置生命周期函数对应的变量为用于表示生命周期函数已被顺利执行。最后,根据生命周期函数对应的变量的状态,即能够确定生命周期函数是否被顺利执行,从而完成生命周期函数的测试。但是,由于vue组件的生命周期函数繁多、开发人员手动添加代码需要投入较多的时间学习自动化测试的语法、手动添加完代码之后还需要投入较多的时间进行调试和修正等原因,目前的vue组件的生命周期函数测试方法的测试效率较低。
发明内容
本发明所要解决的技术问题在于,由于vue组件的生命周期函数繁多、开发人员手动添加代码需要投入较多的时间学习自动化测试的语法、手动添加完代码之后还需要投入较多的时间进行调试和修正等原因,导致目前vue组件的生命周期函数测试方法的测试效率较低。
为了解决上述技术问题,本发明第一方面公开了一种vue组件的测试方法,所述方法包括:
创建包含有第一代码块和第二代码块的mixin文件,所述第一代码块用于为至少一个生命周期函数创建各自对应的执行状态变量,每个所述执行状态变量用于表示该执行状态变量对应的生命周期函数已成功执行或者未成功执行,所述第二代码块用于在每个所述生命周期函数成功执行之后,将该生命周期函数对应的执行状态变量设置为用于表示该生命周期函数已成功执行;
向目标vue组件对应的待测试文件插入所述mixin文件,所述待测试文件包含有至少一个待测试生命周期函数对应的目标代码块,每个所述目标代码块用于执行该目标代码块对应的待测试生命周期函数;
在所述待测试文件中的每个目标代码块之后,插入用于调用所述第二代码块的第三代码块;
生成并执行用于调用每个所述待测试生命周期函数的自动化测试脚本;
在执行完所述自动化测试脚本之后,根据每个所述待测试生命周期函数对应的执行状态变量确定所述目标vue组件的自动化测试结果。
本发明第二方面公开了一种vue组件的测试装置,所述装置包括:
创建模块,用于创建包含有第一代码块和第二代码块的mixin文件,所述第一代码块用于为至少一个生命周期函数创建各自对应的执行状态变量,每个所述执行状态变量用于表示该执行状态变量对应的生命周期函数已成功执行或者未成功执行,所述第二代码块用于在每个所述生命周期函数成功执行之后,将该生命周期函数对应的执行状态变量设置为用于表示该生命周期函数已成功执行;
插入模块,用于向目标vue组件对应的待测试文件插入所述mixin文件,所述待测试文件包含有至少一个待测试生命周期函数对应的目标代码块,每个所述目标代码块用于执行该目标代码块对应的待测试生命周期函数;
所述插入模块,还用于在所述待测试文件中的每个目标代码块之后,插入用于调用所述第二代码块的第三代码块;
生成模块,用于生成并执行用于调用每个所述待测试生命周期函数的自动化测试脚本;
确定模块,用于在执行完所述自动化测试脚本之后,根据每个所述待测试生命周期函数对应的执行状态变量确定所述目标vue组件的自动化测试结果。
本发明第三方面公开了一种vue组件的测试终端,所述终端包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,执行本发明第一方面公开的vue组件的测试方法中的部分或全部步骤。
本发明第四方面公开了一种计算机存储介质,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行本发明第一方面公开的vue组件的测试方法中的部分或全部步骤。
与现有技术相比,本发明实施例具有以下有益效果:
本发明实施例中,通过向目标vue组件对应的待测试文件插入包含有第一代码块、第二代码块的mixin文件和第三代码块,实现在待测试文件的待测试生命周期函数被成功执行之后,自动设置待测试生命周期函数对应的执行状态变量。然后,生成并执行自动化测试脚本以调用待测试文件中的每个待测试生命周期函数。最后,根据每个待测试生命周期函数对应的执行状态变量得到目标vue组件的自动化测试结果。可见,实施本发明能够实现自动向待测试文件插入测试代码,自动完成vue组件的生命周期函数的测试,从而替代由开发人员向待测试文件手动添加测试代码的测试方式,提高vue组件的生命周期函数测试方法的测试效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例公开的一种vue组件的测试方法的流程示意图;
图2是本发明实施例公开的一种vue组件的测试装置的结构示意图;
图3是本发明实施例公开的一种vue组件的测试终端的结构示意图;
图4是本发明实施例公开的一种计算机存储介质的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或端没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或端固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本发明公开了一种vue组件的测试方法、装置、终端以及存储介质,能够实现自动向待测试文件插入测试代码,自动完成vue组件的生命周期函数的测试,从而替代由开发人员向待测试文件手动添加测试代码的测试方式,提高vue组件的生命周期函数测试方法的测试效率。以下分别进行详细说明。
实施例一
请参阅图1,图1是本发明实施例公开的一种vue组件的测试方法的流程示意图。如图1所示,该vue组件的测试方法可以包括以下操作:
101、创建包含有第一代码块和第二代码块的mixin文件。
在上述步骤101中,第一代码块用于为至少一个生命周期函数创建各自对应的执行状态变量,每个执行状态变量用于表示该执行状态变量对应的生命周期函数已成功执行或者未成功执行,第二代码块用于在每个生命周期函数成功执行之后,将该生命周期函数对应的执行状态变量设置为用于表示该生命周期函数已成功执行。第一代码块用于在全局的data函数中,添加生命周期函数对应的变量,并完成对所添加的变量的初始化。例如,在全局的data函数中,为beforeCreate生命周期函数添加名称为isBeforeCreate的变量,并将isBeforeCreate变量的值初始化为N,为created生命周期函数添加名称为isCreated的变量,并将isCreated变量的值初始化为N,如此类推,可以为8个生命周期函数均添加对应的变量,也可以只选择8个生命周期函数中的一个或多个生命周期函数,添加其对应的变量。第二代码块用于在生命周期函数执行完毕之后,将执行完毕的生命周期函数对应的变量的值设置为Y。mixins是vue中提供的一种混合机制,用于更高效地实现vue组件内容的复用。通过将共用的代码存储在mixin文件中,可以实现在各个vue组件中共用代码。在进行针对vue组件的生命周期函数测试时,运行本发明实施例中的vue组件的测试方法,自动向vue组件对应的代码插入测试的代码,并自动利用所插入的测试代码完成vue组件的生命周期函数测试(即为每个生命周期函数设置对应的变量,在该生命周期函数成功执行之后,将该生命周期函数对应的变量翻转,最后通过查询该生命周期函数对应的变量来判断该生命周期函数是否已被成功执行,从而判断出该生命周期函数是否正常运行)。
102、向目标vue组件对应的待测试文件插入mixin文件。
在上述步骤102中,待测试文件包含有至少一个待测试生命周期函数对应的目标代码块,每个目标代码块用于执行该目标代码块对应的待测试生命周期函数。按照mixins的语法,可以通过import语法向目标vue组件对应的待测试文件引入所创建的mixin文件,并在引入所创建的mixin文件之后,在目标vue组件的mixins配置中,增加所创建的mixin文件的配置,这样即可以在待测试文件中使用所创建的mixin文件,从而完成向待测试文件插入mixin文件。也即,mixin文件中包含的代码相当于目标vue组件的各个待测试文件共用的代码,在插入mixin文件之后,每个待测试文件都可以使用mixin文件中包含的代码。通常一个vue组件项目中都会包括多个文件,但是通常只有一部分文件包含有生命周期函数的代码,所以只需要向包含有生命周期函数的代码的文件(即待测试文件)插入mixin文件。具体地,可以通过生命周期函数对应的关键字(beforeCreate、created、beforeMount、mounted、beforeUpdate、updated、beforeDestroy、destroyed)查找vue组件项目的文件中的生命周期函数,从而筛选出待测试文件。
103、在待测试文件中的每个目标代码块之后,插入用于调用第二代码块的第三代码块。
在上述步骤103中,可以通过生命周期函数对应的关键字(beforeCreate、created、beforeMount、mounted、beforeUpdate、updated、beforeDestroy、destroyed)查找并定位待测试文件中的目标代码块。向待测试文件插入mixin文件之后,mixin文件中包含的第二代码块即相当于待测试文件的代码,在待测试文件中也可以直接调用。在目标代码块的最后一行(即对应的生命周期函数执行完毕之后),添加用于调用第二代码块的第三代码块,即能够实现在执行完生命周期函数之后自动设置执行完的生命周期函数对应的执行状态变量的值为Y。
104、生成并执行用于调用每个待测试生命周期函数的自动化测试脚本。
在上述步骤104中,在自动化测试脚本中,可以通过import语法引入需要测试的目标vue组件,然后模拟每个生命周期函数的调用执行(即相当于将8个生命周期函数都执行一次),这样即能够保证每个待测试生命周期函数都会被调用执行。例如,针对生命周期函数mount,可以通过如下语法模拟生命周期函数mount的调用执行:letvm=newVue(组件).$mount()。
105、在执行完自动化测试脚本之后,根据每个待测试生命周期函数对应的执行状态变量确定目标vue组件的自动化测试结果。
在上述步骤105中,在执行完自动化测试脚本之后,每个待测试生命周期函数都被调用执行了一次,由于之前已在待测试文件中插入了mixin文件和第三代码块,所以若待测试生命周期函数能够正常执行,则待测试生命周期函数对应的执行状态变量的值会被设置为Y,若待测试生命周期函数不能够正常执行,则待测试生命周期函数对应的执行状态变量的值仍保留为N,最后,通过查询每个待测试生命周期函数对应的执行状态变量的值,即能够确定该待测试生命周期函数是否能够被正常执行(若对应的执行状态变量的值为Y,则表示该待测试生命周期函数能正常执行,若对应的执行状态变量的值为N,则表示该待测试生命周期函数不能正常执行),从而得到目标vue组件的自动化测试结果。得到的自动化测试结果即可以是每个待测试生命周期函数的执行情况(即每个待测试生命周期函数是否被成功执行)。
需要说明的是,上述vue组件的生命周期函数测试方法可以封装成一个软件工具。可以在命令行中定位目标vue组件所在项目的根目录,然后执行命令:npm I pa-vue-test-lifecycle--save-dev,就可以将该软件工具添加至vue组件所在项目中,并且默认在vue组件所在的项目中自动加入并下载必须的依赖文件。然后在package.json中的srcipt对象中的unit对应的值的命令前面,增加工具执行命令pa-vue-test-lifecycle,即最终变成pa-vue-test-lifecycle jest--config test/unit/jest.conf.js–coverage,这样在执行自动化单元测试的时候,会先执行针对目标vue组件的工具执行命令,完成针对目标vue组件的生命周期函数测试。
可见,实施图1所描述的vue组件的测试方法通过向目标vue组件对应的待测试文件插入包含有第一代码块、第二代码块的mixin文件和第三代码块,实现在待测试文件的待测试生命周期函数被成功执行之后,自动设置待测试生命周期函数对应的执行状态变量。然后,生成并执行自动化测试脚本以调用待测试文件中的每个待测试生命周期函数。最后,根据每个待测试生命周期函数对应的执行状态变量得到目标vue组件的自动化测试结果。能够实现自动向待测试文件插入测试代码,自动完成vue组件的生命周期函数的测试,从而替代由开发人员向待测试文件手动添加测试代码的测试方式,提高vue组件的生命周期函数测试方法的测试效率。
在一个可选的实施例中,根据每个待测试生命周期函数对应的执行状态变量确定目标vue组件的自动化测试结果之后,该vue组件的测试方法还包括:
将mixin文件和所有的第三代码块从待测试文件中删除。
在该可选的实施例中,无论是由开发人员手动向目标vue组件的代码中插入测试代码还是通过该vue组件的生命周期函数测试方法自动向目标vue组件的代码中插入测试代码,在完成目标vue组件的自动化测试结果之后,都向目标vue组件的源代码插入了新的代码,这样会对目标vue组件的源代码的稳定性、可读性、可维护性造成一定的影响。在完成自动化测试之后,将自动化测试中插入的mixin文件和第三代码块,从源代码中删除,从而能够减少插入的mixin文件和第三代码块对源代码的影响,实现以非侵入的方式自动完成目标vue组件的生命周期函数测试。具体地,可以通过分析AST抽象语法树,在源代码被修改之后,反编译出修改后的源代码的方式或者直接使用node.js中repalce做正则等规则替换的方式实现将mixin文件和第三代码块从待测试文件中删除。
可见,实施该可选的实施例,能够在完成自动化测试之后,将自动化测试中插入的mixin文件和第三代码块,从源代码中删除,从而能够减少插入的mixin文件和第三代码块对源代码的影响,实现以非侵入的方式自动完成目标vue组件的生命周期函数测试。
在一个可选的实施例中,创建包含有第一代码块和第二代码块的mixin文件之前,该vue组件的测试方法还包括:
判断目标vue组件对应的项目文件中是否包含目标开源库,目标开源库是指用于支撑目标vue组件的自动化测试的开源库;
当判断出目标vue组件对应的项目文件中不包含目标开源库,执行预先确定出的用于安装并配置目标开源库的命令,并触发执行创建包含有第一代码块和第二代码块的mixin文件的操作;
当判断出目标vue组件对应的项目文件中包含目标开源库,触发执行创建包含有第一代码块和第二代码块的mixin文件的操作。
在该可选的实施例中,目标开源库可以是jest、vue-jest、babel-jest这三个开源库,进行目标vue组件的自动化测试需要依赖这三个开源库。若检查到目标vue组件的项目中的package.json文件(项目文件)未包含这三个开源库,则可以执行命令npminstalljest vue-jestbabel-jest-save-dev,以实现安装并配置目标开源库,为目标vue组件的自动化测试提供支撑。
可见,实施该可选的实施例,能够在进行生命周期函数测试之前,判断目标vue组件是否已具备进行生命周期函数测试的支撑条件(即是否包含目标开源库),并在目标vue组件未具备支撑条件时,执行用于安装并配置目标开源库的命令,从而能够保证目标vue组件的生命周期函数测试的顺利执行,提高生命周期函数测试方法的可靠性。
在一个可选的实施例中,向目标vue组件对应的待测试文件插入mixin文件之前,该vue组件的测试方法还包括:
获取由用户编写的配置文件,配置文件至少包括目标vue组件的目标地址;
根据目标地址查找目标vue组件对应的所有文件;
从目标vue组件对应的所有文件中筛选出包含有生命周期函数的文件,以作为目标vue组件对应的待测试文件,并触发执行向目标vue组件对应的待测试文件插入mixin文件的操作。
在该可选的实施例中,配置文件可以是config.json文件,用户可以将需要进行生命周期函数测试的vue组件(目标vue组件)的地址编写在config.json文件中。根据config.json文件中的地址能够查找到目标vue组件的项目的所有文件。然后,可以通过生命周期函数对应的关键字(beforeCreate、created、beforeMount、mounted、beforeUpdate、updated、beforeDestroy、destroyed)查找到包含有生命周期函数的文件,以作为待测试文件。
可见,实施该可选的实施例,用户能够自行配置需要进行生命周期函数测试的目标vue组件,从而能够通过简单的文件配置,实现测试工具的复用。
在一个可选的实施例中,目标vue组件的自动化测试结果包括目标vue组件的创建期测试结果、运行期测试结果和销毁期测试结果;
以及,根据每个待测试生命周期函数对应的执行状态变量确定目标vue组件的自动化测试结果,包括:
根据所有的待测试生命周期函数中的创建期生命周期函数对应的执行状态变量,确定目标vue组件的创建期测试结果;
根据所有的待测试生命周期函数中的运行期生命周期函数对应的执行状态变量,确定目标vue组件的运行期测试结果;
根据所有的待测试生命周期函数中的销毁期生命周期函数对应的执行状态变量,确定目标vue组件的销毁期测试结果。
在该可选的实施例中,一个vue实例的生命周期包括创建期、运行期和销毁期。每个生命周期函数都有其对应的执行期间,其中,beforeCreate、created、beforeMount和mounted(即创建期生命周期函数)在创建期执行,beforeUpdate和updated(即运行期生命周期函数)在运行期执行,beforeDestroy和destroyed(即销毁期生命周期函数)在销毁期执行。将8个生命周期函数按照其在整个生命周期中所处的时期进行划分,再根据各个时期的生命周期函数对应的执行状态变量得到各个时期的测试结果(即各个时期的生命周期函数是否被成功执行),从而能够在输出目标vue组件的自动化测试结果时,输出生命周期函数各个时期的测试结果,有助于对目标vue组件的生命周期中的各个时期进行分析(例如,在生命周期函数测试出现异常时,能够快速确定出出现异常的时期),提高生命周期函数测试的测试效率。
可见,实施该可选的实施例,根据各个时期的生命周期函数对应的执行状态变量得到各个时期的测试结果,从而能够在输出目标vue组件的自动化测试结果时,输出生命周期函数各个时期的测试结果,有助于对目标vue组件的生命周期中的各个时期进行分析,提高生命周期函数测试的测试效率。
在一个可选的实施例中,根据每个待测试生命周期函数对应的执行状态变量确定目标vue组件的自动化测试结果之后,该vue组件的测试方法还包括:
判断创建期测试结果是否满足预设的第一警告条件,当判断出创建期测试结果满足第一警告条件时,输出第一警告提示,第一警告提示用于提示用户目标vue组件的创建期存在异常;
判断运行期测试结果是否满足预设的第二警告条件,当判断出运行期测试结果满足第二警告条件时,输出第二警告提示,第二警告提示用于提示用户目标vue组件的运行期存在异常;
判断销毁期测试结果是否满足预设的第三警告条件,当判断出销毁期测试结果满足第三警告条件时,输出第三警告提示,第三警告提示用于提示用户目标vue组件的销毁期存在异常。
在该可选的实施例中,当所有的创建期生命周期函数都未能成功执行时,可以确定创建期测试结果满足第一警告条件,或者,当未能成功执行的创建期生命周期函数的数量大于预设的阈值(例如,预设的阈值为2)时,可以确定创建期测试结果满足第一警告条件,然后提示测试人员目标vue组件的创建期存在异常。相似地,当所有的运行期生命周期函数都未能成功执行时,可以确定运行期测试结果满足第二警告条件,或者,当未能成功执行的运行期生命周期函数的数量大于预设的阈值(例如,预设的阈值为1)时,可以确定运行期测试结果满足第二警告条件。当所有的销毁期生命周期函数都未能成功执行时,可以确定销毁期测试结果满足第三警告条件,或者,当未能成功执行的销毁期生命周期函数的数量大于预设的阈值(例如,预设的阈值为1)时,可以确定销毁期测试结果满足第三警告条件。
可见,实施该可选的实施例,能够根据目标vue组件的生命周期中的各个时期的测试结果,自动分析生命周期的各个时期是否存在异常,能够辅助用户进行目标vue组件的生命周期函数的测试结果的分析,提高测试效率。
可选地,还可以:将基于该vue组件的测试方法得到的自动化测试结果上传至区块链中。
具体地,将自动化测试结果上传至区块链可保证其安全性和对用户的公正透明性。用户可以从区块链中下载得到该自动化测试结果,以便查证该vue组件的测试方法的自动化测试结果是否被篡改。本示例所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
可见,实施实施例一所描述的vue组件的测试方法,能够实现自动向待测试文件插入测试代码,自动完成vue组件的生命周期函数的测试,从而替代由开发人员向待测试文件手动添加测试代码的测试方式,提高vue组件的生命周期函数测试方法的测试效率。还能够在完成自动化测试之后,将自动化测试中插入的mixin文件和第三代码块,从源代码中删除,实现以非侵入的方式自动完成目标vue组件的生命周期函数测试。还能够在进行生命周期函数测试之前,判断目标vue组件是否已具备进行生命周期函数测试的支撑条件(即是否包含目标开源库),并在目标vue组件未具备支撑条件时,执行用于安装并配置目标开源库的命令。还能够自行配置需要进行生命周期函数测试的目标vue组件,从而能够通过简单的文件配置,实现测试工具的复用。还根据各个时期的生命周期函数对应的执行状态变量得到各个时期的测试结果,从而能够在输出目标vue组件的自动化测试结果时,输出生命周期函数各个时期的测试结果。还能够根据目标vue组件的生命周期中的各个时期的测试结果,自动分析生命周期的各个时期是否存在异常。
实施例二
请参阅图2,图2是本发明实施例公开的一种vue组件的测试装置的结构示意图。如图2所示,该vue组件的测试装置可以包括:
创建模块201,用于创建包含有第一代码块和第二代码块的mixin文件,第一代码块用于为至少一个生命周期函数创建各自对应的执行状态变量,每个执行状态变量用于表示该执行状态变量对应的生命周期函数已成功执行或者未成功执行,第二代码块用于在每个生命周期函数成功执行之后,将该生命周期函数对应的执行状态变量设置为用于表示该生命周期函数已成功执行;
插入模块202,用于向目标vue组件对应的待测试文件插入mixin文件,待测试文件包含有至少一个待测试生命周期函数对应的目标代码块,每个目标代码块用于执行该目标代码块对应的待测试生命周期函数;
插入模块202,还用于在待测试文件中的每个目标代码块之后,插入用于调用第二代码块的第三代码块;
生成模块203,用于生成并执行用于调用每个待测试生命周期函数的自动化测试脚本;
确定模块204,用于在执行完自动化测试脚本之后,根据每个待测试生命周期函数对应的执行状态变量确定目标vue组件的自动化测试结果。
对于上述vue组件的测试装置的具体描述可以参照上述vue组件的测试方法的具体描述,在此不再一一赘述。
可见,实施图2所描述的vue组件的测试装置,通过向目标vue组件对应的待测试文件插入包含有第一代码块、第二代码块的mixin文件和第三代码块,实现在待测试文件的待测试生命周期函数被成功执行之后,自动设置待测试生命周期函数对应的执行状态变量。然后,生成并执行自动化测试脚本以调用待测试文件中的每个待测试生命周期函数。最后,根据每个待测试生命周期函数对应的执行状态变量得到目标vue组件的自动化测试结果。能够实现自动向待测试文件插入测试代码,自动完成vue组件的生命周期函数的测试,从而替代由开发人员向待测试文件手动添加测试代码的测试方式,提高vue组件的生命周期函数测试方法的测试效率。
实施例三
请参阅图3,图3是本发明实施例公开的一种vue组件的测试终端的结构示意图。如图3所示,该vue组件的测试终端可以包括:
存储有可执行程序代码的存储器301;
与存储器301耦合的处理器302;
处理器302调用存储器301中存储的可执行程序代码,执行本发明实施例一公开的vue组件的测试方法中的步骤。
实施例四
本发明实施例公开了一种计算机存储介质401,计算机存储介质401存储有计算机指令,该计算机指令被调用时,用于执行本发明实施例一公开的vue组件的测试方法中的步骤。
以上所描述的装置实施例仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施例的具体描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,存储介质包括只读存储器(Read-Only Memory,ROM)、随机存储器(Random Access Memory,RAM)、可编程只读存储器(Programmable Read-only Memory,PROM)、可擦除可编程只读存储器(ErasableProgrammable Read Only Memory,EPROM)、一次可编程只读存储器(One-timeProgrammable Read-Only Memory,OTPROM)、电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
最后应说明的是:本发明实施例公开的一种vue组件的测试方法、装置、终端以及存储介质所揭露的仅为本发明较佳实施例而已,仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各项实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应的技术方案的本质脱离本发明各项实施例技术方案的精神和范围。
Claims (10)
1.一种vue组件的测试方法,其特征在于,所述方法包括:
创建包含有第一代码块和第二代码块的mixin文件,所述第一代码块用于为至少一个生命周期函数创建各自对应的执行状态变量,每个所述执行状态变量用于表示该执行状态变量对应的生命周期函数已成功执行或者未成功执行,所述第二代码块用于在每个所述生命周期函数成功执行之后,将该生命周期函数对应的执行状态变量设置为用于表示该生命周期函数已成功执行;
向目标vue组件对应的待测试文件插入所述mixin文件,所述待测试文件包含有至少一个待测试生命周期函数对应的目标代码块,每个所述目标代码块用于执行该目标代码块对应的待测试生命周期函数;
在所述待测试文件中的每个目标代码块之后,插入用于调用所述第二代码块的第三代码块;
生成并执行用于调用每个所述待测试生命周期函数的自动化测试脚本;
在执行完所述自动化测试脚本之后,根据每个所述待测试生命周期函数对应的执行状态变量确定所述目标vue组件的自动化测试结果。
2.根据权利要求1所述的vue组件的测试方法,其特征在于,所述根据每个所述待测试生命周期函数对应的执行状态变量确定所述目标vue组件的自动化测试结果之后,所述方法还包括:
将所述mixin文件和所有的所述第三代码块从所述待测试文件中删除。
3.根据权利要求2所述的vue组件的测试方法,其特征在于,所述创建包含有第一代码块和第二代码块的mixin文件之前,所述方法还包括:
判断所述目标vue组件对应的项目文件中是否包含目标开源库,所述目标开源库是指用于支撑所述目标vue组件的自动化测试的开源库;
当判断出所述目标vue组件对应的项目文件中不包含所述目标开源库,执行预先确定出的用于安装并配置所述目标开源库的命令,并触发执行所述创建包含有第一代码块和第二代码块的mixin文件的操作;
当判断出所述目标vue组件对应的项目文件中包含所述目标开源库,触发执行所述创建包含有第一代码块和第二代码块的mixin文件的操作。
4.根据权利要求3所述的vue组件的测试方法,其特征在于,所述向目标vue组件对应的待测试文件插入所述mixin文件之前,所述方法还包括:
获取由用户编写的配置文件,所述配置文件至少包括所述目标vue组件的目标地址;
根据所述目标地址查找所述目标vue组件对应的所有文件;
从所述目标vue组件对应的所有文件中筛选出包含有生命周期函数的文件,以作为所述目标vue组件对应的待测试文件,并触发执行所述向目标vue组件对应的待测试文件插入所述mixin文件的操作。
5.根据权利要求1-4任一项所述的vue组件的测试方法,其特征在于,所述目标vue组件的自动化测试结果包括所述目标vue组件的创建期测试结果、运行期测试结果和销毁期测试结果;
以及,所述根据每个所述待测试生命周期函数对应的执行状态变量确定所述目标vue组件的自动化测试结果,包括:
根据所有的所述待测试生命周期函数中的创建期生命周期函数对应的执行状态变量,确定所述目标vue组件的创建期测试结果;
根据所有的所述待测试生命周期函数中的运行期生命周期函数对应的执行状态变量,确定所述目标vue组件的运行期测试结果;
根据所有的所述待测试生命周期函数中的销毁期生命周期函数对应的执行状态变量,确定所述目标vue组件的销毁期测试结果。
6.根据权利要求5所述的vue组件的测试方法,其特征在于,所述根据每个所述待测试生命周期函数对应的执行状态变量确定所述目标vue组件的自动化测试结果之后,所述方法还包括:
判断所述创建期测试结果是否满足预设的第一警告条件,当判断出所述创建期测试结果满足所述第一警告条件时,输出第一警告提示,所述第一警告提示用于提示用户所述目标vue组件的创建期存在异常;
判断所述运行期测试结果是否满足预设的第二警告条件,当判断出所述运行期测试结果满足所述第二警告条件时,输出第二警告提示,所述第二警告提示用于提示所述用户所述目标vue组件的运行期存在异常;
判断所述销毁期测试结果是否满足预设的第三警告条件,当判断出所述销毁期测试结果满足所述第三警告条件时,输出第三警告提示,所述第三警告提示用于提示所述用户所述目标vue组件的销毁期存在异常。
7.一种vue组件的测试装置,其特征在于,所述装置包括:
创建模块,用于创建包含有第一代码块和第二代码块的mixin文件,所述第一代码块用于为至少一个生命周期函数创建各自对应的执行状态变量,每个所述执行状态变量用于表示该执行状态变量对应的生命周期函数已成功执行或者未成功执行,所述第二代码块用于在每个所述生命周期函数成功执行之后,将该生命周期函数对应的执行状态变量设置为用于表示该生命周期函数已成功执行;
插入模块,用于向目标vue组件对应的待测试文件插入所述mixin文件,所述待测试文件包含有至少一个待测试生命周期函数对应的目标代码块,每个所述目标代码块用于执行该目标代码块对应的待测试生命周期函数;
所述插入模块,还用于在所述待测试文件中的每个目标代码块之后,插入用于调用所述第二代码块的第三代码块;
生成模块,用于生成并执行用于调用每个所述待测试生命周期函数的自动化测试脚本;
确定模块,用于在执行完所述自动化测试脚本之后,根据每个所述待测试生命周期函数对应的执行状态变量确定所述目标vue组件的自动化测试结果。
8.根据权利要求7所述的vue组件的测试装置,其特征在于,所述装置还包括:
删除模块,用于在所述确定模块在执行完所述自动化测试脚本之后,根据每个所述待测试生命周期函数对应的执行状态变量确定所述目标vue组件的自动化测试结果之后,将所述mixin文件和所有的所述第三代码块从所述待测试文件中删除。
9.一种vue组件的测试终端,其特征在于,所述终端包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,执行如权利要求1-6任一项所述的vue组件的测试方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6任一项所述的vue组件的测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011555995.XA CN112527684A (zh) | 2020-12-23 | 2020-12-23 | 一种vue组件的测试方法、装置、终端以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011555995.XA CN112527684A (zh) | 2020-12-23 | 2020-12-23 | 一种vue组件的测试方法、装置、终端以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112527684A true CN112527684A (zh) | 2021-03-19 |
Family
ID=74976343
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011555995.XA Pending CN112527684A (zh) | 2020-12-23 | 2020-12-23 | 一种vue组件的测试方法、装置、终端以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112527684A (zh) |
-
2020
- 2020-12-23 CN CN202011555995.XA patent/CN112527684A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110554965B (zh) | 自动化模糊测试方法及相关设备、计算机可读存储介质 | |
US20120222014A1 (en) | Method and apparatus for detecting software bugs | |
CN109344080A (zh) | 持续交付与自动化测试一体化集成的软件质量保障方法 | |
US6298317B1 (en) | Enhanced functional testing through the filtration of non-subtle mutations | |
US10579513B2 (en) | Test run control method and apparatus | |
US9058427B2 (en) | Iterative generation of symbolic test drivers for object-oriented languages | |
CN110865941A (zh) | 接口测试用例生成方法、装置和系统 | |
US20080127061A1 (en) | Method and system for editing code | |
CN111428233A (zh) | 一种嵌入式设备固件的安全性分析方法 | |
US8949103B2 (en) | Program code simulator | |
CN114895935A (zh) | 刷写车辆ecu的方法、装置、电子设备及存储介质 | |
CN113742215A (zh) | 一种自动配置和调用测试工具进行测试分析的方法及系统 | |
CN106909434B (zh) | 可执行程序中未定义函数的检测方法及装置 | |
CN117493188A (zh) | 接口测试方法及装置、电子设备及存储介质 | |
CN109684205B (zh) | 系统测试方法、装置、电子设备及存储介质 | |
CN112527684A (zh) | 一种vue组件的测试方法、装置、终端以及存储介质 | |
CN116643761A (zh) | 一种定制化镜像制作及部署方法、装置、终端及介质 | |
CN114297088A (zh) | 前端vue框架组件的测试方法、装置、设备及介质 | |
CN110765008A (zh) | 一种数据处理方法及装置 | |
US9710360B2 (en) | Optimizing error parsing in an integrated development environment | |
CN115470141A (zh) | 一种故障模拟方法、装置及相关设备 | |
CN115617668A (zh) | 一种兼容性测试方法、装置及设备 | |
CN116501596A (zh) | 应用程序的测试方法及装置 | |
CN112783771A (zh) | 计算机软件的自动化测试方法、装置、设备以及存储介质 | |
CN113672269B (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 |