CN110795142A - 一种配置文件的生成方法及装置 - Google Patents
一种配置文件的生成方法及装置 Download PDFInfo
- Publication number
- CN110795142A CN110795142A CN201910992969.4A CN201910992969A CN110795142A CN 110795142 A CN110795142 A CN 110795142A CN 201910992969 A CN201910992969 A CN 201910992969A CN 110795142 A CN110795142 A CN 110795142A
- Authority
- CN
- China
- Prior art keywords
- configuration file
- test
- initial configuration
- thread
- 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.)
- Granted
Links
Images
Classifications
-
- 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
-
- 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/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
-
- 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/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例提供了一种配置文件的生成方法及装置,涉及数据处理技术领域,其中方法包括:测试台启动,加载待检测的DSL程序;检测DSL程序是否满足预设的形式检测规则,若满足形式检测规则,则基于DSL程序生成初始配置文件;采用测试用例对初始配置文件进行测试操作;若测试结果为通过,则将初始配置文件确定为目标配置文件;若测试结果为未通过,则根据测试结果修正初始配置文件,并基于修正后的初始配置文件进行测试操作。通过本申请实施例,不仅实现了配置文件的自动生成,而且无需人工排错,极大的提升了配置文件的生成效率以及配置文件的准确性。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种配置文件的生成方法及装置。
背景技术
SaltStack管理工具允许管理员对多个操作系统创建一个一致的管理系统,并且可运行远程命令,因此不论是中小规模的服务器管理还是大规模的服务器管理,SaltStack都是不可缺少的重要管理利器。SaltStack的通常使用方式为首先编写用于描述所需执行流程的配置文件,即yaml文件,然后执行配置文件完成对应的管理操作。然而,随着所需管理的节点不断增多,以及业务的复杂度不断增加,无论是编写配置文件的数量还是人工排查配置文件是否存在异常的难度都随之增加,因此很容易出现各种各样大大小小的错误。
发明内容
本申请实施例的目的是提供一种配置文件的生成方法及装置,以实现配置文件的自动生成,且无需人工排错,极大的提升了配置文件的生成效率以及配置文件的准确性。
第一方面,本申请实施例提供了一种配置文件的生成方法,测试台启动后,执行以下操作:
加载待检测的DSL程序;
检测所述DSL程序是否满足预设的形式检测规则,若满足所述形式检测规则,则基于所述DSL程序生成初始配置文件;
采用测试用例对所述初始配置文件进行测试操作;
若测试结果为通过,则将所述初始配置文件确定为目标配置文件;
若测试结果为未通过,则根据所述测试结果修正所述初始配置文件,并基于修正后的所述初始配置文件进行所述测试操作。
第二方面,本申请实施例提供了一种配置文件的生成装置,包括:
加载模块,用于加载待检测的DSL程序;
检测模块,用于检测所述DSL程序是否满足预设的形式检测规则;
生成模块,用于若所述DSL程序满足所述形式检测规则,则基于所述DSL程序生成初始配置文件;
测试模块,用于采用测试用例对所述初始配置文件进行测试操作;以及,
若测试结果为通过,则将所述初始配置文件确定为目标配置文件;
若测试结果为未通过,则根据所述测试结果修正所述初始配置文件,并基于修正后的所述初始配置文件进行所述测试操作。
第三方面,本申请实施例提供了一种配置文件的生成设备,包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述计算机可执行指令在被执行时使所述处理器实现上述的配置文件的生成方法的步骤。
第四方面,本申请实施例提供了一种存储介质,用于存储计算机可执行指令,所述计算机可执行指令在被执行时实现上述的配置文件的生成方法的步骤。
本申请实施例所提供的配置文件的生成方法及装置,通过预先编写用于描述实际应用场景的DSL程序,并通过测试台基于该DSL程序自动生成初始配置文件以及自动对所生成的初始配置文件进行异常检测,并且在检测未通过时,能够基于检测结果对初始配置文件进行修正,直至得到目标配置文件;可见,其不仅实现了配置文件的自动生成,而且无需人工排错,极大的提升了配置文件的生成效率以及配置文件的准确性。
附图说明
为了更清楚地说明本申请一个或多个实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种配置文件的生成方法的第一种场景示意图;
图2为本申请实施例提供的一种配置文件的生成方法的第一种流程示意图;
图3为本申请实施例提供的一种配置文件的生成方法的第二种流程示意图;
图4为本申请实施例提供的一种配置文件的生成方法的第三种流程示意图;
图5为本申请实施例提供的一种配置文件的生成方法的第四种流程示意图;
图6为本申请实施例提供的一种配置文件的生成方法的第二种场景示意图;
图7为本申请实施例提供的一种配置文件的生成装置的模块组成示意图;
图8为本申请实施例提供的一种配置文件的生成设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请实施例中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请的保护范围。
本申请实施例提供了一种配置文件的生成方法及装置,通过预先编写用于描述实际应用场景的DSL程序,并通过测试台基于该DSL程序自动生成初始配置文件以及自动对所生成的初始配置文件进行异常检测,不仅实现了配置文件的自动生成,而且无需人工排错,极大的提升了配置文件的生成效率以及配置文件的准确性。
图1为本申请实施例提供的一种配置文件的生成方法的场景示意图,如图1所示,将预先编写的DSL程序作为待检测的DSL程序,在测试台启动后,加载待检测的DSL程序,并检测所加载的DSL程序是否满足预设的形式检测规则,并在满足预设的形式检测规则时,基于DSL程序生成初始配置文件;以及,加载预先编写的测试用例,采用测试用例对生成的初始配置文件进行测试操作;若测试结果为通过,则将初始配置文件确定为目标配置文件;若测试结果为未通过,则根据测试结果修正初始配置文件,并采用测试用例对修正后的初始配置文件进行测试操作,直至得到目标配置文件。由此,不仅实现了配置文件的自动生成,而且无需人工排错,极大的提升了配置文件的生成效率以及配置文件的准确性。
基于上述应用场景架构,本申请实施例提供了一种配置文件的生成方法,图2为本申请实施例提供的一种配置文件的生成方法的流程示意图,图2中的方法能够由图1中的测试台执行,如图2所示,测试台启动后,执行以下步骤:
步骤S102,加载待检测的DSL程序;
考虑到SaltStack是执行配置文件完成对应的管理操作,为了使配置文件所描述的执行流程与实际应用场景相匹配,以及考虑到DSL语言编码简洁、表达力丰富,本申请实施例中,由开发人员预先编写用于描述实际应用场景的DSL程序,以使测试台基于该DSL程序自动生成匹配的配置文件。以在目标机器创建一个用户为例,编写的DSL程序示例如下:
上述DSL程序表示在目标机器www.hostname.xxx.com上创建一个用户,所创建的用户的用户名为zhangsan,用户id为1024,工作目录为/home/zhangsan,用户所需的登录公钥为key,用户所在的附加组为group;进一步的,上述DSL程序中的iter为迭代器,表示迭代次数,即在www.hostname001.xxx.com和www.hostname002.xxx.com两台目标机器上创建该用户。
步骤S104,检测DSL程序是否满足预设的形式检测规则,若满足预设的形式检测规则,则基于DSL程序生成初始配置文件;
考虑到开发人员在编写DSL程序时,可能因为失误而使DSL程序中存在语法错误和/或格式错误,为了避免因该语法错误和/或格式错误导致的测试台不能正常解析DSL程序,进而无法生成准确的配置文件,本申请实施例中,测试台首先根据预设的形式检测规则对所加载的DSL程序中的语法和/或格式进行检测,具体的,步骤S104中检测DSL程序是否满足预设的形式检测规则,包括:
检测DSL程序的格式与预设的形式检测规则中的格式是否一致;和/或,
检测DSL程序中的语法与预设的形式检测规则中的语法是否一致。
进一步的,若检测未通过,则展示错误信息,以对测试台的管理员进行提示;例如,若上述示例的在目标机器中创建用户的DSL程序为如下形式:
对其检测可知语法与预设的形式检测规则中的语法不一致,则展示错误信息error:hostname not defined,以提示管理员未定义目标机器。
由此,通过对DSL程序中的语法和/或格式进行检测,有效的避免了因DSL程序中的语法错误和/或格式错误而造成的配置文件错误。
步骤S106,采用测试用例对初始配置文件进行测试操作,若测试结果为通过,则将初始配置文件确定为目标配置文件;若测试结果为未通过,则执行步骤S108;
步骤S108,根据测试结果修正初始配置文件,并基于修正后的初始配置文件进行测试操作。
本申请实施例中,通过预先编写用于描述实际应用场景的DSL程序,并通过测试台基于该DSL程序自动生成初始配置文件以及自动对所生成的初始配置文件进行异常检测,同时在检测未通过时,能够基于检测结果对初始配置文件进行修正,直至得到目标配置文件;可见,其不仅实现了配置文件的自动生成,而且无需人工排错,极大的提升了配置文件的生成效率以及配置文件的准确性。
考虑到测试台所能运行的是0和1形式的机器语音,因此要基于DSL程序生成配置文件,首先需要对DSL程序进行转换;基于此,本申请一个或多个实施例提供了另一种配置文件的生成方法,图3为本申请一个或多个实施例提供的另一种配置文件的生成方法的流程示意图,如图3所示,测试台启动后,执行以下步骤:
步骤S202,加载待检测的DSL程序;
步骤S204,检测所述DSL程序是否满足预设的形式检测规则;
其中,步骤S202和步骤S204的具体实现过程可参见前述相关描述,重复之处,这里不再赘述。
步骤S206,若满足预设的形式检测规则,则从DSL程序中提取预设字段;
其中,预设字段可以在实际应用中根据需要自行设定,如上述示例的DSL程序中预设字段包括user、uid、home等字段,以及各字段的值等。
步骤S208,根据提取的预设字段生成语法树;
具体地,将提取的各字段分别作为语法树的各节点的左枝,将各字段的值作为对应节点的右枝,并根据各字段之间的关联关系对各节点进行连接得到语法树。
步骤S210,分析生成的语法树,并将DSL程序转换为机器可识别语言;
具体的,采集递归下降法分析生成的语法树,确定各字段之间的关系,并将对应的DSL程序转换为0和1形式的机器可识别语言。
步骤S212,运行机器可识别语言,得到初始配置文件。
以前述示例的在目标机器中创建用户的DSL程序为例,得到的初始配置文件示例如下:
上述初始配置文件描述了在目标机器上创建用户所需的必要参数和过程,如file.directory表明需要给用户创建家目录,家目录的属性由name、user、grouop等属性控制等。
通过生成DSL程序的语法树,并基于语法树对DSL程序进行转换,极大的确保了逻辑的准确性,使得即使是复杂的逻辑,也能自动生成高准确性的、大量的初始配置文件。
步骤S214,采用测试用例对初始配置文件进行测试操作,若测试结果为通过,则将初始配置文件确定为目标配置文件;若测试结果为未通过,则执行步骤S216;
步骤S216,根据测试结果修正初始配置文件,并基于修正后的初始配置文件进行测试操作。
本申请实施例中,通过预先编写用于描述实际应用场景的DSL程序,并通过测试台基于该DSL程序自动生成语法树,基于该语法树对DSL程序进行转换后自动生成初始配置文件,以及自动对所生成的初始配置文件进行异常检测,同时在检测未通过时,能够基于检测结果对初始配置文件进行修正,直至得到目标配置文件;可见,通过本申请实施例,在确保了逻辑的准确性的基础上,不仅实现了配置文件的自动生成,而且无需人工排错,极大的提升了配置文件的生成效率以及配置文件的准确性。
为了进一步确保初始配置文件的准确无误,开发人员还预先编写测试用例,以使测试台基于该测试用例自动对生成的初始配置文件进行异常检测;其中,测试用例包括测试程序和期望结果。而为了提升测试效率,本申请一个或多个实施例中还提供一种配置文件的生成方法,该方法中测试台通过启动第一线程和第二线程实现对初始配置文件的测试。具体的,如图4所示,测试台启动后执行以下步骤:
步骤S302,加载待检测的DSL程序;
步骤S304,检测DSL程序是否满足预设的形式检测规则,若满足形式检测规则,则基于DSL程序生成初始配置文件;
其中,步骤S302和步骤S304的具体实现过程可参见前述相关描述,重复之处,这里不再赘述。
步骤S306,启动第一线程和第二线程;
步骤S308,通过第一线程加载初始配置文件;
步骤S310,通过第二线程加载并运行测试用例中的测试程序,得到运行结果;
以对上述示例的初始配置文件进行测试为例,测试用例的示例如下:
该测试用例表示测试用例的标题为user create test,其中,测试用例的标题可以由用户自行定义,Test部分为将要测试的DSL代码,该DSL代码表示要在www.hostname001.xxx.com和www.hostname002.xxx.com目标机器中分别创建一个名为zhangsan的用户,该用户的uid为1024,且属于manager组;expect部分为测试完成后的期望结果。
步骤S312,将运行结果与测试用例中的期望结果进行匹配,若匹配成功,则将初始配置文件确定为目标配置文件;若匹配失败,则执行步骤S314;
具体的,若匹配成功,则确定测试结果为测试通过,将初始配置文件确定为目标配置文件;若匹配失败,则确定测试结果为测试未通过,执行步骤S314;
步骤S314,根据匹配结果修正初始配置文件,并基于修正后的初始配置文件进行测试操作。
具体的,根据匹配结果定位异常的初始配置文件,对定位到的初始配置文件进行修正,并继续执行步骤S308,通过第一线程加载修正后的初始配置文件,以对修正后的初始配置文件继续执行测试操作,如此直至测试结果为测试通过,即得到目标测试文件。
进一步的,为了使管理员知晓测试结果,步骤S312之后还包括:展示测试结果;以及,当存在测试未通过的测试结果时,若在预设时长内接收到来自管理员的重新测试指令,则执行步骤S314;或者,当存在测试未通过的测试结果时,若在到达预设时长时未接收到来自管理员的停止测试指令,则执行步骤S314;
具体的,当管理员在测试台前等待查看测试结果时,若存在测试未通过的测试结果,管理员可以操作测试台,向测试台发送重新测试指令,以使测试台对相应的初始配置文件进行修正,即执行步骤S314;管理员还可以操作测试台,向测试台发送停止测试指令,以自行查阅相应的初始配置文件,进行人工修正;管理员还可以无需操作测试台,当测试台确定到达预设时长时未接收到来自管理员的停止测试指令,则自动执行步骤S314;由此实现灵活的修正操作。其中,预设时长在实际应用中可以根据需要执行设定。
以测试结果为测试通过为例,测试台所展示的测试结果示例如下:
由该测试结果可以看出,本次测试分别在www.hostname001.xxx.com和www.hostname002.xxx.com两台目标机器中创建了用户名为zhangsan的用户;从字段pass的值为2,fail的值为0可以看出测试全部通过;进一步的,如果测试结果为测试失败,则会显示如create failed等的测试失败信息。
本申请实施例中,通过预先编写用于描述实际应用场景的DSL程序,并通过测试台基于该DSL程序自动生成初始配置文件,以及自动启动第一线程和第二线程对所生成的初始配置文件进行异常检测,同时在检测未通过时,能够基于检测结果对初始配置文件进行修正,直至得到目标配置文件;可见,通过本申请实施例,不仅实现了配置文件的自动生成,而且无需人工排错,极大的提升了配置文件的生成效率、检测效率以及配置文件的准确性。
进一步的,考虑到初始配置文件的数量通常较大,为进一步提升测试速率,本申请一个或多个实施例中还提供一种配置文件的生成方法,该方法中与每个初始配置文件对应,启动对应的第二线程,以进行同步测试。具体的,如图5所示,测试台启动后执行以下步骤:
步骤S402,加载待检测的DSL程序;
步骤S404,检测DSL程序是否满足预设的形式检测规则,若满足形式检测规则,则基于DSL程序生成初始配置文件;
其中,步骤S402和步骤S404的具体实现过程可参见前述相关描述,重复之处,这里不再赘述。
步骤S406,确定初始配置文件的总数量;
具体的,统计生成的初始配置文件的总数量。
步骤S408,启动第一线程和确定的总数量的第二线程;
步骤S410,通过第一线程加载初始配置文件;
步骤S412,通过每个第二线程加载并运行对应的初始配置文件所对应的测试程序,得到对应的运行结果;
通过第一线程和各个第二线程对初始配置文件加载以及进行测试的示意图如图6所示。
由此,通过启动与每个初始配置文件对应的第二线程,对各个初始配置文件进行自动的同步测试,极大的提升了测试效率;同时该过程中,无需人为参与,解决了现有的人为排错难道大的问题。
步骤S414,将运行结果与测试用例中的期望结果进行匹配,若匹配成功,则将初始配置文件确定为目标配置文件;若匹配失败,则执行步骤S416;
具体的,若匹配成功,则确定测试结果为测试通过,将初始配置文件确定为目标配置文件;若匹配失败,则确定测试结果为测试未通过,执行步骤S416;
步骤S416,根据匹配结果修正初始配置文件,并基于修正后的初始配置文件进行测试操作。
其中,步骤S414和步骤S416的具体实现过程可参见前述相关描述,重复之处,这里不再赘述。
进一步的,管理员还可以通过ps-ef|grep salt命令查看各线程的运行状态,对应的方法还包括:
步骤C2,接收线程状态查询请求;
步骤C4,获取第一线程和第二线程的运行状态信息;
步骤C6,展示获取的运行状态信息。
其中,运行状态信息包括对应线程的线程名称、线程权限等信息;将第一线程的线程名称记为salt-master,将第二线程的线程名称记为salt-minion,展示的部分运行状态信息示例如下:
root 5461 5441 0 2018?00:00:02/usr/bin/python/usr/bin/salt-master
root 25284 25278 0 2月15?03:43:06/usr/bin/python/usr/bin/salt-minion
该运行状态信息表示salt-master线程和salt-minion线程分别以root权限处于运行状态。
本申请实施例中,通过预先编写用于描述实际应用场景的DSL程序,并通过测试台基于该DSL程序自动生成初始配置文件,以及自动启动第一线程和与各个初始配置文件对应的第二线程,以同步的对各个初始配置文件进行异常检测,同时在检测未通过时,能够基于检测结果对初始配置文件进行修正,直至得到目标配置文件;可见,通过本申请实施例,不仅实现了配置文件的自动生成,而且无需人工排错,极大的提升了配置文件的生成效率、检测效率以及配置文件的准确性。
对应上述图2至图5描述的配置文件的生成方法,基于相同的技术构思,本申请实施例还提供一种配置文件的生成装置;图7为本申请实施例提供的一种配置文件的生成装置的模块组成示意图,该装置用于执行图2至图5描述的配置文件的生成方法,如图7所示,该装置包括:
加载模块501,用于加载待检测的DSL程序;
检测模块502,用于检测所述DSL程序是否满足预设的形式检测规则;
生成模块503,用于若所述DSL程序满足所述预设的形式检测规则,则基于所述DSL程序生成初始配置文件;
测试模块504,用于采用测试用例对所述初始配置文件进行测试操作;以及,
若测试结果为通过,则将所述初始配置文件确定为目标配置文件;
若测试结果为未通过,则根据所述测试结果修正所述初始配置文件,并基于修正后的所述初始配置文件进行所述测试操作。
本申请实施例中,基于预先编写的用于描述实际应用场景的DSL程序,自动生成初始配置文件以及自动对所生成的初始配置文件进行异常检测,并且在检测未通过时,能够基于检测结果对初始配置文件进行修正,直至得到目标配置文件;可见,通过本申请实施例,不仅实现了配置文件的自动生成,而且无需人工排错,极大的提升了配置文件的生成效率以及配置文件的准确性。
可选地,所述检测模块502,具体用于:
检测所述DSL程序的格式与预设的形式检测规则中的格式是否一致;和/或,
检测所述DSL程序中的语法与预设的形式检测规则中的语法是否一致。
可选地,所述生成模块503具体用于:
从所述DSL程序中提取预设字段;
根据提取的所述预设字段生成语法树;
分析所述语法树,并将所述DSL程序转换为机器可识别语言;
运行所述机器可识别语言,得到初始配置文件。
可选地,所述测试用例包括测试程序和期望结果,所述测试模块504具体用于:
启动第一线程和第二线程;
通过所述第一线程加载所述初始配置文件;
通过所述第二线程加载并运行所述测试程序,得到运行结果;以及,
将所述运行结果与所述期望结果进行匹配;
若匹配成功,则确定测试结果为通过;
若匹配失败,则确定测试结果为未通过。
可选地,所述测试模块504进一步具体用于:
确定所述初始配置文件的总数量;
启动第一线程和所述总数量的第二线程;
所述通过所述第二线程加载并运行所述测试程序,得到运行结果,包括:
通过每个所述第二线程加载并运行对应的初始配置文件所对应的所述测试程序,得到对应的运行结果。
可选地,装置还包括:状态查询模块;
所述状态查询模块,用于接收线程状态查询请求;以及,
获取所述第一线程和所述第二线程的运行状态信息;
展示获取的所述运行状态信息。
本申请实施例所提供的配置文件的生成装置,基于预先编写的用于描述实际应用场景的DSL程序,自动生成初始配置文件以及自动对所生成的初始配置文件进行异常检测,同时在检测未通过时,能够基于检测结果对初始配置文件进行修正,直至得到目标配置文件;可见,通过本申请实施例,不仅实现了配置文件的自动生成,而且无需人工排错,极大的提升了配置文件的生成效率以及配置文件的准确性。
需要说明的是,本申请中关于配置文件的生成装置的实施例与本申请中关于配置文件的生成方法的实施例基于同一发明构思,因此该实施例的具体实施可以参见前述对应的配置文件的生成方法的实施,重复之处不再赘述。
进一步的,对应上述配置文件的生成方法,基于相同的技术构思,本申请实施例还提供一种配置文件的生成设备,该设备用于执行上述的配置文件的生成方法,图8为本申请实施例提供的配置文件的生成设备的结构示意图。
如图8所示,配置文件的生成设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器601和存储器602,存储器602中可以存储有一个或一个以上存储应用程序或数据。其中,存储器602可以是短暂存储或持久存储。存储在存储器602的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括配置文件的生成设备中的一系列计算机可执行指令。更进一步地,处理器601可以设置为与存储器602通信,在配置文件的生成设备上执行存储器602中的一系列计算机可执行指令。配置文件的生成设备还可以包括一个或一个以上电源603,一个或一个以上有线或无线网络接口604,一个或一个以上输入输出接口605,一个或一个以上键盘606等。
在一个具体的实施例中,配置文件的生成设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对配置文件的生成设备中的一系列计算机可执行指令,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行以下计算机可执行指令:
加载待检测的DSL程序;
检测所述DSL程序是否满足预设的形式检测规则,若满足所述形式检测规则,则基于所述DSL程序生成初始配置文件;
采用测试用例对所述初始配置文件进行测试操作;
若测试结果为通过,则将所述初始配置文件确定为目标配置文件;
若测试结果为未通过,则根据所述测试结果修正所述初始配置文件,并基于修正后的所述初始配置文件进行所述测试操作。
本申请实施例中,基于预先编写的用于描述实际应用场景的DSL程序,自动生成初始配置文件以及自动对所生成的初始配置文件进行异常检测,同时在检测未通过时,能够基于检测结果对初始配置文件进行修正,直至得到目标配置文件;可见,其不仅实现了配置文件的自动生成,而且无需人工排错,极大的提升了配置文件的生成效率以及配置文件的准确性。
可选地,计算机可执行指令在被执行时,所述检测所述DSL程序是否满足预设的形式检测规则,包括:
检测所述DSL程序的格式与预设的形式检测规则中的格式是否一致;和/或,
检测所述DSL程序中的语法与预设的形式检测规则中的语法是否一致。
可选地,计算机可执行指令在被执行时,所述基于所述DSL程序生成初始配置文件,包括:
从所述DSL程序中提取预设字段;
根据提取的所述预设字段生成语法树;
分析所述语法树,并将所述DSL程序转换为机器可识别语言;
运行所述机器可识别语言,得到初始配置文件。
可选地,计算机可执行指令在被执行时,所述测试用例包括测试程序和期望结果,所述采用测试用例对所述初始配置文件进行测试操作,包括:
启动第一线程和第二线程;
通过所述第一线程加载所述初始配置文件;
通过所述第二线程加载并运行所述测试程序,得到运行结果;以及,
将所述运行结果与所述期望结果进行匹配;
若匹配成功,则确定测试结果为通过;
若匹配失败,则确定测试结果为未通过。
可选地,计算机可执行指令在被执行时,所述启动第一线程和第二线程,包括:
确定所述初始配置文件的总数量;
启动第一线程和所述总数量的第二线程;
所述通过所述第二线程加载并运行所述测试程序,得到运行结果,包括:
通过每个所述第二线程加载并运行对应的初始配置文件所对应的所述测试程序,得到对应的运行结果。
可选地,计算机可执行指令在被执行时,还包括:
接收线程状态查询请求;
获取所述第一线程和所述第二线程的运行状态信息;
展示获取的所述运行状态信息。
本申请实施例所提供的配置文件的生成设备,基于预先编写的用于描述实际应用场景的DSL程序,自动生成初始配置文件以及自动对所生成的初始配置文件进行异常检测,并且在检测未通过时,能够基于检测结果对初始配置文件进行修正,直至得到目标配置文件;可见,其不仅实现了配置文件的自动生成,而且无需人工排错,极大的提升了配置文件的生成效率以及配置文件的准确性。
需要说明的是,本申请中关于配置文件的生成设备的实施例与本申请中关于配置文件的生成方法的实施例基于同一发明构思,因此该实施例的具体实施可以参见前述对应的配置文件的生成方法的实施,重复之处不再赘述。
进一步的,对应上述的配置文件的生成方法,基于相同的技术构思,本申请一个或多个实施例还提供了一种存储介质,用于存储计算机可执行指令,一个具体的实施例中,该存储介质可以为U盘、光盘、硬盘等,该存储介质存储的计算机可执行指令在被处理器执行时,能实现以下流程:
加载待检测的DSL程序;
检测所述DSL程序是否满足预设的形式检测规则,若满足所述形式检测规则,则基于所述DSL程序生成初始配置文件;
采用测试用例对所述初始配置文件进行测试操作;
若测试结果为通过,则将所述初始配置文件确定为目标配置文件;
若测试结果为未通过,则根据所述测试结果修正所述初始配置文件,并基于修正后的所述初始配置文件进行所述测试操作。
本申请实施例中,基于预先编写的用于描述实际应用场景的DSL程序,自动生成初始配置文件以及自动对所生成的初始配置文件进行异常检测,同时在检测未通过时,能够基于检测结果对初始配置文件进行修正,直至得到目标配置文件;可见,其不仅实现了配置文件的自动生成,而且无需人工排错,极大的提升了配置文件的生成效率以及配置文件的准确性。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述所述检测所述DSL程序是否满足预设的形式检测规则,包括:
检测所述DSL程序的格式与预设的形式检测规则中的格式是否一致;和/或,
检测所述DSL程序中的语法与预设的形式检测规则中的语法是否一致。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述基于所述DSL程序生成初始配置文件,包括:
从所述DSL程序中提取预设字段;
根据提取的所述预设字段生成语法树;
分析所述语法树,并将所述DSL程序转换为机器可识别语言;
运行所述机器可识别语言,得到初始配置文件。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述测试用例包括测试程序和期望结果,所述采用测试用例对所述初始配置文件进行测试操作,包括:
启动第一线程和第二线程;
通过所述第一线程加载所述初始配置文件;
通过所述第二线程加载并运行所述测试程序,得到运行结果;以及,
将所述运行结果与所述期望结果进行匹配;
若匹配成功,则确定测试结果为通过;
若匹配失败,则确定测试结果为未通过。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述启动第一线程和第二线程,包括:
确定所述初始配置文件的总数量;
启动第一线程和所述总数量的第二线程;
所述通过所述第二线程加载并运行所述测试程序,得到运行结果,包括:
通过每个所述第二线程加载并运行对应的初始配置文件所对应的所述测试程序,得到对应的运行结果。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,还包括:
接收线程状态查询请求;
获取所述第一线程和所述第二线程的运行状态信息;
展示获取的所述运行状态信息。
本申请实施例提供的存储介质所存储的计算机可执行指令在被处理器执行时,基于预先编写的用于描述实际应用场景的DSL程序,自动生成初始配置文件以及自动对所生成的初始配置文件进行异常检测,同时在检测未通过时,能够基于检测结果对初始配置文件进行修正,直至得到目标配置文件;可见,其不仅实现了配置文件的自动生成,而且无需人工排错,极大的提升了配置文件的生成效率以及配置文件的准确性。
其中,所述的计算机可读存储介质包括只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
需要说明的是,本申请中关于存储介质的实施例与本申请中关于配置文件的生成方法的实施例基于同一发明构思,因此该实施例的具体实施可以参见前述对应的配置文件的生成方法的实施,重复之处不再赘述。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种配置文件的生成方法,其特征在于,测试台启动后,执行以下操作:
加载待检测的DSL程序;
检测所述DSL程序是否满足预设的形式检测规则,若满足所述形式检测规则,则基于所述DSL程序生成初始配置文件;
采用测试用例对所述初始配置文件进行测试操作;
若测试结果为通过,则将所述初始配置文件确定为目标配置文件;
若测试结果为未通过,则根据所述测试结果修正所述初始配置文件,并基于修正后的所述初始配置文件进行所述测试操作。
2.根据权利要求1所述的方法,其特征在于,所述检测所述DSL程序是否满足预设的形式检测规则,包括:
检测所述DSL程序的格式与预设的形式检测规则中的格式是否一致;和/或,
检测所述DSL程序中的语法与预设的形式检测规则中的语法是否一致。
3.根据权利要求1所述的方法,其特征在于,所述基于所述DSL程序生成初始配置文件,包括:
从所述DSL程序中提取预设字段;
根据提取的所述预设字段生成语法树;
分析所述语法树,并将所述DSL程序转换为机器可识别语言;
运行所述机器可识别语言,得到初始配置文件。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述测试用例包括测试程序和期望结果,所述采用测试用例对所述初始配置文件进行测试操作,包括:
启动第一线程和第二线程;
通过所述第一线程加载所述初始配置文件;
通过所述第二线程加载并运行所述测试程序,得到运行结果;以及,
将所述运行结果与所述期望结果进行匹配;
若匹配成功,则确定测试结果为通过;
若匹配失败,则确定测试结果为未通过。
5.根据权利要求4所述的方法,其特征在于,所述启动第一线程和第二线程,包括:
确定所述初始配置文件的总数量;
启动第一线程和所述总数量的第二线程;
所述通过所述第二线程加载并运行所述测试程序,得到运行结果,包括:
通过每个所述第二线程加载并运行对应的初始配置文件所对应的所述测试程序,得到对应的运行结果。
6.根据权利要求4所述的方法,其特征在于,还包括:
接收线程状态查询请求;
获取所述第一线程和所述第二线程的运行状态信息;
展示获取的所述运行状态信息。
7.一种配置文件的生成装置,其特征在于,包括:
加载模块,用于加载待检测的DSL程序;
检测模块,用于检测所述DSL程序是否满足预设的形式检测规则;
生成模块,用于若所述DSL程序满足所述形式检测规则,则基于所述DSL程序生成初始配置文件;
测试模块,用于采用测试用例对所述初始配置文件进行测试操作;以及,
若测试结果为通过,则将所述初始配置文件确定为目标配置文件;
若测试结果为未通过,则根据所述测试结果修正所述初始配置文件,并基于修正后的所述初始配置文件进行所述测试操作。
8.根据权利要求7所述的装置,其特征在于,所述生成模块具体用于:
从所述DSL程序中提取预设字段;
根据提取的所述预设字段生成语法树;
分析所述语法树,并将所述DSL程序转换为机器可识别语言;
运行所述机器可识别语言,得到初始配置文件。
9.根据权利要求7或8所述的装置,所述测试用例包括测试程序和期望结果,所述测试模块具体用于:
启动第一线程和第二线程;
通过所述第一线程加载所述初始配置文件;
通过所述第二线程加载并运行所述测试程序,得到运行结果;以及,
将所述运行结果与所述期望结果进行匹配;
若匹配成功,则确定测试结果为通过;
若匹配失败,则确定测试结果为未通过。
10.根据权利要求9所述的装置,其特征在于,所述测试模块,进一步具体用于:
确定所述初始配置文件的总数量;
启动第一线程和所述总数量的第二线程;以及,
通过每个所述第二线程加载并运行对应的初始配置文件所对应的所述测试程序,得到对应的运行结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910992969.4A CN110795142B (zh) | 2019-10-18 | 2019-10-18 | 一种配置文件的生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910992969.4A CN110795142B (zh) | 2019-10-18 | 2019-10-18 | 一种配置文件的生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110795142A true CN110795142A (zh) | 2020-02-14 |
CN110795142B CN110795142B (zh) | 2023-04-07 |
Family
ID=69439386
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910992969.4A Active CN110795142B (zh) | 2019-10-18 | 2019-10-18 | 一种配置文件的生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110795142B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112084786A (zh) * | 2020-08-03 | 2020-12-15 | 东北大学 | 基于dsl的网络配置文件测试方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102789401A (zh) * | 2012-07-12 | 2012-11-21 | 北京泛华恒兴科技有限公司 | 基于柔性测试技术的测试流程控制方法和装置 |
US20140359362A1 (en) * | 2011-12-31 | 2014-12-04 | China Unionpay Co., Ltd. | Information interaction test device and method based on automatic generation of associated test cases |
CN106790739A (zh) * | 2016-11-22 | 2017-05-31 | 合智能科技(深圳)有限公司 | 一种dns服务的预加载启动方法、预加载系统及管理系统 |
CN107124335A (zh) * | 2017-06-30 | 2017-09-01 | 郑州云海信息技术有限公司 | 一种基于云海操作系统平台测试方法及系统 |
CN107463356A (zh) * | 2017-08-17 | 2017-12-12 | 北京云纵信息技术有限公司 | 任务流程的执行方法和装置 |
CN108182069A (zh) * | 2017-12-28 | 2018-06-19 | 深圳市创梦天地科技股份有限公司 | 程序语言转换方法、终端设备及计算机可读介质 |
CN108228268A (zh) * | 2016-12-15 | 2018-06-29 | 北京京东尚科信息技术有限公司 | 一种自动生成配置文件的方法和装置 |
CN109298899A (zh) * | 2018-09-12 | 2019-02-01 | 深圳点猫科技有限公司 | 一种少儿游戏配置文件自动化应用方法及电子设备 |
US20190079753A1 (en) * | 2017-09-08 | 2019-03-14 | Devfactory Fz-Llc | Automating Generation of Library Suggestion Engine Models |
-
2019
- 2019-10-18 CN CN201910992969.4A patent/CN110795142B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140359362A1 (en) * | 2011-12-31 | 2014-12-04 | China Unionpay Co., Ltd. | Information interaction test device and method based on automatic generation of associated test cases |
CN102789401A (zh) * | 2012-07-12 | 2012-11-21 | 北京泛华恒兴科技有限公司 | 基于柔性测试技术的测试流程控制方法和装置 |
CN106790739A (zh) * | 2016-11-22 | 2017-05-31 | 合智能科技(深圳)有限公司 | 一种dns服务的预加载启动方法、预加载系统及管理系统 |
CN108228268A (zh) * | 2016-12-15 | 2018-06-29 | 北京京东尚科信息技术有限公司 | 一种自动生成配置文件的方法和装置 |
CN107124335A (zh) * | 2017-06-30 | 2017-09-01 | 郑州云海信息技术有限公司 | 一种基于云海操作系统平台测试方法及系统 |
CN107463356A (zh) * | 2017-08-17 | 2017-12-12 | 北京云纵信息技术有限公司 | 任务流程的执行方法和装置 |
US20190079753A1 (en) * | 2017-09-08 | 2019-03-14 | Devfactory Fz-Llc | Automating Generation of Library Suggestion Engine Models |
CN108182069A (zh) * | 2017-12-28 | 2018-06-19 | 深圳市创梦天地科技股份有限公司 | 程序语言转换方法、终端设备及计算机可读介质 |
CN109298899A (zh) * | 2018-09-12 | 2019-02-01 | 深圳点猫科技有限公司 | 一种少儿游戏配置文件自动化应用方法及电子设备 |
Non-Patent Citations (1)
Title |
---|
唐长宁等: "面向现代汉语动态流通语料库的html To xml转换工具的设计和实现", 《内蒙古师范大学学报(自然科学汉文版)》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112084786A (zh) * | 2020-08-03 | 2020-12-15 | 东北大学 | 基于dsl的网络配置文件测试方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110795142B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9389849B2 (en) | Test case pattern matching | |
US20130036405A1 (en) | Automated test failure troubleshooter | |
CN110543427B (zh) | 测试用例存储方法、装置、电子设备及存储介质 | |
CN112241360A (zh) | 一种测试用例生成方法、装置、设备及存储介质 | |
CN108572895B (zh) | 一种Linux下自动检查软硬件配置的稳定性测试方法 | |
Wahler et al. | CAST: Automating software tests for embedded systems | |
US11163924B2 (en) | Identification of changes in functional behavior and runtime behavior of a system during maintenance cycles | |
CN110795142B (zh) | 一种配置文件的生成方法及装置 | |
CN106294109B (zh) | 获取缺陷代码的方法及装置 | |
CN103176903B (zh) | MapReduce分布式系统程序的测试方法及设备 | |
CN110908903B (zh) | 一种基于可编辑yaml文件的测试方法 | |
JP6169302B2 (ja) | 仕様構成装置および方法 | |
CN113051582B (zh) | 一种计算机软件技术开发调试系统 | |
Singhal et al. | A critical review of various testing techniques in aspect-oriented software systems | |
CN111061644B (zh) | 一种检测并定位异常抛出处理缺陷的方法和装置 | |
CN111427762A (zh) | 自动调用工具分析技术 | |
CN113037521A (zh) | 识别通讯设备状态的方法、通讯系统及存储介质 | |
Nieminen et al. | Adaptable design for root cause analysis of a model-based software testing process | |
RU2817186C1 (ru) | Система подтверждения тестов и тестирования встроенного программного обеспечения электронных устройств | |
CN116909800B (zh) | 崩溃信息的定位方法、崩溃信息的定位装置及存储介质 | |
CN111367816B (zh) | 移动测试方法、装置、计算机设备及存储介质 | |
CN110765020B (zh) | 基于领域知识的测试用例生成方法 | |
JP5181699B2 (ja) | コンピュータ試験方法,プログラムおよび情報処理装置 | |
CN118041816A (zh) | 基于nas设备的配置文件测试方法及装置 | |
CN115809196A (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 |