测试数据生成方法、装置以及控制器和介质与流程

文档序号:18414171发布日期:2019-08-13 19:07阅读:177来源:国知局
测试数据生成方法、装置以及控制器和介质与流程

本发明涉及自动化测试技术领域,尤其涉及一种测试数据生成方法、装置以及控制器和介质。



背景技术:

随着微服务架构的大面积推广,系统间的调用关系越来越复杂,相应的需要更多复杂的测试用例去覆盖这些复杂的调用场景,测试成本逐渐增加。对于自动化测试,需要更多不同状态、不同类型的测试数据来满足测试用例的执行。测试数据生成是一个繁琐复杂的过程,往往需要耗费测试人员大量的时间去完成。例如:测试支付的时候往往需要大量不同类型的订单数据,比如个人订单的测试、企业单的测试数据、有选配的订单数据、无选配的订单数据、有金融方案的订单数据、无金融方案的订单数据,还有这些类型两两交叉的数据等,如果仅靠人工去生成需要测试人员投入大量的时间,测试成本高、测试效率低。



技术实现要素:

本发明所要解决的技术问题在于,提供一种测试数据生成方法、装置以及控制器和介质,能够根据用户需求快速生成测试数据,减少人工操作时间,降低测试成本,提高测试效率。

为了解决上述技术问题,根据本发明第一实施例,提供了一种测试数据生成方法,包括:

获取测试需求信息;

解析所述测试需求信息,并生成对应的测试指令;

根据所述测试指令调取预先存储的接口测试用例和/或测试脚本生成测试数据。

进一步的,所述测试需求信息包括用户在交互界面录入的测试需求语句。

进一步的,所述解析所述测试需求信息,并生成对应的测试指令,包括:

将所述测试需求信息进行分词处理,得到分词结果;

将所述分词结果输入至预先建立的意图分类模型中,识别出用户意图;

从所述测试需求信息中提取槽位信息;

基于所述用户意图和所述槽位信息生成对应的测试指令。

进一步的,所述用户意图包括生成所需测试脚本、执行所需接口测试用例或测试脚本、查询接口测试用例或测试脚本;

所述槽位信息包括名称槽和数量槽。

进一步的,所述根据所述测试指令调取预先存储的接口测试用例和/或测试脚本生成测试数据,包括:

若用户意图为生成所需测试脚本,则调取所述名称槽对应的接口测试用例和/或测试脚本,并执行数量槽对应的次数,若无所述数量槽,则执行一次,从而生成所需测试脚本,若无所述名称槽对应的接口测试用例和/或测试脚本,则返回相应错误信息;

若用户意图为执行所需接口测试用例或测试脚本,则调取所述名称槽对应的接口测试用例或测试脚本,并执行数量槽对应的次数,若无所述数量槽,则执行一次,若无所述名称槽对应的接口测试用例或测试脚本,则返回相应错误信息;

若用户意图为查询接口测试用例或测试脚本,则调取所述名称槽对应的接口测试用例或测试脚本,并返回到用户界面,若无所述名称槽对应的接口测试用例或测试脚本,则返回相应错误信息。

进一步的,所述方法还包括,建立所述意图分类模型,具体包括:

将分词结果作为模型输入单层神经网络模型的输入,所述分词结果对应的意图类别作为所述单层神经网络模型的输出,基于多组所述分词结果和对应的意图类别对所述单层神经网络模型进行训练,得到所述意图分类模型。

根据本发明第二实施例,提供了一种测试数据生成装置,包括:

测试需求获取模块,配置为获取测试需求信息;

测试指令生成模块,配置为解析所述测试需求信息,并生成对应的测试指令;

测试数据生成模块,配置为根据所述测试指令调取预先存储的接口测试用例和/或测试脚本生成测试数据。

进一步的,所述测试需求信息包括用户在交互界面录入的测试需求语句。

进一步的,所述测试指令生成模块包括:

分词处理单元,配置为将所述测试需求信息进行分词处理,得到分词结果;

意图识别单元,配置为将所述分词结果输入至预先建立的意图分类模型中,识别出用户意图;

槽位信息提取单元,配置为从所述测试需求信息中提取槽位信息;

测试指令生成单元,配置为基于所述用户意图和所述槽位信息生成对应的测试指令。

进一步的,所述用户意图包括生成所需测试脚本、执行所需接口测试用例或测试脚本、查询接口测试用例或测试脚本;

所述槽位信息包括名称槽和数量槽。

进一步的,所述测试数据生成模块包括:

第一测试数据生成单元,配置为若用户意图为生成所需测试脚本,则调取所述名称槽对应的接口测试用例和/或测试脚本,并执行数量槽对应的次数,若无所述数量槽,则执行一次,从而生成所需测试脚本,若无所述名称槽对应的接口测试用例和/或测试脚本,则返回相应错误信息;

第二测试数据生成单元,配置为若用户意图为执行所需接口测试用例或测试脚本,则调取所述名称槽对应的接口测试用例或测试脚本,并执行数量槽对应的次数,若无所述数量槽,则执行一次,若无所述名称槽对应的接口测试用例或测试脚本,则返回相应错误信息;

