CN111475403A - 测试脚本的动态生成方法及相关装置 - Google Patents
测试脚本的动态生成方法及相关装置 Download PDFInfo
- Publication number
- CN111475403A CN111475403A CN202010190495.4A CN202010190495A CN111475403A CN 111475403 A CN111475403 A CN 111475403A CN 202010190495 A CN202010190495 A CN 202010190495A CN 111475403 A CN111475403 A CN 111475403A
- Authority
- CN
- China
- Prior art keywords
- preset
- variables
- data
- file
- replaced
- 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/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
Abstract
本申请实施例公开了一种测试脚本的动态生成方法及相关装置,应用于服务器,上述方法包括:获取待处理文件,待处理文件中包括待处理数据,处理待处理数据,得到多个待替换变量,根据多个待替换变量,生成中间文件,获取Jmeter测试脚本中的多个预设函数模块,根据多个预设函数模块,对中间文件中的目标数据进行语法分析,得到测试脚本文件,如此,可基于Jmeter工具,通过预设函数模块完成语法分析,上述预设函数模块可动态处理,因此,可动态生成测试脚本,提高了测试效率,有利于提高测试性能。
Description
技术领域
本申请涉及数据处理领域,具体涉及一种测试脚本的动态生成方法及相关装置。
背景技术
软件测试是在规定的条件下对程序进程操作,以发现程序错误,衡量软件性能,并对其是否能满足设计要求进行评估的过程。但是,由于当前整个行业没有一个通用的、统一的软件测试方法和工具,造成测试效率低。
发明内容
本申请实施例提供一种测试脚本的动态生成方法及相关装置,有利于提高测试效率。
本申请实施例的第一方面提供了一种测试脚本的动态生成方法,应用于服务器,所述方法包括:
获取待处理文件,所述待处理文件中包括待处理数据;
处理所述待处理数据,得到多个待替换变量;
根据所述多个待替换变量,生成中间文件;
获取Jmeter测试脚本中的多个预设函数模块;
根据所述多个预设函数模块,对所述中间文件中的目标数据进行语法分析,得到测试脚本文件。
本申请实施例第二方面提供了一种测试脚本的动态生成装置,所述装置包括获取单元、分配单元与存储单元,其中:
所述装置包括:获取单元、处理单元、生成单元和分析单元,其中,
所述获取单元,用于获取待处理文件,所述待处理文件中包括待处理数据;
所述处理单元,用于处理所述待处理数据,得到多个待替换变量;
所述生成单元,用于根据所述多个待替换变量,生成中间文件;
所述获取单元,还用于获取Jmeter测试脚本中的多个预设函数模块;
所述分析单元,用于根据所述多个预设函数模块,对所述中间文件中的目标数据进行语法分析,得到测试脚本文件。
本申请实施例的第三方面提供一种服务器,所述服务器包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行本申请实施例第一方面所述的方法。
本申请实施例的第四方面提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本申请实施例第一方面所描述的部分或全部步骤。
本申请实施例的第五方面提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第一方面所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
实施本申请实施例,至少具有如下有益效果:
通过本申请实施例,应用于服务器,可获取待处理文件,待处理文件中包括待处理数据,处理待处理数据,得到多个待替换变量,根据多个待替换变量,生成中间文件,获取Jmeter测试脚本中的多个预设函数模块,根据多个预设函数模块,对中间文件中的目标数据进行语法分析,得到测试脚本文件,如此,可基于Jmeter工具,通过预设函数模块完成语法分析,上述预设函数模块可动态处理,因此,可动态生成测试脚本,提高了测试效率,有利于提高测试性能。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供了一种测试脚本的动态生成方法的流程示意图;
图2为本申请实施例提供了一种测试脚本的动态生成方法的流程示意图;
图3为本申请实施例提供了一种测试脚本的动态生成方法的流程示意图;
图4为本申请实施例提供了一种服务器的结构示意图;
图5为本申请实施例提供了一种测试脚本的动态生成装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本申请所描述的实施例可以与其它实施例相结合。
为了能够更好地理解本申请实施例,下面将对应用本申请实施例的方法进行介绍。
本申请实施例中提到的服务器可以包括但不限于后台服务器、组件服务器、云端服务器、数据分配系统服务器或数据分配软件服务器等,上述仅是举例,而非穷举,包含但不限于上述装置。
请参见图1,图1是本申请实施例提供的一种测试脚本的动态生成方法的流程示意图,应用于服务器,上述方法包括以下步骤:
101、获取待处理文件,所述待处理文件中包括待处理数据。
其中,上述待处理文件可为XML(Extensible Markup Language,可扩展标记语言)文件或者其他格式文件,例如,若需要测试一个财务类模板的功能是否正常,可根据财务模板生成一个财务类测试文件,以测试财务类模板中的收支等功能是否正常。上述待处理文件中可包括待处理数据,该待处理数据可包括以下至少一种:数字、字符串等等,在此不做限定;
此外,Apache JMeter是Apache组织开发的基于Java的压力测试工具,用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。当采用Jmeter内核进行软件测试时,需要在Jmeter中制定测试计划,在保存Jmeter测试计划之后,Jmeter软件会自动生产一个XML文件,该XML文件即为上述待处理文件。
102、处理所述待处理数据,得到多个待替换变量。
其中,上述待处理数据可包括多种数据类型,例如,变量数据和静态数据,上述静态数据可不做处理,该静态数据一般为定值,上述变量数据一般为环境变量,可随时进行替换处理,已得到想要的数据,因此,可对待处理数据进行处理,以得到多个待替换的变量。
在一种可能的示例中,上述步骤102,若待处理数据包括变量数据,处理所述待处理数据,得到多个待替换变量,可包括以下步骤:
21、获取预设变量格式集,所述预设变量格式集中包括多个预设变量格式;
22、依据所述预设变量格式集,扫描所述待处理数据,得到所述多个待替换变量,所述多个待替换变量均包括变量数据。
其中,上述预设变量格式集可为用户自行设置或者系统默认,该预设变量格式集中可存储多个预设变量格式,上述多个预设变量格式可预先设定,每一预设变量格式不同,每一预设变量格式可为用户自行设置或者系统默认,在此不作限定。
具体实现中,可根据预先设定多个预设变量格式,基于多个预设变量格式,读取并扫描上述待处理数据,以得到待处理数据中所有的需要被替换的待替换变量。
举例来说,上述预设变量格式可命名为`{{a}}`,其中,a可为字符串或者数字等形式展现,举例来说,若上述待处理文件为一个财务文件,则除去明确数值部分,也就是去除静态数据以后,其余所有部分均为变量数据,若均以`{{a}}`的变量格式展现,则可通过预设变量格式匹配到待替换变量。
103、根据所述多个待替换变量,生成中间文件。
其中,为了实现动态生成Jmeter测试脚本,需要提前将待替换数据变成系统中可识别的变量数据,并抽象成一个中间文件,该中间文件中除去必须明确的数值之外,其他具体的数据均使用上述多个预设变量格式进行替换,在前端开发中,将不变的静态数据部分与变化的变量数据分开,有益于后续的变量处理,上述中间文件可为xml文件。
在一种可能的示例中,上述步骤103,根据所述多个待替换变量,生成中间文件,可包括以下步骤:
31、根据所述多个待替换变量,从预设模板库中匹配得到多个预设变量;
32、将所述多个待替换变量替换为多个预设变量,得到所述中间文件。
其中,服务器中可预先设置预设模板库,该预设模板库可为用户自行设置或者系统默认,上述预设模板中可预存多个预设模板,可根据软件应用的类型将预设模板分为多个类型,该预设模板可包括以下至少一种:财务模板、自动化办公模板、购物测试、即时通信模板等等,在此不做限定。
具体地,可将上述多个待替换变量与预设模板库中每一预设模板进行对比,得到多个预设变量,并将上述多个待替换变量替换为上述多个预设变量,以得到变量替换以后的中间文件。
在一种可能的示例中,上述步骤31,根据所述多个待替换变量,从预设模板库中匹配得到多个预设变量,可包括以下步骤:
311、获取所述待处理文件对应的测试类型;
312、根据所述测试类型从所述预设模板库中匹配得到目标预设模板,所述预设模板中包含多个预设变量。
其中,上述测试类型可包括以下至少一项:财务测试、自动化办公测试、购物测试、即时通信测试等等,在此不作限定;每一测试类型可对应预设模板库中的一种预设模板,每一预设模板中可包括多个预设变量。
在一种可能的示例中,上述步骤32,将所述多个待替换变量替换为多个预设变量,得到所述中间文件,可包括如下步骤:
321、获取所述目标预设模板对应的预设正则表达式;
322、根据所述预设正则表达式对所述多个待替换变量和所述多个预设变量进行匹配,得到至少一个目标待替换变量和至少一个目标预设变量;
323、将所述至少一个目标待替换变量替换为所述至少一个目标预设变量,生成变量替换以后的所述中间文件。
其中,服务器中可预设多个预设正则表达式,可针对每一预设模板预设正则表达式,每一预设模板可对应一个正则表达式,每一预设模板中对应多个预设变量,该预设正则表达式体现了预设模板中多个预设变量与预设模板之间的映射关系,因此,可通过正则表达式,将预设模板中的多个预设变量与多个待替换变量进行匹配,得到目标待替换变量。
此外,可针对预设模板中的预设变量预设变量格式,该预设变量的命名格式可为`{{a}}`等等,在此不做限定。
举例来说,比如存在一个需要处理的财务文件(待处理文件),可获取预设财务模板文件,该财务文件的作用可用来计算收支,将财务文件(待处理文件)中需要计算的数据(变量)我们用{{a}}填入,当后台执行计算程序的时候,会读取并扫描财务文件(待处理文件),找到财务文件(待处理文件)与预设财务模板文件中预设变量相对应的待替换变量,然后会将正则匹配过的预设变量替换掉{{a}},并填入对应位置。
104、获取Jmeter测试脚本中的多个预设函数模块。
其中,上述预设函数模块可包括以下至少一种:environment模块、parser模块、lexer模块等等,在此不做限定,上述预设函数模块可为用户自行设置或者系统默认,上述每一种预设函数模块对应的功能作用可不同。
105、根据所述多个预设函数模块,对所述中间文件中的目标数据进行语法分析,得到测试脚本文件。
其中,上述目标数据中可包括目标静态数据和目标变量数据,语法分析主要是根据某种给定的形式文法对由单词序列(如英语单词序列)构成的输入文本进行分析并确定其语法结构的一种过程,上述语法分析一般可包括自底向上分析法和自顶向下分析法等等,在此不作限定;上述目标数据可为多个预设函数模块可识别的一种数据,例如,若最终生成的测试脚本文件需求为Python文件,则该目标数据可指Python能识别的数据。
可选地,在上述步骤103之前,在对所述中间文件中的目标数据进行语法分析,得到测试脚本文件之前,还可包括以下步骤:
对所述多个预设函数模块进行功能分类,得到第一预设函数模块、第二预设函数模块和第三预设函数模块,其中,所述第一预设模块用于数据分类,所述第二预设函数模块用于语法识别,所述第三预设函数模块用于生成测试脚本文件。
其中,上述多个预设函数模块中每一预设函数模块的功能作用不同,例如,lexer模块可用于生成token流,parser模块可用于语法分析等等,因此,可根据预设函数模块的功能作用类型对上述多个预设函数模块进行分类,得到第一预设函数模块、第二预设函数模块和第三预设函数模块,其中,第一预设模块可用于数据分类,以生成预设数据,该预设数据可由用户自行设置或者系统默认,第二预设函数模块可用于语法识别或者语法分析,第三预设函数模块用于生成测试脚本文件,也就是说,将语法树转换为测试脚本文件。
在一种可能的示例中,上述步骤105,根据所述多个预设函数模块,对所述中间文件中的目标数据进行语法分析,得到测试脚本文件,可包括如下步骤:
51、将所述中间文件中的目标数据输入所述第一预设函数模块中,通过所述第一预设函数模块将所述目标数据对应的多个目标变量数据转化为token流,所述token流中包括多个数据类型的目标变量数据;
52、将所述token流输入所述第二预设函数模块,根据所述第二预设函数模块对所述token流进行语法识别,生成目标语法树;
53、根据所述第三预设函数模块,将所述目标语法树进行代码转换,得到所述测试脚本文件。
其中,因为中间文件中可能存在有些语法相对复杂的情况,比如需要支持if/else、支持for循环等复杂的语法,则需要将中间文件中的数据转换为语法树,通过对语法树的解析从而可以达到执行if/else、for循环的目的。
另外,上述token流是一种基于语法树的一种数据结构,其主要是为了更好的分析具体的语法,提高语法分析的效率。
可以看出,本申请实施例所描述的测试脚本的动态生成方法,服务器可获取待处理文件,待处理文件中包括待处理数据,处理待处理数据,得到多个待替换变量,根据多个待替换变量,生成中间文件,获取Jmeter测试脚本中的多个预设函数模块,根据多个预设函数模块,对中间文件中的目标数据进行语法分析,得到测试脚本文件,如此,可基于Jmeter工具,通过预设函数模块完成语法分析,上述预设函数模块可动态处理,因此,可动态生成测试脚本,提高了测试效率,有利于提高测试性能。
与上述一致地,请参阅图2,图2是本申请实施例公开的一种测试脚本的动态生成方法的流程示例图,应用于服务器,该测试脚本的动态生成方法可包括如下步骤:
201、获取待处理文件,所述待处理文件中包括待处理数据。
202、获取预设变量格式集,所述预设变量格式集中包括多个预设变量格式。
203、依据所述预设变量格式集,扫描所述待处理数据,得到所述多个待替换变量,所述多个待替换变量均包括变量数据。
204、根据所述多个待替换变量,生成中间文件。
205、获取Jmeter测试脚本中的多个预设函数模块。
206、根据所述多个预设函数模块,对所述中间文件中的目标数据进行语法分析,得到测试脚本文件。
其中,上述步骤201-步骤206的具体描述可以参照上述图1所描述的测试脚本的动态生成方法的相应步骤,在此不再赘述。
可以看出,本申请实施例所描述的测试脚本的动态生成方法,服务器可获取待处理文件,待处理文件中包括待处理数据,获取预设变量格式集,预设变量格式集中包括多个预设变量格式,依据预设变量格式集,扫描待处理数据,得到多个待替换变量,多个待替换变量均包括变量数据,根据多个待替换变量,生成中间文件,获取Jmeter测试脚本中的多个预设函数模块,根据多个预设函数模块,对中间文件中的目标数据进行语法分析,得到测试脚本文件,如此,可随时根据预设变量格式,以找到符合要求的待替换变量,最终对待替换变量生成的中间文件进行语法分析,生成测试脚本文件,可实现动态生成测试脚本文件,有利于提高测试的性能。
与上述一致地,请参阅图3,图3是本申请实施例公开的一种测试脚本的动态生成方法的流程示例图,应用于服务器,该测试脚本的动态生成方法可包括如下步骤:
301、获取待处理文件,所述待处理文件中包括待处理数据。
302、处理所述待处理数据,得到多个待替换变量。
303、获取所述待处理文件对应的测试类型。
304、根据所述测试类型从所述预设模板库中匹配得到目标预设模板,所述预设模板中包含多个预设变量。
305、获取所述目标预设模板对应的预设正则表达式。
306、根据所述预设正则表达式对所述多个待替换变量和所述多个预设变量进行匹配,得到至少一个目标待替换变量和至少一个目标预设变量。
307、将所述至少一个目标待替换变量替换为所述至少一个目标预设变量,生成变量替换以后的所述中间文件。
308、获取Jmeter测试脚本中的多个预设函数模块;
309、根据所述多个预设函数模块,对所述中间文件中的目标数据进行语法分析,得到测试脚本文件。
其中,上述步骤301-步骤309的具体描述可以参照上述图1所描述的测试脚本的动态生成方法的相应步骤,在此不再赘述。
可以看出,本申请实施例所描述的测试脚本的动态生成方法,服务器可获取待处理文件,待处理文件中包括待处理数据,处理待处理数据,得到多个待替换变量,获取待处理文件对应的测试类型,根据测试类型从预设模板库中匹配得到目标预设模板,预设模板中包含多个预设变量,获取目标预设模板对应的预设正则表达式,根据预设正则表达式对多个待替换变量和多个预设变量进行匹配,得到至少一个目标待替换变量和至少一个目标预设变量,将至少一个目标待替换变量替换为至少一个目标预设变量,生成变量替换以后的中间文件,获取Jmeter测试脚本中的多个预设函数模块,根据多个预设函数模块,对中间文件中的目标数据进行语法分析,得到测试脚本文件,如此,可将静态数据部分与变化的变量数据分开,有益于生成中间文件,该中间文件中的目标数据为Jmeter测试脚本中的多个预设函数模块可识别的文件,有利于提高测试的效率。
与上述一致地,请参阅图4,图4为本申请实施例提供的一种服务器的结构示意图,如图4所示,包括处理器、通信接口、存储器以及一个或多个程序,所述处理器、通信接口和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,上述一个或多个程序程序包括用于执行以下步骤的指令:
获取待处理文件,所述待处理文件中包括待处理数据;
处理所述待处理数据,得到多个待替换变量;
根据所述多个待替换变量,生成中间文件;
获取Jmeter测试脚本中的多个预设函数模块;
根据所述多个预设函数模块,对所述中间文件中的目标数据进行语法分析,得到测试脚本文件。
可以看出,本申请实施例中所描述的服务器,可获取待处理文件,待处理文件中包括待处理数据,处理待处理数据,得到多个待替换变量,根据多个待替换变量,生成中间文件,获取Jmeter测试脚本中的多个预设函数模块,根据多个预设函数模块,对中间文件中的目标数据进行语法分析,得到测试脚本文件,如此,可基于Jmeter工具,通过预设函数模块完成语法分析,上述预设函数模块可动态处理,因此,可动态生成测试脚本,提高了测试效率,有利于提高测试性能。
在一种可能的示例中,若所述待处理数据包括变量数据,在所述处理所述待处理数据,得到多个待替换变量方面,所述程序用于执行以下步骤的指令:
获取预设变量格式集,所述预设变量格式集中包括多个预设变量格式;
依据所述预设变量格式集,扫描所述待处理数据,得到所述多个待替换变量,所述多个待替换变量均包括变量数据。
在一种可能的示例中,在根据所述多个待替换变量,生成中间文件方面,所述程序用于执行以下步骤的指令:
根据所述多个待替换变量,从预设模板库中匹配得到多个预设变量;
将所述多个待替换变量替换为多个预设变量,得到所述中间文件。
在一种可能的示例中,在根据所述多个待替换变量,从预设模板库中匹配得到多个预设变量方面,所述程序用于执行以下步骤的指令:
获取所述待处理文件对应的测试类型;
根据所述测试类型从所述预设模板库中匹配得到目标预设模板,所述预设模板中包含多个预设变量。
在一种可能的示例中,在将所述多个待替换变量替换为多个预设变量,得到所述中间文件方面,所述程序用于执行以下步骤的指令:
获取所述目标预设模板对应的预设正则表达式;
根据所述预设正则表达式对所述多个待替换变量和所述多个预设变量进行匹配,得到至少一个目标待替换变量和至少一个目标预设变量;
将所述至少一个目标待替换变量替换为所述至少一个目标预设变量,生成变量替换以后的所述中间文件。
在一种可能的示例中,在对所述中间文件中的目标数据进行语法分析,得到测试脚本文件之前,所述程序用于执行以下步骤的指令:
对所述多个预设函数模块进行功能分类,得到第一预设函数模块、第二预设函数模块和第三预设函数模块,其中,所述第一预设模块用于数据分类,所述第二预设函数模块用于语法识别,所述第三预设函数模块用于生成测试脚本文件。
在一种可能的示例中,在根据所述多个预设函数模块,对所述中间文件中的目标数据进行语法分析,得到测试脚本文件方面,所述程序用于执行以下步骤的指令:
将所述中间文件中的目标数据输入所述第一预设函数模块中,通过所述第一预设函数模块将所述目标数据对应的多个目标变量数据转化为token流,所述token流中包括多个数据类型的目标变量数据;
将所述token流输入所述第二预设函数模块,根据所述第二预设函数模块对所述token流进行语法识别,生成目标语法树;
根据所述第三预设函数模块,将所述目标语法树进行代码转换,得到所述测试脚本文件。
上述主要从方法侧执行过程的角度对本申请实施例的方案进行了介绍。可以理解的是,服务器为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所提供的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对服务器进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
与上述一致地,请参阅图5,图5是本申请实施例公开的一种测试脚本的动态生成装置的结构示意图,应用于服务器,该装置包括:获取单元501、处理单元502、生成单元503和分析单元504,其中:
可以看出,本申请实施例中所描述的测试脚本的动态生成装置,应用于服务器,该装置可获取待处理文件,待处理文件中包括待处理数据,处理待处理数据,得到多个待替换变量,根据多个待替换变量,生成中间文件,获取Jmeter测试脚本中的多个预设函数模块,根据多个预设函数模块,对中间文件中的目标数据进行语法分析,得到测试脚本文件,如此,可基于Jmeter工具,通过预设函数模块完成语法分析,上述预设函数模块可动态处理,因此,可动态生成测试脚本,提高了测试效率,有利于提高测试性能。
在一个可能的示例中,若所述待处理数据包括变量数据,在所述处理所述待处理数据,得到多个待替换变量方面,所述处理单元502具体用于:
获取预设变量格式集,所述预设变量格式集中包括多个预设变量格式;
依据所述预设变量格式集,扫描所述待处理数据,得到所述多个待替换变量,所述多个待替换变量均包括变量数据。
在一个可能的示例中,在根据所述多个待替换变量,生成中间文件方面,所述生成单元503具体用于:
根据所述多个待替换变量,从预设模板库中匹配得到多个预设变量;
将所述多个待替换变量替换为多个预设变量,得到所述中间文件。
在一个可能的示例中,在根据所述多个待替换变量,从预设模板库中匹配得到多个预设变量方面,所述生成单元503具体用于:
获取所述待处理文件对应的测试类型;
根据所述测试类型从所述预设模板库中匹配得到目标预设模板,所述预设模板中包含多个预设变量。
在一个可能的示例中,在所述将所述多个待替换变量替换为多个预设变量,得到所述中间文件方面,所述生成单元503具体用于:
获取所述目标预设模板对应的预设正则表达式;
根据所述预设正则表达式对所述多个待替换变量和所述多个预设变量进行匹配,得到至少一个目标待替换变量和至少一个目标预设变量;
将所述至少一个目标待替换变量替换为所述至少一个目标预设变量,生成变量替换以后的所述中间文件。
在一个可能的示例中,在根据所述多个预设函数模块,对所述中间文件中的目标数据进行语法分析,得到测试脚本文件方面,所分析单元504具体用于:
将所述中间文件中的目标数据输入所述第一预设函数模块中,通过所述第一预设函数模块将所述目标数据对应的多个目标变量数据转化为token流,所述token流中包括多个数据类型的目标变量数据;
将所述token流输入所述第二预设函数模块,根据所述第二预设函数模块对所述token流进行语法识别,生成目标语法树;
根据所述第三预设函数模块,将所述目标语法树进行代码转换,得到所述测试脚本文件。
本申请实施例还提供一种计算机可读存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任何一种测试脚本的动态生成方法的部分或全部步骤。
本申请实施例还提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使计算机执行如上述方法实施例中记载的任何一种测试脚本的动态生成方法的部分或全部步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、ROM、RAM、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种测试脚本的动态生成方法,其特征在于,应用于服务器,所述方法包括:
获取待处理文件,所述待处理文件中包括待处理数据;
处理所述待处理数据,得到多个待替换变量;
根据所述多个待替换变量,生成中间文件;
获取Jmeter测试脚本中的多个预设函数模块;
根据所述多个预设函数模块,对所述中间文件中的目标数据进行语法分析,得到测试脚本文件。
2.根据权利要求1所述的方法,其特征在于,若所述待处理数据包括变量数据,所述处理所述待处理数据,得到多个待替换变量,包括:
获取预设变量格式集,所述预设变量格式集中包括多个预设变量格式;
依据所述预设变量格式集,扫描所述待处理数据,得到所述多个待替换变量,所述多个待替换变量均包括变量数据。
3.根据权利要求1所述的方法,其特征在于,所述根据所述多个待替换变量,生成中间文件,包括:
根据所述多个待替换变量,从预设模板库中匹配得到多个预设变量;
将所述多个待替换变量替换为多个预设变量,得到所述中间文件。
4.根据权利要求3所述的方法,其特征在于,所述根据所述多个待替换变量,从预设模板库中匹配得到多个预设变量,包括:
获取所述待处理文件对应的测试类型;
根据所述测试类型从所述预设模板库中匹配得到目标预设模板,所述预设模板中包含多个预设变量。
5.根据权利要求4所述的方法,其特征在于,所述将所述多个待替换变量替换为多个预设变量,得到所述中间文件,包括:
获取所述目标预设模板对应的预设正则表达式;
根据所述预设正则表达式对所述多个待替换变量和所述多个预设变量进行匹配,得到至少一个目标待替换变量和至少一个目标预设变量;
将所述至少一个目标待替换变量替换为所述至少一个目标预设变量,生成变量替换以后的所述中间文件。
6.根据权利要求1所述的方法,其特征在于,在对所述中间文件中的目标数据进行语法分析,得到测试脚本文件之前,所述方法还包括:
对所述多个预设函数模块进行功能分类,得到第一预设函数模块、第二预设函数模块和第三预设函数模块,其中,所述第一预设模块用于数据分类,所述第二预设函数模块用于语法识别,所述第三预设函数模块用于生成测试脚本文件。
7.根据权利要求6所述的方法,其特征在于,所述根据所述多个预设函数模块,对所述中间文件中的目标数据进行语法分析,得到测试脚本文件,包括:
将所述中间文件中的目标数据输入所述第一预设函数模块中,通过所述第一预设函数模块将所述目标数据对应的多个目标变量数据转化为token流,所述token流中包括多个数据类型的目标变量数据;
将所述token流输入所述第二预设函数模块,根据所述第二预设函数模块对所述token流进行语法识别,生成目标语法树;
根据所述第三预设函数模块,将所述目标语法树进行代码转换,得到所述测试脚本文件。
8.一种测试脚本的动态生成装置,其特征在于,应用于服务器,所述装置包括:获取单元、处理单元、生成单元和分析单元,其中,
所述获取单元,用于获取待处理文件,所述待处理文件中包括待处理数据;
所述处理单元,用于处理所述待处理数据,得到多个待替换变量;
所述生成单元,用于根据所述多个待替换变量,生成中间文件;
所述获取单元,还用于获取Jmeter测试脚本中的多个预设函数模块;
所述分析单元,用于根据所述多个预设函数模块,对所述中间文件中的目标数据进行语法分析,得到测试脚本文件。
9.一种服务器,其特征在于,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010190495.4A CN111475403A (zh) | 2020-03-18 | 2020-03-18 | 测试脚本的动态生成方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010190495.4A CN111475403A (zh) | 2020-03-18 | 2020-03-18 | 测试脚本的动态生成方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111475403A true CN111475403A (zh) | 2020-07-31 |
Family
ID=71748001
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010190495.4A Pending CN111475403A (zh) | 2020-03-18 | 2020-03-18 | 测试脚本的动态生成方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111475403A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114025027A (zh) * | 2021-11-02 | 2022-02-08 | 浙江三维万易联科技有限公司 | 数据传输脚本的运行方法、装置、存储介质和电子装置 |
-
2020
- 2020-03-18 CN CN202010190495.4A patent/CN111475403A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114025027A (zh) * | 2021-11-02 | 2022-02-08 | 浙江三维万易联科技有限公司 | 数据传输脚本的运行方法、装置、存储介质和电子装置 |
CN114025027B (zh) * | 2021-11-02 | 2023-10-03 | 三维通信股份有限公司 | 数据传输脚本的运行方法、装置、存储介质和电子装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106919509B (zh) | 一种客户端生成方法、装置及电子设备 | |
US10108535B2 (en) | Web application test script generation to test software functionality | |
CN109857641A (zh) | 对程序源文件进行缺陷检测的方法及装置 | |
CN111126006A (zh) | 导出带MathType公式的Word文档方法、装置、电子设备及存储介质 | |
CN110941427A (zh) | 代码生成方法及代码生成器 | |
CN111209736A (zh) | 文本文件解析方法、装置、计算机设备及存储介质 | |
CN114443041A (zh) | 抽象语法树的解析方法及计算机程序产品 | |
CN113657088A (zh) | 接口文档解析方法、装置、电子设备以及存储介质 | |
CN111475403A (zh) | 测试脚本的动态生成方法及相关装置 | |
CN113051895A (zh) | 语音识别的方法、装置、电子设备、介质和程序产品 | |
CN108427580A (zh) | 配置对命名重复的检测方法、存储介质和智能设备 | |
CN112433752B (zh) | 页面解析方法、装置、介质及电子设备 | |
CN114816246A (zh) | 一种用于Proto文件的处理方法及装置 | |
CN111310434B (zh) | 文本生成方法和装置、电子设备和存储介质 | |
CN110764783B (zh) | 一种生成信息采集工具的方法及装置、设备、存储介质 | |
CN114528218A (zh) | 测试程序的生成方法、装置、存储介质以及电子设备 | |
CN110502483B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN112306493A (zh) | 热修复补丁生成方法、装置、存储介质及计算机设备 | |
CN117270838B (zh) | 一种通用公式脚本的生成方法、装置、设备及介质 | |
CN112162738B (zh) | 数据转化方法、装置、终端设备及存储介质 | |
CN114743012B (zh) | 一种文本识别方法及装置 | |
CN111736805B (zh) | 一种处理Excel表格的方法和装置 | |
CN115858011A (zh) | 一种服务生成方法、装置、电子设备及存储介质 | |
CN116320060A (zh) | 一种报文转换方法、装置、电子设备及存储介质 | |
CN117111933A (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 |