CN114238151A - 一种软件测试方法、装置、电子设备及存储介质 - Google Patents
一种软件测试方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114238151A CN114238151A CN202210061315.1A CN202210061315A CN114238151A CN 114238151 A CN114238151 A CN 114238151A CN 202210061315 A CN202210061315 A CN 202210061315A CN 114238151 A CN114238151 A CN 114238151A
- Authority
- CN
- China
- Prior art keywords
- data
- preset
- processed
- entry
- component
- 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/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)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种软件测试方法,可根据执行节点信息中的组件信息自动查找对应的预设组件信息条目,并利用预设组件信息条目对应的预设数据模板组装待处理数据,以及利用预设组件信息条目对应的预设软件测试程序对待处理数据进行软件测试。由于待处理数据由组件类型对应的预设数据模板组装而成,因此在测试输入数据发生变更时,只需要将该预设数据模板进行变更即可;同样,由于软件测试由组件类型对应的预设软件测试程序进行,因此当测试步骤发生变动时,仅需将对应该预设软件测试程序进行变更即可,大大提升了自动化测试工具的可扩展性,进而有效提升了该工具的利用价值。本发明还提供一种软件测试装置、电子设备及存储介质,具有上述有益效果。
Description
技术领域
本发明涉及软件测试领域,特别涉及一种软件测试方法、装置、电子设备及存储介质。
背景技术
为提升测试效率,测试人员通常会使用自动化测试工具辅助进行软件测试任务。相关技术中,自动化测试工具通常基于特定的测试引擎开发,这导致现有自动化测试工具的可扩展性较差,进而导致这些工具难以满足日新月异的测试需求。
发明内容
本发明的目的是提供一种软件测试方法、装置、电子设备及存储介质,可利用预设组件信息条目自定义用于构建输入数据的数据模板及用于进行软件测试的软件测试程序,进而可有效增强自动化测试工具的可扩展性。
为解决上述技术问题,本发明提供一种软件测试方法,包括:
在接收到测试用例的用例配置信息时,将所述用例配置信息中的首个执行节点信息条目设置为待处理条目;
根据所述待处理条目中的组件类型查找对应的预设组件信息条目,并利用所述预设组件信息条目中的预设数据模板及所述待处理条目中的配置信息拼装待处理数据;
利用所述预设组件信息条目对应的预设软件测试程序处理所述待处理数据;
在确定所述待处理条目具有对应的下一执行节点信息条目时,将所述待处理条目更新为将所述下一执行节点信息条目,并进入所述根据所述待处理条目中的组件类型查找对应的预设组件信息条目的步骤;
在确定所述待处理条目不具有所述下一执行节点信息条目时,退出流程。
可选地,所述利用所述预设组件信息条目中的预设数据模板及所述待处理条目中的配置信息拼装待处理数据,包括:
从所述配置信息中提取自定义数据模板及入参数据;
将所述入参数据填写至所述预设数据模板及所述自定义数据模板中,并对完成填写的预设数据模板及自定义数据模板进行拼接,得到所述待处理数据。
可选地,所述从所述配置信息中提取入参数据,包括:
从所述配置信息中提取所述入参数据ID,并根据所述入参数据ID从所述用例配置信息中的参数池中提取对应的测试数据;
相应的,所述利用所述预设组件信息条目对应的预设软件测试程序处理所述待处理数据,包括:
利用所述预设组件信息条目对应的预设软件测试程序处理所述待处理数据,得到输出数据及对应的输出数据ID;
利用所述输出数据和所述输出数据ID在所述参数池中更新对应的测试数据。
可选地,当所述组件类型为通用组件类型时,所述待处理数据为请求信息,所述利用所述预设组件信息条目对应的预设软件测试程序处理所述待处理数据,得到输出数据及对应的输出数据ID,包括:
将所述请求信息发送至所述预设软件测试程序,以使所述预设软件测试程序将所述请求信息发送至目标设备,并从所述目标设备的响应信息中提取所述输出数据及确定输出数据ID;
接收所述预设软件测试程序发送的所述输出数据及所述输出数据ID。
可选地,当所述组件类型为分支控制类型时,所述待处理数据为逻辑表达式,所述利用所述预设组件信息条目对应的预设软件测试程序处理所述待处理数据,包括:
利用所述预设软件测试程序确定所述逻辑表达式的逻辑值,并从所述待处理条目中提取所述逻辑值对应的下一执行节点信息条目。
可选地,当所述组件类型为循环控制类型时,所述入参数据为循环次数,所述将所述入参数据填写至所述预设数据模板及所述自定义数据模板中,并对完成填写的预设数据模板及自定义数据模板进行拼接,得到所述待处理数据,包括:
将所述循环次数填写至所述预设数据模板及所述自定义数据模板中,并对完成填写的预设数据模板及自定义数据模板进行拼接,得到用于确定所述循环次数是否大于预设值的循环控制逻辑表达式;
相应的,所述利用所述预设组件信息条目对应的预设软件测试程序处理所述待处理数据,包括:
利用所述分支控制类型对应的预设软件测试程序确定所述循环控制逻辑表达式的循环逻辑值,更新所述循环次数,并从所述待处理条目中提取所述循环逻辑值对应的下一执行节点信息条目。
可选地,当所述组件类型为循环控制类型时,所述入参数据为所述测试用例的实际结果、预期结果及断言方式,所述将所述入参数据填写至所述预设数据模板及所述自定义数据模板中,并对完成填写的预设数据模板及自定义数据模板进行拼接,得到所述待处理数据,包括:
将所述实际结果、所述预期结果及所述断言方式填写至所述预设数据模板及所述自定义数据模板中,并对完成填写的预设数据模板及自定义数据模板进行拼接,得到用于确定所述测试用例是否测试成功的断言逻辑表达式;
相应的,所述利用所述预设组件信息条目对应的预设软件测试程序处理所述待处理数据,包括:
利用所述分支控制类型对应的预设软件测试程序确定所述断言逻辑表达式的断言逻辑值,并根据所述断言逻辑值确定所述测试用例是否测试成功。
本发明还提供一种软件测试装置,包括:
设置模块,用于在接收到测试用例的用例配置信息时,将所述用例配置信息中的首个执行节点信息条目设置为待处理条目;
拼装模块,用于根据所述待处理条目中的组件类型查找对应的预设组件信息条目,并利用所述预设组件信息条目中的预设数据模板及所述待处理条目中的配置信息拼装待处理数据;
测试模块,用于利用所述预设组件信息条目对应的预设软件测试程序处理所述待处理数据;
更新模块,用于在确定所述待处理条目具有对应的下一执行节点信息条目时,将所述待处理条目更新为将所述下一执行节点信息条目,并进入所述根据所述待处理条目中的组件类型查找对应的预设组件信息条目的步骤;
退出模块,用于在确定所述待处理条目不具有所述下一执行节点信息条目时,退出流程。
本发明还提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述所述的软件测试方法。
本发明还提供一种存储介质,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上述所述的软件测试方法。
本发明提供一种软件测试方法,包括:在接收到测试用例的用例配置信息时,将所述用例配置信息中的首个执行节点信息条目设置为待处理条目;根据所述待处理条目中的组件类型查找对应的预设组件信息条目,并利用所述预设组件信息条目中的预设数据模板及所述待处理条目中的配置信息拼装待处理数据;利用所述预设组件信息条目对应的预设软件测试程序处理所述待处理数据;在确定所述待处理条目具有对应的下一执行节点信息条目时,将所述待处理条目更新为将所述下一执行节点信息条目,并进入所述根据所述待处理条目中的组件类型查找对应的预设组件信息条目的步骤;在确定所述待处理条目不具有所述下一执行节点信息条目时,退出流程。
可见,本发明在接收到测试用例对应的用例配置信息时,会自动从中提取执行节点信息,并根据执行节点信息中的组件类型查询对应的预设组件信息条目,并利用预设组件信息条目对应的预设数据模板组装待处理数据,以及利用预设组件信息条目对应的预设软件测试程序对待处理数据进行处理,以开展软件测试任务。简单来说,由于可利用组件类型对应的预设数据模板组装待处理数据,因此本发明并不限制输入数据的格式,当测试所需的输入数据发生变更时,只需要将对应组件类型中的预设数据模板进行变更即可;同样,由于软件测试由组件类型对应的预设软件测试程序进行,因此当测试步骤发生变动时,仅需将对应组件类型中的预设软件测试程序进行变更即可,大大提升了自动化测试工具的可扩展性,进而有效提升了该工具的利用价值。本发明还提供一种软件测试装置、电子设备及存储介质,具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的一种软件测试方法的流程图;
图2为本发明实施例所提供的一种流程结构的示意图;
图3为本发明实施例所提供的一种组件的示意图;
图4为本发明实施例所提供的一种http组件执行过程的流程图;
图5为本发明实施例所提供的一种分支控制组件执行过程的流程图;
图6为本发明实施例所提供的一种循环控制组件执行过程的流程图;
图7为本发明实施例所提供的一种断言组件执行过程的流程图;
图8为本发明实施例所提供的测试用例流程执行过程的整体流程图;
图9为本发明实施例所提供的一种软件测试装置的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
相关技术中,自动化测试工具通常基于特定的测试引擎开发,这导致现有自动化测试工具的可扩展性较差,进而导致这些工具难以满足日新月异的测试需求。有鉴于此,本发明提供一种软件测试方法,可利用预设组件信息条目自定义用于构建输入数据的数据模板及用于进行软件测试的软件测试程序,进而可有效增强自动化测试工具的可扩展性。请参考图1,图1为本发明实施例所提供的一种软件测试方法的流程图,该方法可以包括:
S101、在接收到测试用例的用例配置信息时,将用例配置信息中的首个执行节点信息条目设置为待处理条目。
可以理解的是,软件测试通常按照一个测试流程执行。相关技术中,测试人员通常使用软件测试引擎执行该流程,然而当测试流程发生变更时,测试人员仅能对软件测试引擎本身进行修改以适应新流程,并不灵活。而在本申请中,则首先将软件测试流程划分为多个执行动作,并利用对应的执行节点去处理这些执行动作,例如在图2所提供的例子中,软件测试流程可被拆分为5个执行动作,每一动作可由对应的执行节点,即sql组件逻辑、http接口组件逻辑、分支控制、断言组件逻辑及rpc接口组件逻辑执行,其中sql组件逻辑用于测试数据库,http接口组件逻辑用于测试http接口,分支控制用于根据测试过程中出现的字段值(seg1.value)的逻辑结果控制测试流程走向断言组件逻辑或rpc接口组件逻辑,断言组件逻辑用于确定测试用例是否成功执行,rpc接口组件逻辑用于测试rpc(RemoteProcedure Call,远程过程调用)接口。执行节点可由测试工具中不同的预设组件进行自定义调整后得到,每一组件均具有对应的预设数据模板以及预设软件测试程序,其中预设数据模板用于组装输入软件测试程序的待处理数据,而预设软件测试程序则用于处理软件测试过程中的执行逻辑。显然,在本发明实施例中,组件为软件测试过程中的最小执行单元,其示意图可参考图3,图3为本发明实施例所提供的一种组件的示意图,其主要结构为执行逻辑(即软件测试程序),只需按照组件要求向其中输入数据,便可得到逻辑处理后的输入数据。由于本发明采用多组件的形式来处理软件测试流程,因此可对组件进行任意编排以适应不同的软件测试流程;此外每一组件的预设数据模板及预设软件测试程序均可根据实际应用需求进行更新修改,因此本发明能够大大提升自动化测试工具的灵活性及可扩展性,进而可有效提升自动化测试工具在测试领域的应用价值。
进一步,可以理解的是,为了对测试工具中的组件进行自定义配置得到执行节点,并按照预设顺序控制执行节点处理执行动作,应当向测试工具提供总体的配置信息,该配置信息中包含各执行节点对应的执行节点信息条目,以及各执行节点的工作顺序。在本发明实施例中,用例配置信息正是上述总体配置信息。在首次执行软件测试时,应当将用例配置信息中的首个执行节点信息条目设置为待处理条目,以启动软件测试流程。需要说明的是,本发明实施例并不限定执行节点信息条目在用例配置信息中的存储形式、最大数目以及排序方式,可根据实际应用需求进行设定。为按照顺序组装执行节点,各执行节点信息条目中可进一步包含用于唯一标识执行节点的节点ID,进而可根据该ID快速查找节点组装所需的执行节点信息条目。当然,用例配置信息中还可包含其他信息,例如软件测试所需使用的参数信息、用例名称、唯一标识测试用例的用例ID等,可根据实际应用需求进行设定。在一种可能的情况中,用例配置信息的结构可以为:
{
"流程ID":"流程ID",
"节点执行集合":["节点1ID","节点2ID",...],
"参数集合":"参数集合"
}
进一步,组件具有多种类型,为快速匹配执行节点对应的组件,执行节点信息中应当包含组件类型。在一种可能的情况中,执行节点信息条目的结构可简单表示为:
{
"节点ID":"节点ID",
"组件类型":""
}
本发明实施例并不限定具体的组件类型,例如可包含数据库操作组件、文件操作组件、关键字的组件、接口组件、流程控制组件和断言组件等,其中数据库操作组件用于对数据库实现增删改查等操作,文件操作组件用于对文件进行操作,关键字组件用于对不同编程语言进行调用,接口库组件用于对不同协议接口调用,如http接口、tcp接口(Transmission Control Protocol,传输控制协议)、udp接口(User Datagram Protocol,用户数据包协议)、rpc接口、socket接口(套接字接口)等,流程控制组件用于对自动化流程进行控制,断言组件用于根据复杂规则进行用例执行结果比对。当然,也可包含对已有执行节点或测试用例进行复用的用例复用组件,对现有执行节点及测试用例的复用可通过节点ID及用例ID实现。进一步,为提升组件管理效率,本发明可将组件分为两大类型,即通用组件和分支控制组件,这两个组件的具体结构及功能将在后文中进行详细描述。
S102、根据待处理条目中的组件类型查找对应的预设组件信息条目,并利用预设组件信息条目中的预设数据模板及待处理条目中的配置信息拼装待处理数据。
在本发明实施例中,执行节点信息条目中还包含配置信息,该配置信息用于提供待处理数据中的必要信息。由于预设组件信息条目中已包含用于规范待处理数据格式的预设数据模板,因此仅需将配置信息填入预设数据模板即可。本发明实施例并不限定配置信息中具体内容,其首先可以包含入参数据。本发明也不限定具体的入参数据,例如在检测http接口时,入参数据可以为请求头、请求体等参数,在检测数据库时,入参数据为数据库名、表名等信息。入参数据的数据类型可为整型(int)、字符串(String)、JSON(JavaScriptObject Notation,JS对象简谱)等类型,可根据实际应用需求进行设定。进一步,为提升预设数据模板的可扩展性,配置信息中也可进一步包含用户自定义的数据模板,该自定义数据模板可拼接至预设数据模板中,以在预设数据模板中添加自定义内容。可以理解的是,当配置信息中包含自定义数据模板时,需将入参数据同时写入预设数据模板和自定义数据模板中,进而将完成填写的两个模板进行拼接,以得到待处理数据。
在一种可能的情况中,利用预设组件信息条目中的预设数据模板及待处理条目中的配置信息拼装待处理数据,可以包括:
步骤11:从配置信息中提取自定义数据模板及入参数据;
步骤12:将入参数据填写至预设数据模板及自定义数据模板中,并对完成填写的预设数据模板及自定义数据模板进行拼接,得到待处理数据。
需要说明的是,本发明实施例并不限定入参数据在各模板中的填入位置,也不限定两模板的拼接方式,可根据实际应用需求进行设定。
进一步,软件测试领域中经常出现测试数据复用,例如某一测试内容的输出数据作为下一测试内容的输入数据。为在本发明实施例所提供的多组件测试工具中实现测试数据复用,在用例配置信息中还可增设参数池,用于记录各测试数据的数值。在组装执行节点的待处理数据时,可从参数池中提取所需的入参数据,而在执行节点完成处理得到输出数据后,可利用输出数据对参数池中的对应测试数据进行更新。本发明实施例并不限定如何在参数池中提取入参数据,以及如何利用输出数据更新对应的测试数据,例如可根据数据名称执行上述操作,也可以为每一测试数据设置ID,并根据数据ID执行上述操作。为提升比对效率,在本发明实施例中,可为每一测试数据设置ID,进而在提取入参数据及寻找输出数据对应的测试数据时,均可根据该ID进行匹配。
在一种可能的情况中,从配置信息中提取入参数据,可以包括:
步骤21:从配置信息中提取入参数据ID,并根据入参数据ID从用例配置信息中的参数池中提取对应的测试数据;
相应的,利用预设组件信息条目对应的预设软件测试程序处理待处理数据,可以包括:
步骤31:利用预设组件信息条目对应的预设软件测试程序处理待处理数据,得到输出数据及对应的输出数据ID;
步骤32:利用输出数据和输出数据ID在参数池中更新对应的测试数据。
需要说明的是,本发明实施例并不限定测试数据所拥有的属性,除基本的名称、参数值及参数类型外,还可包含英文名称及表征是否与其他参数关联的标识信息,可根据实际应用需求进行设定。在一种可能的情况中,测试数据的存储形式如下:
{
"参数1ID":{
"参数名称":"参数名称",
"EnName":"英文名称",
"参数值":"参数值",
"是否关联参数":"是/否"
"参数类型":"参数类型",
...
},
"参数2ID":{
"参数名称":"参数名称",
"EnName":"英文名称",
"参数值":"参数值",
"是否关联参数":"是/否"
"参数类型":"参数类型",
...
}
...
}
S103、利用预设组件信息条目对应的预设软件测试程序处理待处理数据。
可以理解的是,不同类型的组件对应的预设软件测试程序具有不同的功能。下面对通用组件和分支控制组件对应的预设软件测试程序进行介绍。
在本发明实施例中,通用组件主要用于检测目标设备,其适用于组装接口组件、数据库操作组件、关键字组件、文件操作组件、用例复用组件等用于对目标设备进行检测的组件,其中目标设备可包含接口、数据库、不同编程语言中的函数库、文件等,当然也可以是多个对象的组合。由于预设软件测试程序(Exec程序)主要用于执行软件测试动作,因此通用组件中的预设软件测试程序主要用于对上述目标设备进行检测,例如该程序可以为一个检测接口的程序,也可以为一个检测数据库的程序,也可以为一个调用函数库的程序,也可以为对目标文件进行检测的程序。由于通常需要向目标设备发送请求信息,才能通过该对象的响应信息来确定其是否正常工作,因此通用组件中的预设软件测试程序所使用的待处理数据应当为请求信息,而该程序的功能简单来说为将请求信息发送至目标设备,并接收目标设备的响应信息,进而通过解析响应信息的方式来确定目标设备是否正常及得到输出数据。当然,通用组件中的预设软件测试程序实际具备的功能会更为复杂,本发明实施例仅作简单描述,其具体功能可参考相关技术。
在一种可能的情况中,当组件类型为通用组件类型时,待处理数据为请求信息,利用预设组件信息条目对应的预设软件测试程序处理待处理数据,得到输出数据及对应的输出数据ID,可以包括:
步骤41:将请求信息发送至预设软件测试程序,以使预设软件测试程序将请求信息发送至目标设备,并从目标设备的响应信息中提取输出数据及确定输出数据ID;
步骤42:接收预设软件测试程序发送的输出数据及输出数据ID。
下面以具体的例子介绍通用组件的执行过程,请参考图4,图4为本发明实施例所提供的一种http组件执行过程的流程图,可见在该流程中,首先获取http request请求模板和入参数据,如业务参数,token(令牌)等,进而利用该模板和入参数据组装待处理数据(Body数据),得到http请求报文,最后将该报文发送至request请求执行程序进行处理,并接收相应的http响应报文。
在一种可能的情况中,通用组件的结构可表示为:
{
"Body":"",//预设数据模板,用于组装报文,请求类型,请求地址,数据库名,表名,结果类型等
"Exec程序":"",//执行逻辑
"节点入参":["输入参数1ID","输入参数2ID",...],
"节点出参":["输出参数1ID","输出参数2ID",...]
}
进一步,在本发明实施例中,分支控制组件的主要作用是根据用例的实时执行结果对用例逻辑进行控制,其作用类似于编程语言中的goto,if-else,for等流程控制关键字。换而言之,分支控制组件的预设软件测试程序主要处理的待处理数据为逻辑表达式,而具体功能主要为计算逻辑表达式对应的逻辑值,即True值(真)和False值(假)。可以理解的是,逻辑值可设置对应的下一执行节点信息条目,这样便可根据该逻辑值进行流程控制。当然,为实现else if功能,逻辑值也可设置对应的下一逻辑表达式;为控制测试流程退出,逻辑值也可设置对应的终止标识。
在一种可能的情况中,当组件类型为分支控制类型时,待处理数据为逻辑表达式,利用预设组件信息条目对应的预设软件测试程序处理待处理数据,包括:
步骤51:利用预设软件测试程序确定逻辑表达式的逻辑值,并从待处理条目中提取逻辑值对应的下一执行节点信息条目。
在一种可能的情况中,分支控制组件的结构可表示为:
{
"控制条件1":{
"控制条件":"支持逻辑表达式",
"下一个节点ID":"节点ID"//此关键字在控制组件是流程分支时生效,流程执行可能发生跳转
"流程终止":"流程终止标识"//此关键字在控制组件是终止标记时生效,此时流程不在执行后续的流程,流程终止
},
......
}
请参考图5,图5为本发明实施例所提供的一种分支控制组件执行过程的流程图,与通用组件类似的,在进行逻辑判断前,首先获取入参数据,该数据为需要判断的逻辑字段值,可来自之前节点的入参数据、输出数据或变量值,并利用该数据组装逻辑表达式;然后,将逻辑表达式输入分支控制组件对应的预设软件测试程序进行判断处理,得到对应的逻辑值,最后根据逻辑值是否为真值(True)跳转至下一执行节点或是下一逻辑表达式(else-if)。
应当指出的是,逻辑表达式同样可使用预设数据模板和自定义模板共同组合而成,本发明并不限定逻辑表达式的具体组装方式,可根据实际应用需求进行设定。由于分支控制组件可用于进行逻辑判断,因此该组件还可用于实现循环功能。具体的,在组装逻辑表达式时,入参数据应当为循环次数,由循环次数构成的逻辑表达式(后文称为循环逻辑表达式)用于判定该循环次数是否大于预设值,其逻辑值分别对应循环内的执行节点信息条目及循环外的执行节点信息条目。当分支控制组件对应的预设软件测试程序确定循环逻辑表达式的逻辑值后,便可根据该值跳转至循环内的执行节点,或是跳出循环。可以理解的是,在跳转之前,应当对循环次数进行更新。
在一种可能的情况中,当组件类型为循环控制类型时,入参数据为循环次数,将入参数据填写至预设数据模板及自定义数据模板中,并对完成填写的预设数据模板及自定义数据模板进行拼接,得到待处理数据,包括:
步骤61:将循环次数填写至预设数据模板及自定义数据模板中,并对完成填写的预设数据模板及自定义数据模板进行拼接,得到用于确定循环次数是否大于预设值的循环控制逻辑表达式;
相应的,利用预设组件信息条目对应的预设软件测试程序处理待处理数据,包括:
步骤71:利用分支控制类型对应的预设软件测试程序确定循环控制逻辑表达式的循环逻辑值,更新循环次数,并从待处理条目中提取循环逻辑值对应的下一执行节点信息条目。
请参考图6,图6为本发明实施例所提供的一种循环控制组件执行过程的流程图,可见该组件与分支控制组件的区别在于节点入参为循环次数。
当然,分支控制组件还可用于实现断言功能,即确定测试用例是否测试测试成功。具体的,在组装逻辑表达式时,入参数据应当为执行测试用例的实际结果、预期结果及断言方式,由实际结果、预期结果及断言方式构成的逻辑表达式(后文称为断言逻辑表达式)用于判定该测试用例是否测试成功,其逻辑值分别对应测试成功及测试失败。当分支控制组件对应的预设软件测试程序确定循环逻辑表达式的逻辑值后,便可根据该值确定测试用例的执行情况。
在一种可能的情况中,当组件类型为循环控制类型时,入参数据为测试用例的实际结果、预期结果及断言方式,将入参数据填写至预设数据模板及自定义数据模板中,并对完成填写的预设数据模板及自定义数据模板进行拼接,得到待处理数据,可以包括:
步骤81:将实际结果、预期结果及断言方式填写至预设数据模板及自定义数据模板中,并对完成填写的预设数据模板及自定义数据模板进行拼接,得到用于确定测试用例是否测试成功的断言逻辑表达式;
相应的,利用预设组件信息条目对应的预设软件测试程序处理待处理数据,包括:
步骤91:利用分支控制类型对应的预设软件测试程序确定断言逻辑表达式的断言逻辑值,并根据断言逻辑值确定测试用例是否测试成功。
请参考图7,图7为本发明实施例所提供的一种断言组件执行过程的流程图,可见该组件与分支控制组件的区别在于节点入参为实际结果、断言方式及预期结果。需要说明的是,本发明实施例并不限定具体的断言方式,其可以为大于、等于、小于及包含等,可根据实际应用需求进行设定。在一种可能的情况中,断言组件的结构可表示为:
{
"断言1ID":{
"实际结果参数ID":"实际结果参数ID",
"断言方式":"大于/等于/小于/包含等",
"预期结果参数ID":"预期结果参数ID"
},
"断言2ID"{
"实际结果参数ID":"实际结果参数ID",
"断言方式":"大于/等于/小于/包含等",
"预期结果参数ID":"预期结果参数ID"
},
.....
}
S104、判断待处理条目是否具有对应的下一执行节点信息条目,若是则进入步骤S105,若否,则进入步骤S106;
S105、在确定待处理条目具有对应的下一执行节点信息条目时,将待处理条目更新为将下一执行节点信息条目,并进入根据待处理条目中的组件类型查找对应的预设组件信息条目的步骤。
在本发明实施例中,可根据用例配置信息中所规定的执行顺序确定待处理条目对应的下一执行节点信息条目;当然,若当前执行节点的组件类型属于分支控制类型,则待处理条目中可能会包含其当前执行节点指定的下一执行节点,可根据实际情况进行选择。由于执行节点信息条目中可设置节点ID,因此待处理条目对应的下一执行节点信息条目可根据节点ID进行查找。进一步,由于测试用例也可设置用例ID,因此待处理条目所对应的下一执行节点也可以为一个测试用例,即待处理条目可对应一个用例ID。换而言之,本发明可对单个执行节点进行复用,也可以对一个已经完成编排的执行节点序列进行复用,可进一步提升自动化测试工具的灵活性。
S106、在确定待处理条目不具有下一执行节点信息条目时,退出流程。
最后,为便于理解,本发明实施例还提供如图8所示的测试用例流程执行过程的整体流程图。
基于上述实施例,本发明在接收到测试用例对应的用例配置信息时,会自动从中提取执行节点信息,并根据执行节点信息中的组件类型查询对应的预设组件信息条目,并利用预设组件信息条目对应的预设数据模板组装待处理数据,以及利用预设组件信息条目对应的预设软件测试程序对待处理数据进行处理,以开展软件测试任务。简单来说,由于可利用组件类型对应的预设数据模板组装待处理数据,因此本发明并不限制输入数据的格式,当测试所需的输入数据发生变更时,只需要将对应组件类型中的预设数据模板进行变更即可;同样,由于软件测试由组件类型对应的预设软件测试程序进行,因此当测试步骤发生变动时,仅需将对应组件类型中的预设软件测试程序进行变更即可,大大提升了自动化测试工具的可扩展性,进而有效提升了该工具的利用价值。
下面对本发明实施例提供的软件测试装置、电子设备及存储介质进行介绍,下文描述的软件测试装置、电子设备及存储介质与上文描述的软件测试方法可相互对应参照。
请参考图9,图9为本发明实施例所提供的一种软件测试装置的结构框图,该装置包括:
设置模块901,用于在接收到测试用例的用例配置信息时,将用例配置信息中的首个执行节点信息条目设置为待处理条目;
拼装模块902,用于根据待处理条目中的组件类型查找对应的预设组件信息条目,并利用预设组件信息条目中的预设数据模板及待处理条目中的配置信息拼装待处理数据;
测试模块903,用于利用预设组件信息条目对应的预设软件测试程序处理待处理数据;
更新模块904,用于在确定待处理条目具有对应的下一执行节点信息条目时,将待处理条目更新为将下一执行节点信息条目,并进入根据待处理条目中的组件类型查找对应的预设组件信息条目的步骤;
退出模块905,用于在确定待处理条目不具有下一执行节点信息条目时,退出流程。
可选地,拼装模块902,可以包括:
提取子模块,用于从配置信息中提取自定义数据模板及入参数据;
拼装子模块,用于将入参数据填写至预设数据模板及自定义数据模板中,并对完成填写的预设数据模板及自定义数据模板进行拼接,得到待处理数据。
可选地,提取子模块,可以包括:
提取单元,用于从配置信息中提取入参数据ID,并根据入参数据ID从用例配置信息中的参数池中提取对应的测试数据;
相应的,测试模块903,可以包括:
测试子模块,用于利用预设组件信息条目对应的预设软件测试程序处理待处理数据,得到输出数据及对应的输出数据ID;
数据更新子模块,用于利用输出数据和输出数据ID在参数池中更新对应的测试数据。
可选地,当组件类型为通用组件类型时,待处理数据为请求信息,测试子模块,可以包括:
测试单元,用于将请求信息发送至预设软件测试程序,以使预设软件测试程序将请求信息发送至目标设备,并从目标设备的响应信息中提取输出数据及确定输出数据ID;
接收单元,用于接收预设软件测试程序发送的输出数据及输出数据ID。
可选地,当组件类型为分支控制类型时,待处理数据为逻辑表达式,测试模块903,可以包括:
逻辑判断子模块,用于利用预设软件测试程序确定逻辑表达式的逻辑值,并从待处理条目中提取逻辑值对应的下一执行节点信息条目。
可选地,当组件类型为循环控制类型时,入参数据为循环次数,拼装子模块,可以包括:
循环控制逻辑表达式拼装单元,用于将循环次数填写至预设数据模板及自定义数据模板中,并对完成填写的预设数据模板及自定义数据模板进行拼接,得到用于确定循环次数是否大于预设值的循环控制逻辑表达式;
相应的,测试模块903,可以包括:
循环控制子模块,用于利用分支控制类型对应的预设软件测试程序确定循环控制逻辑表达式的循环逻辑值,更新循环次数,并从待处理条目中提取循环逻辑值对应的下一执行节点信息条目。
可选地,当组件类型为循环控制类型时,入参数据为测试用例的实际结果、预期结果及断言方式,将拼装子模块,可以包括:
断言逻辑表达式拼装单元,用于将实际结果、预期结果及断言方式填写至预设数据模板及自定义数据模板中,并对完成填写的预设数据模板及自定义数据模板进行拼接,得到用于确定测试用例是否测试成功的断言逻辑表达式;
相应的,测试模块903,可以包括:
断言子模块,用于利用分支控制类型对应的预设软件测试程序确定断言逻辑表达式的断言逻辑值,并根据断言逻辑值确定测试用例是否测试成功。
本发明实施例还提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上述的软件测试方法的步骤。
由于电子设备部分的实施例与软件测试方法部分的实施例相互对应,因此电子设备部分的实施例请参见软件测试方法部分的实施例的描述,这里暂不赘述。
本发明实施例还提供一种存储介质,存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述任意实施例的软件测试方法的步骤。
由于存储介质部分的实施例与软件测试方法部分的实施例相互对应,因此存储介质部分的实施例请参见软件测试方法部分的实施例的描述,这里暂不赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的一种软件测试方法、装置、电子设备及存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (10)
1.一种软件测试方法,其特征在于,包括:
在接收到测试用例的用例配置信息时,将所述用例配置信息中的首个执行节点信息条目设置为待处理条目;
根据所述待处理条目中的组件类型查找对应的预设组件信息条目,并利用所述预设组件信息条目中的预设数据模板及所述待处理条目中的配置信息拼装待处理数据;
利用所述预设组件信息条目对应的预设软件测试程序处理所述待处理数据;
在确定所述待处理条目具有对应的下一执行节点信息条目时,将所述待处理条目更新为将所述下一执行节点信息条目,并进入所述根据所述待处理条目中的组件类型查找对应的预设组件信息条目的步骤;
在确定所述待处理条目不具有所述下一执行节点信息条目时,退出流程。
2.根据权利要求1所述的软件测试方法,其特征在于,所述利用所述预设组件信息条目中的预设数据模板及所述待处理条目中的配置信息拼装待处理数据,包括:
从所述配置信息中提取自定义数据模板及入参数据;
将所述入参数据填写至所述预设数据模板及所述自定义数据模板中,并对完成填写的预设数据模板及自定义数据模板进行拼接,得到所述待处理数据。
3.根据权利要求2所述的软件测试方法,其特征在于,所述从所述配置信息中提取入参数据,包括:
从所述配置信息中提取所述入参数据ID,并根据所述入参数据ID从所述用例配置信息中的参数池中提取对应的测试数据;
相应的,所述利用所述预设组件信息条目对应的预设软件测试程序处理所述待处理数据,包括:
利用所述预设组件信息条目对应的预设软件测试程序处理所述待处理数据,得到输出数据及对应的输出数据ID;
利用所述输出数据和所述输出数据ID在所述参数池中更新对应的测试数据。
4.根据权利要求3所述的软件测试方法,其特征在于,当所述组件类型为通用组件类型时,所述待处理数据为请求信息,所述利用所述预设组件信息条目对应的预设软件测试程序处理所述待处理数据,得到输出数据及对应的输出数据ID,包括:
将所述请求信息发送至所述预设软件测试程序,以使所述预设软件测试程序将所述请求信息发送至目标设备,并从所述目标设备的响应信息中提取所述输出数据及确定输出数据ID;
接收所述预设软件测试程序发送的所述输出数据及所述输出数据ID。
5.根据权利要求2所述的软件测试方法,其特征在于,当所述组件类型为分支控制类型时,所述待处理数据为逻辑表达式,所述利用所述预设组件信息条目对应的预设软件测试程序处理所述待处理数据,包括:
利用所述预设软件测试程序确定所述逻辑表达式的逻辑值,并从所述待处理条目中提取所述逻辑值对应的下一执行节点信息条目。
6.根据权利要求5所述的软件测试方法,其特征在于,当所述组件类型为循环控制类型时,所述入参数据为循环次数,所述将所述入参数据填写至所述预设数据模板及所述自定义数据模板中,并对完成填写的预设数据模板及自定义数据模板进行拼接,得到所述待处理数据,包括:
将所述循环次数填写至所述预设数据模板及所述自定义数据模板中,并对完成填写的预设数据模板及自定义数据模板进行拼接,得到用于确定所述循环次数是否大于预设值的循环控制逻辑表达式;
相应的,所述利用所述预设组件信息条目对应的预设软件测试程序处理所述待处理数据,包括:
利用所述分支控制类型对应的预设软件测试程序确定所述循环控制逻辑表达式的循环逻辑值,更新所述循环次数,并从所述待处理条目中提取所述循环逻辑值对应的下一执行节点信息条目。
7.根据权利要求5所述的软件测试方法,其特征在于,当所述组件类型为循环控制类型时,所述入参数据为所述测试用例的实际结果、预期结果及断言方式,所述将所述入参数据填写至所述预设数据模板及所述自定义数据模板中,并对完成填写的预设数据模板及自定义数据模板进行拼接,得到所述待处理数据,包括:
将所述实际结果、所述预期结果及所述断言方式填写至所述预设数据模板及所述自定义数据模板中,并对完成填写的预设数据模板及自定义数据模板进行拼接,得到用于确定所述测试用例是否测试成功的断言逻辑表达式;
相应的,所述利用所述预设组件信息条目对应的预设软件测试程序处理所述待处理数据,包括:
利用所述分支控制类型对应的预设软件测试程序确定所述断言逻辑表达式的断言逻辑值,并根据所述断言逻辑值确定所述测试用例是否测试成功。
8.一种软件测试装置,其特征在于,包括:
设置模块,用于在接收到测试用例的用例配置信息时,将所述用例配置信息中的首个执行节点信息条目设置为待处理条目;
拼装模块,用于根据所述待处理条目中的组件类型查找对应的预设组件信息条目,并利用所述预设组件信息条目中的预设数据模板及所述待处理条目中的配置信息拼装待处理数据;
测试模块,用于利用所述预设组件信息条目对应的预设软件测试程序处理所述待处理数据;
更新模块,用于在确定所述待处理条目具有对应的下一执行节点信息条目时,将所述待处理条目更新为将所述下一执行节点信息条目,并进入所述根据所述待处理条目中的组件类型查找对应的预设组件信息条目的步骤;
退出模块,用于在确定所述待处理条目不具有所述下一执行节点信息条目时,退出流程。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的软件测试方法。
10.一种存储介质,其特征在于,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如权利要求1至7任一项所述的软件测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210061315.1A CN114238151A (zh) | 2022-01-19 | 2022-01-19 | 一种软件测试方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210061315.1A CN114238151A (zh) | 2022-01-19 | 2022-01-19 | 一种软件测试方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114238151A true CN114238151A (zh) | 2022-03-25 |
Family
ID=80746885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210061315.1A Pending CN114238151A (zh) | 2022-01-19 | 2022-01-19 | 一种软件测试方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114238151A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114936152A (zh) * | 2022-05-07 | 2022-08-23 | 阿里巴巴(中国)有限公司 | 应用测试方法及设备 |
CN115248585A (zh) * | 2022-09-20 | 2022-10-28 | 平安银行股份有限公司 | 基于控制器引擎的自动化测试执行方法、控制器及*** |
-
2022
- 2022-01-19 CN CN202210061315.1A patent/CN114238151A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114936152A (zh) * | 2022-05-07 | 2022-08-23 | 阿里巴巴(中国)有限公司 | 应用测试方法及设备 |
CN115248585A (zh) * | 2022-09-20 | 2022-10-28 | 平安银行股份有限公司 | 基于控制器引擎的自动化测试执行方法、控制器及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110427331B (zh) | 基于接口测试工具自动生成性能测试脚本的方法 | |
CN111026645B (zh) | 用户界面自动化测试方法、装置、存储介质及电子设备 | |
CN114238151A (zh) | 一种软件测试方法、装置、电子设备及存储介质 | |
CN110633200A (zh) | 用于测试智能合约的方法和设备 | |
CN109359045B (zh) | 一种测试方法、装置、设备和存储介质 | |
US20210103514A1 (en) | Reusable test cases for identifiable patterns | |
CN108874649B (zh) | 自动化测试脚本的生成方法、装置及其计算机设备 | |
CN111181805B (zh) | 一种基于测试用例的微服务测试挡板生成方法及*** | |
CN112181749A (zh) | 硬件测试方法、装置、电子设备和存储介质 | |
CN108304164B (zh) | 一种业务逻辑的开发方法及开发*** | |
CN111580821B (zh) | 脚本绑定方法、装置、电子设备及计算机可读存储介质 | |
CN111427784A (zh) | 一种数据获取方法、装置、设备及存储介质 | |
CN117632710A (zh) | 测试代码的生成方法、装置、设备及存储介质 | |
CN113468212A (zh) | 事件执行的方法、装置及电子设备 | |
CN109491919B (zh) | 一种软件测试方法及测试平台 | |
US6993749B2 (en) | Conditional debug monitors | |
CN108132799B (zh) | 过程间静态程序分析信息提取方法、装置及设备 | |
CN116719735A (zh) | 一种测试用例生成方法及装置 | |
CN114297088A (zh) | 前端vue框架组件的测试方法、装置、设备及介质 | |
CN112181816A (zh) | 一种基于场景的接口测试方法、装置、计算机设备及介质 | |
CN114416531A (zh) | 一种测试数据生成方法、装置、设备及介质 | |
CN113656322A (zh) | 数据处理方法、装置、电子设备及计算机存储介质 | |
CN113886216A (zh) | 接口测试和工具配置方法、装置、电子设备和存储介质 | |
CN110647314A (zh) | 技能生成方法、装置及电子设备 | |
CN113608996B (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 |