第三测试数据生成单元,配置为若用户意图为查询接口测试用例或测试脚本,则调取所述名称槽对应的接口测试用例或测试脚本,并返回到用户界面,若无所述名称槽对应的接口测试用例或测试脚本,则返回相应错误信息。

进一步的,所述装置还包括,意图分类模型建立模块,配置为将分词结果作为模型输入单层神经网络模型的输入,所述分词结果对应的意图类别作为所述单层神经网络模型的输出,基于多组所述分词结果和对应的意图类别对所述单层神经网络模型进行训练,得到所述意图分类模型。

根据本发明第三实施例,提供一种控制器,其包括存储器与处理器,所述存储器存储有计算机程序,所述程序在被所述处理器执行时能够实现所述方法的步骤。

根据本发明第四实施例,提供一种计算机可读存储介质,用于存储计算机指令,所述指令在由一计算机或处理器执行时实现所述方法的步骤。

本发明与现有技术相比具有明显的优点和有益效果。借由上述技术方案,本发明一种测试数据生成方法、装置以及控制器和介质可达到相当的技术进步性及实用性,并具有产业上的广泛利用价值,其至少具有下列优点:

本发明能够根据用户需求快速生成测试数据,辅助测试人员快速展开自动化测试,节省测试数据手动生成的过程,减少人工操作时间,降低测试成本,提高测试效率。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。

附图说明

图1为本发明一实施例提供的测试数据生成方法示意图;

图2为本发明一实施例提供的测试数据生成装置示意图。

【符号说明】

1:测试需求获取模块2:测试指令生成模块

3:测试数据生成模块

具体实施方式

为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的一种测试数据生成方法、装置以及控制器和介质的具体实施方式及其功效,详细说明如后。

本发明实施例提供了一种测试数据生成方法,如图1所示,包括:

步骤s1、获取测试需求信息;

作为一种示例,所述测试需求信息包括用户在交互界面录入的测试需求语句,例如:“给我10个车辆订单”,“执行5次app服务”。

步骤s2、解析所述测试需求信息,并生成对应的测试指令;

作为一种示例,步骤s2包括:

步骤s21、将所述测试需求信息进行分词处理,得到分词结果;

例如,对用户输入的语句,使用自定义词典和停用词字典,对语句先去除停用词,然后利用结巴中文分词工具进行分词。其中自定义字典中包含了数据库服务器中存储的测试用例名称及脚本名称等;而停用词是指语句中如“了”,“的”及标点符号等对句义无影响的字词,分词结果可为单个词组成的集合。

步骤s22、将所述分词结果输入至预先建立的意图分类模型中,识别出用户意图;

其中,所述用户意图包括生成所需测试脚本、执行所需接口测试用例或测试脚本、查询接口测试用例或测试脚本;

步骤s23、从所述测试需求信息中提取槽位信息;

其中,所述槽位信息包括名称槽和数量槽,例如“给我10个车辆订单”,其中“10”即为数量槽,“车辆订单”即为名称槽。通过对分词结果进行词性识别即可得到数量槽,利用词典匹配即可得到名称槽。

步骤s24、基于所述用户意图和所述槽位信息生成对应的测试指令。

所述方法还包括,建立所述意图分类模型,具体包括:

将分词结果作为模型输入单层神经网络模型的输入,例如可采用1000条语句的分词结果。所述分词结果对应的意图类别作为所述单层神经网络模型的输出,基于多组所述分词结果和对应的意图类别对所述单层神经网络模型进行训练,得到所述意图分类模型。

作为一种示例,意图分类模型可借助谷歌开源工具tensorflow实现,其中词嵌入层使用tensorflow自带的映射工具将各词映射成为向量形式;卷积层对输入的向量进行卷积操作,并进行特征提取;池化层对卷积层的输出向量再次提取,得到最重要的向量;输出层利用softmax分类器进行分类计算,计算出各个类别的概率,概率最大的类别即为本次输入语句的意图类别。

步骤s3、根据所述测试指令调取预先存储的接口测试用例和/或测试脚本生成测试数据。

其中,预先存储的接口测试用例和测试脚本,可由测试人员编写存储至数据库中,也可直接将编写的接口测试用例和测试脚本直接导入使用,其中,接口测试用例包括实际请求头、请求体、请求地址、断言内容,响应结果需要提取的参数等。测试脚本用于处理测试用例开展测试。

作为一种示例,步骤s3包括:

步骤s31、若用户意图为生成所需测试脚本,则调取所述名称槽对应的接口测试用例和/或测试脚本,并执行数量槽对应的次数,若无所述数量槽,则执行一次,从而生成所需测试脚本,若无所述名称槽对应的接口测试用例和/或测试脚本,则返回相应错误信息;

步骤s32、若用户意图为执行所需接口测试用例或测试脚本,则调取所述名称槽对应的接口测试用例或测试脚本,并执行数量槽对应的次数,若无所述数量槽,则执行一次,若无所述名称槽对应的接口测试用例或测试脚本,则返回相应错误信息;

