CN112650683A - 程序测试方法、设备以及存储介质 - Google Patents
程序测试方法、设备以及存储介质 Download PDFInfo
- Publication number
- CN112650683A CN112650683A CN202011586508.6A CN202011586508A CN112650683A CN 112650683 A CN112650683 A CN 112650683A CN 202011586508 A CN202011586508 A CN 202011586508A CN 112650683 A CN112650683 A CN 112650683A
- Authority
- CN
- China
- Prior art keywords
- test
- node
- testing
- request
- 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.)
- Pending
Links
- 238000012360 testing method Methods 0.000 claims abstract description 798
- 238000000034 method Methods 0.000 claims description 34
- 238000012545 processing Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 5
- 238000012800 visualization Methods 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 4
- BUGBHKTXTAQXES-UHFFFAOYSA-N Selenium Chemical compound [Se] BUGBHKTXTAQXES-UHFFFAOYSA-N 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229910052711 selenium Inorganic materials 0.000 description 1
- 239000011669 selenium Substances 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
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
-
- 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)
- 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
技术领域
本申请涉及计算机技术领域,尤其涉及一种程序测试方法、设备以及存储介质。
背景技术
程序测试是指在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
程序测试主要是对用户界面、程序调用接口以及操作数据表三种类型节点进行测试。通常情况,测试人员仅使用Web应用程序的自动化测试工具或者跨平台应用程序的自动测试化工具,并结合自动化的测试框架编写测试一种类型节点的测试代码,以校验其中一种类型节点。例如:使用Web应用程序的自动化测试工selenium和自动化的测试框架TestNg编写测试用户界面的测试代码。又例如:使用跨平台应用程序的自动测试化工具appium和自动化的测试框架TestNg编写测试程序调用接口或者操作数据表的测试代码。
然而,采用单独测试程序内某类节点的方式,无法实现对程序从前端用户界面至后端操作数据表整个数据流的测试,容易出现测试结果不准确。
发明内容
本申请实施例提供一种程序测试方法、设备以及存储介质,旨在提供一种可以实现连续对程序从前端用户界面至后端操作数据表整个数据流的测试方案,提高测试结果的准确性。
第一方面,本申请提供一种程序测试方法,方法应用于测试服务器,方法包括:
获取目标程序的当前测试节点的测试结果,并获取当前测试节点和下一测试节点之间调用关系,其中,目标程序包括多个测试节点;
若测试结果和调用关系满足预设测试要求,对目标程序的下一测试节点进行测试;
使用下一测试节点更新当前测试节点,并重复获取目标程序的当前测试节点的测试结果,并获取当前测试节点和下一测试节点之间调用关系,以及若测试结果和调用关系满足预设测试要求,对目标程序的下一测试节点进行测试,直至当前测试节点为末端测试节点。
可选地,若测试结果和调用关系满足预设测试要求,对目标程序的下一测试节点进行测试,具体包括:
若调用关系表示存在数据调用,且结果标识表示通过测试时,根据回调数据对目标程序的下一测试节点进行测试;
若调用关系表示不存在数据调用,对目标程序的下一测试节点进行测试;
其中,测试结果包括回调数据和结果标识。
在上述实施例中,若当前测试节点和下一测试节点之间存在调用关系,也就是当前测试节点的测试结果会影响下一测试节点,则需要当前测试节点的测试结果为通过测试时,根据当前测试节点的回调数据对下一测试节点进行测试。若当前测试节点和下一测试节点之间没有调用关系,则仅需对下一测试节点进行测试,可以适应不同代码结构的程序进行测试。
可选地,根据回调数据对目标程序的下一测试节点进行测试,具体包括:
从目标程序的请求模板集合中确定下一测试节点的测试请求模板;
根据回调数据和测试请求模板生成下一测试节点的测试请求;
向目标服务器发送测试请求,以使目标服务器根据测试请求运行下一测试节点对应的程序代码;
接收目标服务器返回的下一测试节点的测试结果。
在上述实施例中,在对下一测试节点进行测试时,从请求模板集合中确定下一测试节点的测试请求模板,再根据回调数据和测试请求模板生成测试请求,通过向目标服务器发送测试请求,由目标服务器对下一测试节点对应的程序代码进行测试,可以适应多种不同类型的测试节点。
可选地,对目标程序的下一测试节点进行测试,具体包括:
从目标程序的请求模板集合中确定下一测试节点的测试请求模板;
根据测试请求模板生成下一测试节点的测试请求;
向目标服务器发送测试请求,以使目标服务器根据测试请求运行下一测试节点对应的程序代码;
接收目标服务器返回的下一测试节点的测试结果。
在上述实施例中,在对下一测试节点进行测试时,从请求模板集合中确定下一测试节点的测试请求模板,再根据测试请求模板生成测试请求,通过向目标服务器发送测试请求,由目标服务器对下一测试节点对应的程序代码进行测试,可以适应多种不同类型的测试节点。
可选地,方法还包括:
针对每个测试节点,根据测试节点的节点类型从预设底层请求模板集合中确定测试节点的底层请求模板;
接收用户输入的测试节点的测试参数,并根据测试节点的测试参数和底层请求模板确定测试节点的测试请求模板;
其中,请求模板集合包括多个测试请求模板。
在上述实施例中,根据目标程序的各个测试节点的源代码和底层请求模板进行测试请求模板的适配,以适应不同目标测序的测试。
可选地,在根据测试节点的源代码和底层请求模板确定测试请求模板之后,方法还包括:
接收用户输入的各个测试节点的测试请求模板之间的测试流转顺序;
根据测试流转顺序生成测试节点的测试流转视图数据;
在测试服务器的显示单元上显示测试流转视图数据对应的流转视图。
在上述实施例中,根据测试节点的测试请求模板之间调用关系生成测试流转视图,实现测试过程可视化。
可选地,并获取当前测试节点和下一测试节点之间调用关系,具体包括:
根据各个测试节点的测试请求模板之间的测试流转顺序,确定当前测试节点和下一测试节点之间调用关系。
可选地,方法还包括:
若调用关系表示存在数据调用,且结果标识表示测试失败时,在测试服务器的显示单元上显示测试失败的提示信息。
第二方面,本申请提供一种程序测试装置,装置包括:
获取模块,用于获取目标程序的当前测试节点的测试结果,并获取当前测试节点和下一测试节点之间调用关系,其中,目标程序包括多个测试节点;
处理模块,用于若测试结果和调用关系满足预设测试要求,对目标程序的下一测试节点进行测试;
使用下一测试节点更新当前测试节点,并重复获取目标程序的当前测试节点的测试结果,并获取当前测试节点和下一测试节点之间调用关系,以及若测试结果和调用关系满足预设测试要求,对目标程序的下一测试节点进行测试,直至当前测试节点为末端测试节点。
可选地,处理模块具体用于:
若调用关系表示存在数据调用,且结果标识表示通过测试时,根据回调数据对目标程序的下一测试节点进行测试;
若调用关系表示不存在数据调用,对目标程序的下一测试节点进行测试;
其中,测试结果包括回调数据和结果标识。
可选地,处理模块具体用于:
从目标程序的请求模板集合中确定下一测试节点的测试请求模板;
根据回调数据和测试请求模板生成下一测试节点的测试请求;
向目标服务器发送测试请求,以使目标服务器根据测试请求运行下一测试节点对应的程序代码;
接收目标服务器返回的下一测试节点的测试结果。
可选地,处理模块具体用于:
从目标程序的请求模板集合中确定下一测试节点的测试请求模板;
根据测试请求模板生成下一测试节点的测试请求;
向目标服务器发送测试请求,以使目标服务器根据测试请求运行下一测试节点对应的程序代码;
接收目标服务器返回的下一测试节点的测试结果。
第三方面,本申请提供一种测试服务器,包括:存储器,处理器;
存储器;用于存储处理器可执行指令的存储器;
其中,处理器被配置为实现如第一方面及可选方案所涉及的程序测试方法。
第四方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现第一方面及可选方案所涉及的程序测试方法。
第五方面,本申请提供一种计算机程序产品,包括指令,指令被处理器执行时实现第一方面及可选方案所涉及的程序测试方法。
本申请实施例提供一种程序测试方法、设备以及存储介质,获取上一测试节点的测试结果以及上一测试节点和当前测试节点之间的调用关系,若满足测试要求,则继续对下一测试节点进行测试,直至完成对末端测试节点的测试,进而实现对目标程序整个数据流进行测试,提高测试结果的准确度。另外,若测试结果和调用关系满足测试要求后生成测试请求,以使目标服务器可以根据测试请求对相应测试节点进行测试。由测试服务器作为调度平台,触发每个测试节点的测试,并由目标服务器进行测试节点的测试,使得本方案可以适应任意结构的目标程序的测试过程。此外,用户通过输入各个测试节点的测试参数可以灵活为不同目标程序配置测试请求模板,可适应不同目标程序的测试,无需重新编码适应不同目标程序,对测试人员的要求降低。
附图说明
图1为本申请一实施例提供的测试系统的结构示意图;
图2为本申请提供的程序测试方法的发明构思的示意图;
图3为本申请另一实施例提供的程序测试方法的流程示意图;
图4为本申请另一实施例提供的程序测试方法的流程示意图;
图5为本申请另一实施例提供的测试流转视图的示意图;
图6为本申请另一实施例提供的单个测试节点的测试流程示意图;
图7为本申请另一实施例提供的程序测试装置的结构示意图;
图8为本申请另一实施例提供的测试服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
程序测试主要是对目标程序中三种类型节点进行测试。具体是对用户界面、程序调用接口以及操作数据表三种类型进行测试。通常情况,测试人员针对每一种类型的测试节点编写测试代码,以对每个测试节点进行测试。
然而,采用单独测试程序内某类节点的方式,无法实现对程序从前端用户界面至后端操作数据表整个数据流的测试,容易出现测试结果不准确。另外,针对不同目标程序,测试人员需要编写不同测试代码,测试代码适应性低,对测试人员要求高。另外,无法实现测试过程的可视化,需要测试人员查看测试代码的调用逻辑。
如图1所示,本申请实施例提供的测试系统包括测试服务器101和目标服务器102。其中,测试服务器101和目标服务器102之间通信连接。目标服务器102用于对各个测试节点进行测试。测试服务器101用于接收目标服务器返回的当前测试节点的测试结果,并触发下一个测试节点的测试。测试服务器还用于配置目标程序的各个测试节点的测试请求模板,以适应不同代码结构的目标程序的测试过程。
如图2所示,测试服务器作为目标层序的测试调度平台,可以实现触发目标服务器对用户界面、程序调用接口以及操作数据表三种类型的测试节点进行测试。在进行程序测试前,将各个测试节点的组件拖拽至显示单元上显示的工作区域,并根据各个测试节点的流转关系将各个测试节点的组件串联成测试流转试图,并将测试流转试图的试图数据保存至测试服务器的存储空间内。
在对目标程序进行测试时,在显示单元上显示测试流转试图,通过在显示单元上点击触发控件,触发目标测试程序的测试过程。若触发至相应测试节点,则根据上一测试节点的测试结果和测试请求模板生成测试请求。目标服务器通过解析测试请求确定测试节点的节点类型。根据节点类型确定执行引擎。并将该测试接节点的代码和回调数据输入相应引擎,由相应引擎进行测试,返回相应的测试结果。若测试节点的节点类型为用户界面,则执行引擎为WEB引擎。若测试节点的节点类型为程序调用接口,则执行引擎为接口引擎。若测试节点的节点类型为操作数据表,则执行引擎为数据库引擎。
如图3所示,本申请一实施例提供一种程序测试方法,该程序测试方法应用于测试服务器。该程序测试方法包括如下步骤:
S201、获取目标程序的当前测试节点的测试结果,并获取当前测试节点和下一测试节点之间调用关系。
其中,对目标程序的源程序代码进行分析确定目标程序包含的多个测试节点,测试节点的节点类型包括用户界面、程序调用接口以及操作数据表。
当前测试节点的测试结果包括结果标识和回调数据,结果标识用于指示当前测试节点是否通过测试。回调数据是在对当前测试节点进行测试生成的结果数据。
当前测试节点和下一测试节点之间调用关系是指下一测试节点是否需要使用当前测试节点在测试过程中生成的回调数据进行测试。若下一测试节点不需要使用当前测试节点在测试过程中生成的回调数据,则调用关系为不存在数据调用。若下一测试节点需要使用当前测试节点在测试过程中生成的回调数据,则调用关系为存在数据调用。
S202、判断测试结果和调用关系是否满足预设测试要求,若是,进入S203,否则,进入S206。
其中,若调用关系为不存在数据调用,则表示满足预设测试要求。若调用关系为存在数据调用且测试结果中结果标识指示通过测试,也表示满足预设测试要求。若测试结果和调用关系满足预设测试要求,则进入S203,继续对下一测试节点进行测试。
若调用关系为存在数据调用,且测试结果中结果标识指示测试失败,则表示不满足预设测试要求。若测试结果和调用关系无法满足预设测试要求,则进入S206,停止测试。
S203、对目标程序的下一测试节点进行测试。
其中,若当前测试节点的测试结果和当前测试节点和下一测试节点之间调用关系满足测试条件,则目标程序的下一测试节点进行测试,获得下一测试节点的测试结果。
S204、使用下一测试节点更新当前测试节点。
其中,将下一测试节点作为当前测试节点。
S205、判断当前测试节点是否为末端测试节点,若是,则进入S206,否则返回S201。
S206、停止测试。
其中,若当前测试节点为末端测试节点,则停止测试。
在本申请实施例提供的程序测试方法中,获取当前测试节点的测试结果以及当前测试节点和下一测试节点之间调用关系,判断测试结果和调用关系是否满足测试要求,若满足测试要求,则继续对下一测试节点进行测试,直至完成对末端测试节点的测试,进而实现对目标程序整个数据流进行测试,提高测试结果的准确度。
如图4所示,本申请一实施例提供程序测试方法,该程序测试方法应用于测试系统。该程序测试方法包括如下步骤:
S301、根据每个测试节点的节点类型从预设底层请求模板集合中确定每个测试节点的底层请求模板。
其中,不同程序中同一类型测试节点的代码结构都相似,可以提取该类型测试节点的代码中相同部分生成底层请求模板。针对每一种节点类型,可以生成相应的底层请求模板,构成预设底层请求模板集合。
通过分析目标程序的源代码确定目标程序的测试节点以及各个测试节点的节点类型。并根据每个测试节点的节点类型从预设底层请求模板集合中确定测试节点的底层请求模板。
针对程序调用接口的测试节点,生成底层请求模板如下所示:
{
"reqUUID":"××××××××";/测试请求唯一标识
"model":"××××";/程序调用接口的作用
"continueWhenError":×;/出现错误时是否继续
"needReturnData":×;/是否需要返回回调数据
}
S302、接收用户输入的测试节点的测试参数,并根据测试节点的测试参数和底层请求模板确定测试节点的测试请求模板。
其中,对目标程序进行分析获得每个测试节点的测试参数,并通过显示单元输入每个测试节点的测试参数,测试参数包括以下至少一项:测试节点的作用、是否存在回调数据以及若上一测试节点的结果标识指示测试失败是否继续测试。
在获得每个测试节点的测试参数后,根据每个测试节点的测试参数和每个测试节点的底层请求模板确定每个测试节点的测试请求模板。并根据所有测试节点的测试请求模板构建请求模板集合。
例如:目标程序用于实现购买保险,通过分析目标程序的源代码可以确定目标程序包括如下测试节点:保险产品详情的用户界面、保险产品录单的用户界面、支付订单的程序调用节点、异步出单的程序调用节点、检查订单数据表以及检查核保数据表。
以支付订单的程序调用接口为例,该测试节点的节点类型为程序调用接口,测试节点用于实现支付订单,该测试节点与下一测试节点之间存在数据调用关系,并会返回回调数据。根据程序调用接口的测试节点的源代码和底层请求模板确定测试节点的测试请求模板如下:
{
"reqUUID":"392323IOO23IO3";
"model":"支付订单";
"continueWhenError":false;
"needReturnData":true;
}
S303、接收用户输入的各个测试节点的测试请求模板之间的测试流转顺序。
其中,各个测试节点的测试请求模板之间的测试流转顺序用于表示各个测试节点之间数据调用关系,各个测试节点之间数据调用关系是通过对目标程序的源代码进行分析获得的。
S304、根据测试流转顺序生成测试节点的测试流转视图数据。
其中,在获得各个测试节点的测试请求模板之间的测试流转顺序后,可以根据各个测试节点的测试请求模板之间的测试流转顺序生成测试节点的测试流转视图数据,进而可以在测试服务器的显示单元上显示流转试图。
S305、在测试服务器的显示单元上显示测试流转视图数据对应的流转视图。
其中,测试流转视图数据可以反映各个测试节点的测试流转顺序,通过在在测试服务器的显示单元上显示测试流转视图数据对应的流转视图,可以实现测试过程的可视化。在本实施例中可使用现有方式在显示单元上显示流转视图。
继续以用于购买保险的目标程序,可以在显示单元上显示如图5所示视图,以实现测试过程可视化。
在获得目标程序的所有测试节点的测试请求模板以及测试节点的测试流转试图后,可以继续根据测试请求模板生成测试请求,触发目标程序进行相应测试。该过程已经在S201至S206中详细说明,此次不再赘述。
在本申请实施例提供的程序测试方法中,可以根据各个测试节点的测试参数配置目标程序的测试请求模板,可以适应任意目标程序,无需重新编写测试代码。通过测试节点的测试流转顺序生成测试流转试图数据,实现测试过程可视化。
本申请另一实施例提供一种程序测试方法,该程序测试方法应用于上述测试系统,该测试方法包括如下步骤:
S401、获取目标程序的当前测试节点的测试结果,并获取当前测试节点和下一测试节点之间调用关系。
其中,构建如下测试结果的代码,可将每个测试节点的测试结果存在如下结构中:
{
"reqUUID":"××××××××",/测试请求唯一标识
"code":×,/结果标识
"data":"××××××××"/回调数据
}
测试请求唯一标识用于确定该测试结果所对应的测试节点。
在用户输入各个测试节点的测试请求模板之间的测试流转顺序后,可根据各个测试节点的测试请求模板之间的测试流转顺序确定当前测试节点和下一测试节点之间调用关系。
测试结果包括回调数据和结果标识。结果标识指示通过测试或者测试失败,当前测试节点和下一测试节点之间调用关系为存在数据调用或者不存在数据调用。若当前测试节点和下一测试节点之间调用关系为存在数据调用,则测试结果中回调数据不为空。若当前测试节点和下一测试节点之间调用关系为不存在数据调用,则测试结果中回调数据为空。
测试结果和调用关系可以组合成四种情况。第一种情况:调用关系为不存在数据调用且测试结果为测试失败。第二种情况:调用关系为不存在数据调用且测试结果为通过测试。第三种情况:调用关系为存在数据调用且测试结果为通过测试。第四种情况:调用关系为存在数据调用且测试结果为测试失败。
S402、判断测试结果和调用关系是否满足预设测试要求,若是,进入S403,否则,进入S406。
其中,第一种情况、第二种情况以及第三种情况均满足预设测试要求,第四种情况不满足预设测试要求。
S403、对目标程序的下一测试节点进行测试。
其中,针对第一种情况和第二种情况,对目标程序的下一测试节点进行测试。针对第三种情况,根据回调数据对目标程序的下一测试节点进行测试。
如图6所示,针对第三种情况,对目标程序的下一测试节点进行测试具体包括:
S4001、测试服务器从目标程序的请求模板集合中确定下一测试节点的测试请求模板。
其中,目标程序的请求模板集合包含所有测试节点的测试请求模板,测试服务器确定下一测试节点的节点标识,并根据节点标识从请求模板集合中查找出下一测试节点的测试请求模板。
S4002、测试服务器根据回调数据和测试请求模板生成下一测试节点的测试请求。
其中,当前测试节点和下一测试节点之间存在数据调用,也就是对下一测试节点进行测试时需要使用当前测试节点的测试结果中回调数据。测试服务器根据当前测试节点的测试结果中回调数据和测试请求模板生成下一测试节点的测试请求,以使目标服务器根据该测试请求对下一测试节点进行测试。
S4003、测试服务器向目标服务器发送测试请求。
S4004、目标服务器根据测试请求运行下一测试节点对应的程序代码。
其中,目标服务器从测试请求中解析出测试节点的节点标识和回调数据,根据测试节点的节点标识从目标程序的程序代码中确定下一测试节点对应的程序代码,将该回调数据代入下一测试节点对应的程序代码中进行测试获得测试结果,并将测试结果写入测试结果的代码结构中。
S4005、测试服务器接收目标服务器返回的下一测试节点的测试结果。
针对第一种情况和第二种情况,对目标程序的下一测试节点进行测试具体包括:
S5001、测试服务器从目标程序的请求模板集合中确定下一测试节点的测试请求模板。
其中,S5001已经在S4001中详细说明,此次不再赘述。
S5002、测试服务器根据测试请求模板生成下一测试节点的测试请求。
其中,当前测试节点和下一测试节点之间不存在数据调用,也就是对下一测试节点进行测试时无需使用当前测试节点的测试结果中回调数据。测试服务器根据当测试请求模板生成下一测试节点的测试请求,以使目标服务器根据该测试请求对下一测试节点进行测试。
S5003、测试服务器向目标服务器发送测试请求。
S5004、目标服务器根据测试请求运行下一测试节点对应的程序代码。
S5005、测试服务器接收目标服务器返回的下一测试节点的测试结果。
其中,S5003至S5005已经在S4003至S4005中详细说明,此次不再赘述。
S404、使用下一测试节点更新当前测试节点。
其中,将下一测试节点作为当前测试节点。
S405、判断当前测试节点是否为末端测试节点,若是,则进入S407,否则返回S401。
S406、在测试服务器的显示单元上显示测试失败的提示信息。
其中,若调用关系表示存在数据调用,且结果标识表示测试失败时,在测试服务器的显示单元上显示测试失败的提示信息。
S407、停止测试。
在本申请实施例提供的程序测试方法中,获取上一测试节点的测试结果以及上一测试节点和当前测试节点之间的调用关系,若测试结果和调用关系满足测试要求后生成测试请求,以使目标服务器可以根据测试请求对相应测试节点进行测试。由测试服务器作为调度平台,触发每个测试节点的测试,并由目标服务器进行测试节点的测试,使得本方案可以适应任意结构的目标程序的测试过程。
如图7所示,本申请实施例提供一种程序测试装置500,该程序测试装置500包括:
获取模块501,用于获取目标程序的当前测试节点的测试结果,并获取当前测试节点和下一测试节点之间调用关系,其中,目标程序包括多个测试节点;
处理模块502,用于若测试结果和调用关系满足预设测试要求,对目标程序的下一测试节点进行测试;
处理模块502还用于重复使用下一测试节点更新当前测试节点,获取目标程序的当前测试节点的测试结果,并获取当前测试节点和下一测试节点之间调用关系,以及若测试结果和调用关系满足预设测试要求,对目标程序的下一测试节点进行测试,直至当前测试节点为末端测试节点。
可选地,处理模块502具体用于:
若调用关系表示存在数据调用,且结果标识表示通过测试时,根据回调数据对目标程序的下一测试节点进行测试;
若调用关系表示不存在数据调用,对目标程序的下一测试节点进行测试;
其中,测试结果包括回调数据和结果标识。
可选地,处理模块502具体用于:
从目标程序的请求模板集合中确定下一测试节点的测试请求模板;
根据回调数据和测试请求模板生成下一测试节点的测试请求;
向目标服务器发送测试请求,以使目标服务器根据测试请求运行下一测试节点对应的程序代码;
接收目标服务器返回的下一测试节点的测试结果。
可选地,处理模块502具体用于:
从目标程序的请求模板集合中确定下一测试节点的测试请求模板;
根据测试请求模板生成下一测试节点的测试请求;
向目标服务器发送测试请求,以使目标服务器根据测试请求运行下一测试节点对应的程序代码;
接收目标服务器返回的下一测试节点的测试结果。
可选地,处理模块502还用于:
根据每个测试节点的节点类型从预设底层请求模板集合中确定每个测试节点的底层请求模板;
根据每个测试节点的源代码和每个测试节点的底层请求模板确定每个测试节点的测试请求模板;其中,请求模板集合包括多个测试请求模板。
可选地,处理模块502还用于:
根据目标程序的源代码结构确定各个测试节点的测试请求模板之间的测试流转顺序;
根据测试流转顺序生成测试节点的测试流转视图数据;
在测试服务器的显示单元上显示测试流转视图数据对应的流转视图。
可选地,获取模块501具体用于:
根据各个测试节点的测试请求模板之间的测试流转顺序,确定当前测试节点和下一测试节点之间调用关系。
可选地,处理模块502具体用于:
若调用关系表示存在数据调用,且结果标识表示测试失败时,在测试服务器的显示单元上显示测试失败的提示信息。
如图8所示,本申请另一实施例提供的测试服务器600包括:发送器601、接收器602、存储器603、及处理器604。
其中,发送器601用于发送指令和数据,接收器602用于接收指令和数据,存储器603用于存储计算机执行指令,处理器604,用于执行存储器存储的计算机执行指令,以实现上述实施例中程序测试方法所执行的各个步骤。具体可以参见前述程序测试方法实施例中的相关描述。
可选地,上述存储器603既可以是独立的,也可以跟处理器604集成在一起。当存储器603独立设置时,该处理设备还包括总线,用于连接存储器603和处理器604。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现如上处理设备所执行的程序测试方法。
本申请实施例还提供一种计算机程序产品,包括指令,指令被处理器执行时实现如上处理设备所执行的程序测试方法。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (15)
1.一种程序测试方法,其特征在于,所述方法应用于测试服务器,所述方法包括:
获取目标程序的当前测试节点的测试结果,并获取所述当前测试节点和下一测试节点之间调用关系,其中,所述目标程序包括多个测试节点;
若所述测试结果和所述调用关系满足预设测试要求,对所述目标程序的下一测试节点进行测试;
重复使用所述下一测试节点更新所述当前测试节点,获取目标程序的当前测试节点的测试结果,并获取所述当前测试节点和下一测试节点之间调用关系,以及若所述测试结果和所述调用关系满足预设测试要求,对所述目标程序的下一测试节点进行测试,直至所述当前测试节点为末端测试节点。
2.根据权利要求1所述的方法,其特征在于,若所述测试结果和所述调用关系满足预设测试要求,对所述目标程序的下一测试节点进行测试,具体包括:
若所述调用关系表示存在数据调用,且所述结果标识表示通过测试时,根据回调数据对所述目标程序的下一测试节点进行测试;
若所述调用关系表示不存在数据调用,对所述目标程序的下一测试节点进行测试;
其中,所述测试结果包括所述回调数据和所述结果标识。
3.根据权利要求2所述的方法,其特征在于,根据所述回调数据对所述目标程序的下一测试节点进行测试,具体包括:
从所述目标程序的请求模板集合中确定下一测试节点的测试请求模板;
根据所述回调数据和所述测试请求模板生成下一测试节点的测试请求;
向目标服务器发送所述测试请求,以使所述目标服务器根据所述测试请求运行所述下一测试节点对应的程序代码;
接收所述目标服务器返回的所述下一测试节点的测试结果。
4.根据权利要求2所述的方法,其特征在于,对所述目标程序的下一测试节点进行测试,具体包括:
从所述目标程序的请求模板集合中确定下一测试节点的测试请求模板;
根据所述测试请求模板生成下一测试节点的测试请求;
向目标服务器发送所述测试请求,以使所述目标服务器根据所述测试请求运行所述下一测试节点对应的程序代码;
接收所述目标服务器返回的下一测试节点的测试结果。
5.根据权利要求1至4中任意一项所述的方法,其特征在于,所述方法还包括:
针对每个测试节点,根据所述测试节点的节点类型从预设底层请求模板集合中确定所述测试节点的底层请求模板;
接收用户输入的所述测试节点的测试参数,并根据所述测试节点的测试参数和所述底层请求模板确定所述测试节点的测试请求模板;
其中,所述请求模板集合包括多个所述测试请求模板。
6.根据权利要求5所述的方法,其特征在于,在接收用户输入的所述测试节点的测试参数,并根据所述测试节点的测试参数和所述底层请求模板确定所述测试节点的测试请求模板之后,所述方法还包括:
接收用户输入的各个测试节点的测试请求模板之间的测试流转顺序;
根据所述测试流转顺序生成所述测试节点的测试流转视图数据;
在所述测试服务器的显示单元上显示所述测试流转视图数据对应的流转视图。
7.根据权利要求1至4中任意一项所述的方法,其特征在于,并获取所述当前测试节点和下一测试节点之间调用关系,具体包括:
根据所述各个测试节点的测试请求模板之间的测试流转顺序,确定所述当前测试节点和下一测试节点之间调用关系。
8.根据权利要求1至4中任意一项所述的方法,其特征在于,所述方法还包括:
若所述调用关系表示存在数据调用,且所述结果标识表示测试失败时,在所述测试服务器的显示单元上显示测试失败的提示信息。
9.一种程序测试装置,其特征在于,所述装置包括:
获取模块,用于获取目标程序的当前测试节点的测试结果,并获取所述当前测试节点和下一测试节点之间调用关系,其中,所述目标程序包括多个测试节点;
处理模块,用于若所述测试结果和所述调用关系满足预设测试要求,对所述目标程序的下一测试节点进行测试;
处理模块,用于重复使用所述下一测试节点更新所述当前测试节点,获取目标程序的当前测试节点的测试结果,并获取所述当前测试节点和下一测试节点之间调用关系,以及若所述测试结果和所述调用关系满足预设测试要求,对所述目标程序的下一测试节点进行测试,直至所述当前测试节点为末端测试节点。
10.根据权利要求9所述的装置,其特征在于,所述处理模块具体用于:
若所述调用关系表示存在数据调用,且所述结果标识表示通过测试时,根据回调数据对所述目标程序的下一测试节点进行测试;
若所述调用关系表示不存在数据调用,对所述目标程序的下一测试节点进行测试;
其中,所述测试结果包括所述回调数据和所述结果标识。
11.根据权利要求10所述的装置,其特征在于,所述处理模块具体用于:
从所述目标程序的请求模板集合中确定下一测试节点的测试请求模板;
根据所述回调数据和所述测试请求模板生成下一测试节点的测试请求;
向目标服务器发送所述测试请求,以使所述目标服务器根据所述测试请求运行所述下一测试节点对应的程序代码;
接收所述目标服务器返回的所述下一测试节点的测试结果。
12.根据权利要求10所述的装置,其特征在于,所述处理模块具体用于:
从所述目标程序的请求模板集合中确定下一测试节点的测试请求模板;
根据所述测试请求模板生成下一测试节点的测试请求;
向目标服务器发送所述测试请求,以使所述目标服务器根据所述测试请求运行所述下一测试节点对应的程序代码;
接收所述目标服务器返回的下一测试节点的测试结果。
13.一种测试服务器,其特征在于,包括:存储器,处理器;
存储器;用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为实现如权利要求1至8中任一项所述的程序测试方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至8中任一项所述的程序测试方法。
15.一种计算机程序产品,包括指令,其特征在于,所述指令被处理器执行时实现权利要求1至8中任一项所述的程序测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011586508.6A CN112650683A (zh) | 2020-12-28 | 2020-12-28 | 程序测试方法、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011586508.6A CN112650683A (zh) | 2020-12-28 | 2020-12-28 | 程序测试方法、设备以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112650683A true CN112650683A (zh) | 2021-04-13 |
Family
ID=75363838
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011586508.6A Pending CN112650683A (zh) | 2020-12-28 | 2020-12-28 | 程序测试方法、设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112650683A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108984389A (zh) * | 2018-06-01 | 2018-12-11 | 平安科技(深圳)有限公司 | 一种应用程序测试方法及终端设备 |
CN109032923A (zh) * | 2018-06-21 | 2018-12-18 | 深圳壹账通智能科技有限公司 | 基于调用链的软件测试方法、装置、终端 |
CN109857667A (zh) * | 2019-02-03 | 2019-06-07 | 苏州市龙测智能科技有限公司 | 接口自动化测试方法、测试装置、测试设备及存储介质 |
US20190243751A1 (en) * | 2018-02-02 | 2019-08-08 | Ca, Inc. | Automated selection of test cases for regression testing |
CN111177003A (zh) * | 2019-12-30 | 2020-05-19 | 北京同邦卓益科技有限公司 | 一种测试方法、装置、系统、电子设备及存储介质 |
WO2020181839A1 (zh) * | 2019-03-13 | 2020-09-17 | 深圳壹账通智能科技有限公司 | 页面数据测试方法、装置、计算机设备和存储介质 |
EP3766276A1 (en) * | 2018-03-16 | 2021-01-20 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods and nodes for obtaining information regarding a bluetooth mesh network |
-
2020
- 2020-12-28 CN CN202011586508.6A patent/CN112650683A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190243751A1 (en) * | 2018-02-02 | 2019-08-08 | Ca, Inc. | Automated selection of test cases for regression testing |
EP3766276A1 (en) * | 2018-03-16 | 2021-01-20 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods and nodes for obtaining information regarding a bluetooth mesh network |
CN108984389A (zh) * | 2018-06-01 | 2018-12-11 | 平安科技(深圳)有限公司 | 一种应用程序测试方法及终端设备 |
CN109032923A (zh) * | 2018-06-21 | 2018-12-18 | 深圳壹账通智能科技有限公司 | 基于调用链的软件测试方法、装置、终端 |
CN109857667A (zh) * | 2019-02-03 | 2019-06-07 | 苏州市龙测智能科技有限公司 | 接口自动化测试方法、测试装置、测试设备及存储介质 |
WO2020155778A1 (zh) * | 2019-02-03 | 2020-08-06 | 苏州市龙测智能科技有限公司 | 接口自动化测试方法、测试装置、测试设备及存储介质 |
WO2020181839A1 (zh) * | 2019-03-13 | 2020-09-17 | 深圳壹账通智能科技有限公司 | 页面数据测试方法、装置、计算机设备和存储介质 |
CN111177003A (zh) * | 2019-12-30 | 2020-05-19 | 北京同邦卓益科技有限公司 | 一种测试方法、装置、系统、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107665171B (zh) | 自动回归测试方法及装置 | |
CN106796585B (zh) | 条件验证规则 | |
KR102151326B1 (ko) | 데이터 처리 방법 및 장치 | |
CN111045944B (zh) | 回归测试方法、装置、系统及计算机可读存储介质 | |
CN113010413B (zh) | 一种接口自动化测试方法和装置 | |
CN111125067B (zh) | 数据维护方法及装置 | |
US11422917B2 (en) | Deriving software application dependency trees for white-box testing | |
KR102352162B1 (ko) | 소프트웨어 개발 및 테스트 자동화 프레임워크 | |
CN112817843A (zh) | 项目管理方法和系统 | |
CN112650683A (zh) | 程序测试方法、设备以及存储介质 | |
CN110554956A (zh) | 一种bdms自动化测试方法 | |
KR20120111618A (ko) | Plc 명령어 테스트 장치 및 방법 | |
CN115658478A (zh) | 测试用例的筛选方法、装置、电子设备及存储介质 | |
CN115658731A (zh) | 一种数据查询方法、装置、设备和存储介质 | |
CN115185819A (zh) | 系统测试方法、装置、设备及计算机可读存储介质 | |
US7516048B2 (en) | Externalized metric calculation engine | |
CN113986753A (zh) | 接口测试方法、装置、设备及存储介质 | |
CN113094419A (zh) | 数据分析的系统、方法、客户端及存储介质 | |
CN111666301B (zh) | 业务接口测试方法、计算机装置和存储介质 | |
CN110569199B (zh) | 账单自动测试方法及装置 | |
CN105988932B (zh) | 一种esb的测试方法及系统 | |
CN109669856A (zh) | 数据分析系统的测试结果会诊方法及装置 | |
CN111611153B (zh) | 一种用户界面过度绘制的检测方法和装置 | |
CN111078543B (zh) | 系统动态化测试方法及测试装置 | |
CN112100077B (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Room 221, 2 / F, block C, 18 Kechuang 11th Street, Daxing District, Beijing, 100176 Applicant after: Jingdong Technology Holding Co.,Ltd. Address before: Room 221, 2 / F, block C, 18 Kechuang 11th Street, Beijing Economic and Technological Development Zone, 100176 Applicant before: Jingdong Digital Technology Holding Co., Ltd |