步骤s33、若用户意图为查询接口测试用例或测试脚本,则调取所述名称槽对应的接口测试用例或测试脚本,并返回到用户界面,若无所述名称槽对应的接口测试用例或测试脚本,则返回相应错误信息。

作为一种示例,在测试支付的时候需要大量不同类型的测试数据,比如个人订单的测试、企业单的测试数据、有选配的测试数据、无选配的测试数据等,对于不同的类型的订单需要走不同的流程,基于本发明实施例所述方法,只需要在交互界面输入如:“创建1个个人车辆订单”、“创建2个企业订单”、“创建3个有选配车辆订单”、“创建4个无选配车辆订单”等语句,即可即快速得到对应的测试数据,减少了人工操作时间,降低测试成本,提高测试效率。

本发明实施例还提供了一种测试数据生成装置,如图2所示,包括测试需求获取模块1、测试指令生成模块2和测试数据生成模块3,其中,测试需求获取模块1配置为获取测试需求信息,作为一种示例,所述测试需求信息包括用户在交互界面录入的测试需求语句,例如:“给我10个车辆订单”,“执行5次app服务”。测试指令生成模块2配置为解析所述测试需求信息,并生成对应的测试指令;测试数据生成模块3配置为根据所述测试指令调取预先存储的接口测试用例和/或测试脚本生成测试数据,其中,预先存储的接口测试用例和测试脚本,可由测试人员编写存储至数据库中,也可直接将编写的接口测试用例和测试脚本直接导入使用,其中,接口测试用例包括实际请求头、请求体、请求地址、断言内容,响应结果需要提取的参数等。测试脚本用于处理测试用例开展测试。

作为一种示例,所述测试指令生成模块2包括分词处理单元、意图识别单元、槽位信息提取单元和测试指令生成单元,其中,分词处理单元配置为将所述测试需求信息进行分词处理,得到分词结果,例如,分词处理单元对用户输入的语句,使用自定义词典和停用词字典,对语句先去除停用词,然后利用结巴中文分词工具进行分词。其中自定义字典中包含了数据库服务器中存储的测试用例名称及脚本名称等;而停用词是指语句中如“了”,“的”及标点符号等对句义无影响的字词,分词结果可为单个词组成的集合。意图识别单元配置为将所述分词结果输入至预先建立的意图分类模型中,识别出用户意图,所述用户意图包括生成所需测试脚本、执行所需接口测试用例或测试脚本、查询接口测试用例或测试脚本。槽位信息提取单元配置为从所述测试需求信息中提取槽位信息,所述槽位信息包括名称槽和数量槽,例如“给我10个车辆订单”,其中“10”即为数量槽,“车辆订单”即为名称槽。通过对分词结果进行词性识别即可得到数量槽,利用词典匹配即可得到名称槽。测试指令生成单元配置为基于所述用户意图和所述槽位信息生成对应的测试指令。

所述装置还包括意图分类模型建立模块,配置为将分词结果作为模型输入单层神经网络模型的输入,所述分词结果对应的意图类别作为所述单层神经网络模型的输出,基于多组所述分词结果和对应的意图类别对所述单层神经网络模型进行训练,得到所述意图分类模型。

作为一种示例,意图分类模型可借助谷歌开源工具tensorflow实现,其中词嵌入层使用tensorflow自带的映射工具将各词映射成为向量形式;卷积层对输入的向量进行卷积操作,并进行特征提取;池化层对卷积层的输出向量再次提取,得到最重要的向量;输出层利用softmax分类器进行分类计算,计算出各个类别的概率,概率最大的类别即为本次输入语句的意图类别。

作为一种示例,所述测试数据生成模块3包括第一测试数据生成单元、第二测试数据生成单元和第三测试数据生成单元,其中,第一测试数据生成单元,配置为若用户意图为生成所需测试脚本,则调取所述名称槽对应的接口测试用例和/或测试脚本,并执行数量槽对应的次数,若无所述数量槽,则执行一次,从而生成所需测试脚本,若无所述名称槽对应的接口测试用例和/或测试脚本,则返回相应错误信息。第二测试数据生成单元,配置为若用户意图为执行所需接口测试用例或测试脚本,则调取所述名称槽对应的接口测试用例或测试脚本,并执行数量槽对应的次数,若无所述数量槽,则执行一次,若无所述名称槽对应的接口测试用例或测试脚本,则返回相应错误信息。第三测试数据生成单元,配置为若用户意图为查询接口测试用例或测试脚本,则调取所述名称槽对应的接口测试用例或测试脚本,并返回到用户界面,若无所述名称槽对应的接口测试用例或测试脚本,则返回相应错误信息。

本发明实施例还提供一种控制器,其包括存储器与处理器,所述存储器存储有计算机程序,所述程序在被所述处理器执行时能够实现所述测试数据生成方法的步骤。

本发明实施例还提供一种计算机可读存储介质,用于存储计算机指令,所述指令在由一计算机或处理器执行时实现所述测试数据生成方法的步骤。

本发明实施例能够根据用户需求快速生成测试数据,辅助测试人员快速展开自动化测试,节省测试数据手动生成的过程,减少人工操作时间,降低测试成本,提高测试效率。

以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1