CN112181816A - 一种基于场景的接口测试方法、装置、计算机设备及介质 - Google Patents

一种基于场景的接口测试方法、装置、计算机设备及介质 Download PDF

Info

Publication number
CN112181816A
CN112181816A CN202011001947.6A CN202011001947A CN112181816A CN 112181816 A CN112181816 A CN 112181816A CN 202011001947 A CN202011001947 A CN 202011001947A CN 112181816 A CN112181816 A CN 112181816A
Authority
CN
China
Prior art keywords
action
information
scene
test case
action object
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
Application number
CN202011001947.6A
Other languages
English (en)
Other versions
CN112181816B (zh
Inventor
张立国
郭晓骞
张同虎
李登宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CCB Finetech Co Ltd
Original Assignee
CCB Finetech Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by CCB Finetech Co Ltd filed Critical CCB Finetech Co Ltd
Priority to CN202011001947.6A priority Critical patent/CN112181816B/zh
Publication of CN112181816A publication Critical patent/CN112181816A/zh
Application granted granted Critical
Publication of CN112181816B publication Critical patent/CN112181816B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

一种基于场景的接口测试方法、装置、计算机设备及介质
技术领域
本发明实施例涉及测试技术,尤其涉及一种基于场景的接口测试方法、装置、计算机设备及介质。
背景技术
传统接口测试方案主要针对单一接口进行测试,并没有考虑接口的业务场景。然而,在金融领域尤其是银行部门,自动化测试都是通过场景将不同的业务串联起来的,不同业务之间是有一定的依赖关系的。对于这种实际场景,传统的单接口测试方案并不适用,因此,如何有效地对具有依赖关系的接口进行自动化测试是目前亟待解决的问题。
发明内容
本发明实施例提供一种基于场景的接口测试方法、装置、计算机设备及介质,可以实现对具有依赖关系的接口进行自动化测试。
第一方面,本发明实施例提供了一种基于场景的接口测试方法,包括:
获取场景测试案例对应的流程图,所述流程图包括所述场景测试案例的步骤节点以及所述步骤节点之间边的信息;
根据所述边的信息顺序获取对应步骤节点的步骤信息,根据所述步骤信息确定动作对象;
根据所述动作对象的类型匹配对应类型的执行器,通过所述执行器基于动作对象之间的依赖关系执行所述动作对象对应的动作请求,将所述动作请求的执行结果作为接口测试结果。
第二方面,本发明实施例还提供了一种基于场景的接口测试装置,该装置包括:
流程图获取模块,用于获取场景测试案例对应的流程图,所述流程图包括所述场景测试案例的步骤节点以及所述步骤节点之间边的信息;
动作对象确定模块,用于根据所述边的信息顺序获取对应步骤节点的步骤信息,根据所述步骤信息确定动作对象;
动作请求执行模块,用于根据所述动作对象的类型匹配对应类型的执行器,通过所述执行器基于动作对象之间的依赖关系执行所述动作对象对应的动作请求,将所述动作请求的执行结果作为接口测试结果。
第三方面,本发明实施例还提供了一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任意实施例所述的基于场景的接口测试方法。
第四方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如本发明任意实施例所述的基于场景的接口测试方法。
本发明实施例提供一种基于场景的接口测试方法、装置、计算机设备和介质,通过采用流程图方式对测试场景案例进行展示、编辑和保存等操作,增强了场景测试案例的可维护性,以及增强了直观性;由于流程图包括该场景测试案例的步骤节点以及步骤节点之间边的信息,根据边的信息顺序获取对应步骤节点的步骤信息,根据步骤信息确定动作对象,根据动作对象的类型匹配对应类型的执行器,通过执行器基于动作对象之间的依赖关系执行各动作对象对应的动作请求,实现整个场景中各相互关联的接口的自动化测试,解决相关技术中的单接口测试方案无法对具有依赖关系的接口进行自动化测试的问题。
附图说明
图1为本发明实施例提供的一种基于场景的接口测试方法的流程图;
图2为本发明实施例提供的一种场景测试案例对应的流程图的示意图;
图3为本发明实施例提供的另一种基于场景的接口测试方法的流程图;
图4为本发明实施例提供的又一种基于场景的接口测试方法的流程图;
图5为本发明实施例提供的又一种基于场景的接口测试方法的流程图;
图6为本发明实施例提供的一种基于场景的接口测试装置的结构框图;
图7为本发明实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
图1为本发明实施例提供的一种基于场景的接口测试方法的流程图,该方法可以由基于场景的接口测试装置来执行,该装置可以由软件和/或硬件构成,并通常配置于计算机设备中。如图1所示,该方法包括:
步骤110、获取场景测试案例对应的流程图。
其中,场景测试案例是通过场景将不同业务模块串联起来的测试用例。例如,对于快捷支付的场景测试案例是通过快捷支付场景将签约、获得账户、登录银行和支付4个业务模块串联起来的测试用例。本发明实施例中,场景测试案例中的一个业务模块相当于场景中的一个步骤。一个步骤可以包括多个动作,一个动作相当于一个操作。例如,动作可以是HTTP请求、shell命令、SQL语句等等。
需要说明的是,流程图是场景测试案例的图形表示形式,包括场景测试案例的步骤节点以及步骤节点之间边的信息。示例性地,根据每个场景测试案例包括的步骤标识、步骤执行顺序和步骤之间的判断条件,生成各场景测试案例对应的流程图。其中,步骤标识可以是步骤名称或者步骤ID等用于区分不同步骤的信息。步骤执行顺序是在场景中不同步骤在执行时的时序关系。步骤之间的判断条件是在前一步骤执行完成后,基于前一步骤的执行结果判断前一步骤是否执行成功的条件。如有执行成功,才会执行后一个步骤。需要说明的是,并不是边上均有判断条件,对于没有边上的判断条件的步骤,在执行完成前一个步骤之后,继续执行后一个步骤。例如,对于流程图中的任意两个节点具有如下关系:步骤A→步骤B,且步骤A到步骤B的边上不设置判断条件,因此,只要确定步骤A执行成功,就会执行步骤B。
具体地,将每个场景测试案例包括的每个步骤的步骤标识作为步骤节点。根据相邻两个步骤的步骤执行顺序确定步骤节点之间的边的指向,将步骤之间的判断条件作为边上的判断条件,将边的指向和边上的判断条件作为边的信息。根据步骤节点和边的信息生成对应场景测试案例对应的流程图。以场景测试案例的案例标识为键,在数据库中关联存储案例标识和对应的流程图。
例如,预先对现有各种系统进行深入分析,归纳,得出各个场景包括的步骤,以及各个步骤包括的动作,采用流程图的形式表示各个场景。图2为本发明实施例提供的一种场景测试案例对应的流程图的示意图,在流程图200中,流程图200的节点210可以是步骤标识,节点210之间连线称为边220,边的指向可以表示步骤执行顺序,边上的逻辑表达式230可以是步骤之间的判断条件。
示例性地,在测试事件被触发的情况下,确定测试事件对应的场景测试案例的案例标识。根据该案例标识从数据库中获取该场景测试案例对应的流程图。具体地,在检测到测试界面中的预设用户操作时触发测试事件,其中,测试事件中包含用户操作对应的场景测试案例的案例标识。例如,可以在检测到测试界面中的测试按钮被按下时,基于按下操作和测试界面中处于选中状态的场景测试案例的案例标识触发测试事件,其中,测试事件中包含处于选中状态的场景测试案例的案例标识。或者,在检测到对测试界面中的场景测试案例的案例标识的长按操作时,基于长按操作和被长按的案例标识触发测试事件,其中,测试事件中包含长按操作对应的场景测试案例的案例标识。或者,在检测到对测试界面中的场景测试案例的案例标识的圈选操作时,基于圈选操作和被圈选的案例标识触发测试事件,其中,测试事件中包含被圈选的场景测试案例的案例标识。需要说明的是,还可以通过其它的用户操作形式触发测试事件,并不限于上述列举的几种。
步骤120、根据所述边的信息顺序获取对应步骤节点的步骤信息,根据所述步骤信息确定动作对象。
本实施例中,边的信息包括边的指向,即由一个步骤节点指向另一个步骤节点,从而可以确定被边连接的两个步骤的执行顺序。根据执行顺序获取流程图中步骤节点对应的步骤标识,根据步骤标识查询数据库,得到与步骤标识对应的步骤信息。其中,步骤信息包括本步骤所包含的动作、动作信息和配置信息。例如,动作信息可以包括动作的类型信息、动作的执行顺序和动作之间的判断条件等。配置信息用于指示提取动作执行结果中的哪些内容作为变量信息。目前支持xpath、jpath、java正则等方式提取变量信息。
需要说明的是,动作对象是基于不同类型的执行器的处理要求封装各个动作的动作信息生成的,以使动作信息满足执行器的处理要求。其中,执行器可以理解为代码执行器,是对代码进行动态编译,得到运行结果的插件。不同类型的执行器处理不同动作类型的动作对象。例如,动作类型可以包括:HTTP请求、SQL命令、shell命令或定制化加解密命令。对于HTTP请求的动作对象,采用处理HTTP类型的执行器对其进行处理。对于shell命令的动作对象,采用处理HTTP shell类型的执行器对其进行处理。
可选地,一个动作信息对应一个动作对象。一个步骤可以包括至少一个动作,也就对应至少一个动作对象,可以基于每个步骤对应的动作对象生成该步骤对应的动作对象列表,得到每个步骤的动作对象列表。
步骤130、根据所述动作对象的类型匹配对应类型的执行器,通过所述执行器基于动作对象之间的依赖关系执行所述动作对象对应的动作请求,将所述动作请求的执行结果作为接口测试结果。
需要说明的是,动作对象之间的依赖关系是指后一个动作的执行需要用到的前一个动作的执行结果的关系。本发明实施例中,在通过执行器执行一个动作对象得到动作执行结果之后,根据配置提取执行结果中的对应变量并保存到公共资源池,该被提取的变量即为后续动作可能需要的依赖信息。
具体地,解析动作对象得到动作对象对应的动作类型,确定处理类型与动作类型相同或者包括动作类型的执行器。例如,根据动作对象的类型选择对应类型的解析器解析动作对象,得到动作对象对应的动作类型。其中,动作对象的类型是指执行器执行动作对象得到的动作执行结果的类型。例如,动作对象的类型可以是XML、json或String类型等。根据动作对象对应的动作类型选择相同类型的执行器。或者,选择处理类型包括该动作对象对应的动作类型的执行器。
可选地,通过执行器基于动作对象之间的依赖关系执行所述动作对象对应的动作请求具体包括:当不存在与动作对象具有依赖关系的在先执行动作对象的情况下,通过执行器执行所述动作对象对对应的动作请求,得到动作执行结果。当存在与动作对象具有依赖关系的在先执行动作对象的情况下,获取公共资源池中与动作对象具有依赖关系的在先执行动作对象的变量信息,通过执行器基于变量信息执行所述动作对象对应的动作请求,得到动作执行结果。将上述动作请求的执行结果作为接口测试结果,显示接口测试结果。
本实施例的技术方案,通过采用流程图方式对测试场景案例进行展示、编辑和保存等操作,增强了场景测试案例的可维护性,以及增强了直观性;由于流程图包括该场景测试案例的步骤节点以及步骤节点之间边的信息,根据边的信息顺序获取对应步骤节点的步骤信息,根据步骤信息确定动作对象,根据动作对象的类型匹配对应类型的执行器,通过执行器基于动作对象之间的依赖关系执行各动作对象对应的动作请求,实现整个场景中各相互关联的接口的自动化测试,解决相关技术中的单接口测试方案无法对具有依赖关系的接口进行自动化测试的问题。
图3为本发明实施例提供的另一种基于场景的接口测试方法的流程图,本实施例在上述技术方案的基础上,对根据所述边的信息顺序获取对应步骤节点的步骤信息,根据所述步骤信息确定动作对象步骤作进一步限定。如图3所示,该方法包括:
步骤301、在测试事件被触发的情况下,确定所述测试事件对应的场景测试案例的案例标识。
步骤302、根据所述案例标识从数据库中获取所述场景测试案例对应的流程图。
需要说明的是,流程图包括所述场景测试案例的步骤节点以及所述步骤节点之间边的信息。
步骤303、根据所述边的信息中的边的指向,顺序遍历所述场景测试案例对应的流程图。
本发明实施例中的流程图包括节点和带箭头的边,且边的指向与步骤执行顺序一致。例如,场景测试案例包括A、B、C、D四个步骤,且在场景测试案例中的执行顺序是C、A、D、B,存在如下关系C→A→D→B。因此,根据边的指向,顺序遍历场景测试案例对应的流程图,顺序得到步骤C、步骤A、步骤D和步骤B,然后,分别执行每个步骤。
步骤304、对于每个遍历得到的步骤节点,根据所述步骤节点的步骤标识查询数据库,得到与所述步骤标识对应的步骤信息。
具体地,步骤标识可以是步骤ID,根据步骤ID查询数据库。由于数据库中关联存储有步骤ID和步骤信息,基于步骤ID查询数据库可以得到与步骤ID对应的步骤信息。需要说明的是,步骤标识还可以是步骤名称等唯一标识步骤的信息,本发明实施例对比并不作具体限定。
步骤信息中包括步骤包括的动作、动作信息、配置信息等等。
步骤305、获取每个步骤信息中的所有动作信息,封装各个所述动作信息得到动作对象,根据所述动作对象确定各步骤对应的动作对象列表。
具体地,获取每个步骤信息包括的至少一个动作信息;基于每个动作信息包含的动作类型确定对应的执行器,根据执行器的处理要求封装动作信息得到动作对象。其中,封装的目的是为了使动作信息满足执行器的处理要求。一种类型的动作信息只能由与其类型匹配的执行器处理,因此,需要基于与动作信息匹配的执行器的处理要求封装动作信息,得到动作对象。由于一个步骤可能包括一个或多个动作,因此,根据每个步骤包含的动作信息对应的动作对象生成每个步骤对应的动作对象列表。
步骤306、根据所述动作对象列表中的每个动作对象的类型匹配对应类型的执行器,通过所述执行器基于动作对象之间的依赖关系执行所述动作对象对应的动作请求,将所述动作请求的执行结果作为接口测试结果。
本实施例的技术方案,通过根据边的指向,顺序遍历场景测试案例对应的流程图,得到各个步骤节点,并根据步骤节点标识查询数据库,得到与步骤标识对应的步骤信息,获取每个步骤信息中的所有动作信息,封装动作信息得到满足执行器处理要求的动作对象,根据动作对象的类型匹配对应的执行器执行该动作对象,得到执行结果,可以通过图遍历的方式执行场景测试案例中各个步骤包含的各动作,提高了执行效率。
图4为本发明实施例提供的又一种基于场景的接口测试方法的流程图,本实施例在上述技术方案的基础上,在得到动作执行结果步骤之后附加了提取动作执行结果中的变量信息的技术特征。如图4所示,该方法包括:
步骤401、在测试事件被触发的情况下,确定所述测试事件对应的场景测试案例的案例标识。
步骤402、根据所述案例标识从数据库中获取所述场景测试案例对应的流程图。
需要说明的是,流程图包括所述场景测试案例的步骤节点以及所述步骤节点之间边的信息。
步骤403、根据所述边的信息中的边的指向,顺序遍历所述场景测试案例对应的流程图。
步骤404、对于每个遍历得到的步骤节点,根据所述步骤节点的步骤标识查询数据库,得到与所述步骤标识对应的步骤信息。
步骤405、获取每个步骤信息中的所有动作信息,封装各个所述动作信息得到动作对象,根据所述动作对象确定各步骤对应的动作对象列表。
步骤406、解析所述动作对象列表中的各动作对象得到所述动作对象对应的动作类型,确定处理类型与所述动作类型相同或者包括所述动作类型的执行器。
具体地,分别从动作对象列表中获取各个动作对象,根据各动作对象的返回类型选择对应类型的解析器解析动作对象,得到动作信息。根据动作信息包括的动作类型确定与该动作类型相同或者包括该动作类型的执行器。
步骤407、通过所述执行器基于动作对象之间的依赖关系执行所述动作对象对应的动作请求,得到动作执行结果。
具体地,当不存在与所述动作对象具有依赖关系的在先执行动作对象的情况下,通过所述执行器执行所述动作对象对对应的动作请求,得到动作执行结果;
当存在与所述动作对象具有依赖关系的在先执行动作对象的情况下,获取公共资源池中与所述动作对象具有依赖关系的在先执行动作对象的变量信息,通过所述执行器基于所述变量信息执行所述动作对象对应的动作请求,得到动作执行结果。
步骤408、采用与所述动作执行结果的类型相匹配的解析器解析所述动作执行结果,得到报文头和报文体。
需要说明的是,动作执行结果以报文的形式呈现。动作执行结果包括报文头和报文体。示例性地,根据报文的返回类型采用对应的解析器解析以报文形式呈现的动作执行结果,得到报文头和报文体。
步骤409、根据所述步骤信息中的配置信息,提取所述报文头的全部信息和所述报文体中的目标信息,将所述报文头的全部信息和所述目标信息作为所述动作执行结果中的变量信息,将所述变量信息保存到公共资源池。
需要说明的是,配置信息用于指示提取动作执行结果中部分内容作为变量信息。配置信息可以包含于步骤信息中,从而,在基于步骤标识获取步骤信息的同时,也获取到配置信息。例如,配置信息可以是提取报文头的全部字段以及报文体中的设定字段。配置信息可以是认为规定的,并不限于上述列举的内容。
需要说明的是,变量信息可以是步骤之间的依赖信息。例如,步骤B需要用到步骤A的执行结果,则认为步骤B和步骤A之间具有依赖关系,且步骤B和步骤A之间的依赖就是变量信息。
具体地,根据步骤信息中的配置信息,提取报文头的全部信息和报文体中的目标信息,将报文头的全部信息和报文体中的目标信息作为动作执行结果中的变量信息,将变量信息保存到公共资源池。其中,目标信息是报文体中目标字段处的内容。
本实施例的技术方案,在得到动作执行结果之后,采用与动作执行结果的类型相匹配的解析器解析动作执行结果得到报文头和报文体,根据配置信息提取报文头的全部信息和报文体的目标信息,作为变量信息,将变量信息保存到公共资源池,以供后续步骤使用。本实施例通过公共资源池存储步骤之间的依赖,实现后续步骤执行时可以由公共资源池获取依赖,实现场景测试案例的自动化测试。
图5为本发明实施例提供的又一种基于场景的接口测试方法的流程图,本实施例在上述技术方案的基础上,在通过所述执行器基于动作对象之间的依赖关系执行所述动作对象对应的动作请求步骤之后附加了对动作执行情况进行验证的技术特征。如图5所示,该方法包括:
步骤501、在测试事件被触发的情况下,确定所述测试事件对应的场景测试案例的案例标识。
步骤502、根据所述案例标识从数据库中获取所述场景测试案例对应的流程图。
需要说明的是,流程图包括所述场景测试案例的步骤节点以及所述步骤节点之间边的信息。
步骤503、根据所述边的信息中的边的指向,顺序遍历所述场景测试案例对应的流程图。
步骤504、对于每个遍历得到的步骤节点,根据所述步骤节点的步骤标识查询数据库,得到与所述步骤标识对应的步骤信息。
步骤505、获取每个步骤信息中的所有动作信息,封装各个所述动作信息得到动作对象,根据所述动作对象确定各步骤对应的动作对象列表。
步骤506、解析所述动作对象列表中的各动作对象得到所述动作对象对应的动作类型,确定处理类型与所述动作类型相同或者包括所述动作类型的执行器。
步骤507、通过所述执行器基于动作对象之间的依赖关系执行所述动作对象对应的动作请求,得到动作执行结果。
步骤508、根据所述步骤信息中的动作判断条件和所述动作请求对应的动作执行结果,判断所述动作请求是否执行成功,显示所述动作请求是否执行成功的提示信息。
需要说明的是,步骤信息中的动作判断条件是预先设置的对动作执行结果进行判定的条件。例如,动作判断条件可以是由一个或多个运算符、操作数等组成的运算式,其功能是执行计算,并返回一个值。
具体地,在一个动作对象执行完成之后,将该动作对象对应的动作请求的动作执行结果代入步骤信息中的动作判断条件,得到判断结果,该判断结果用于表示动作请求是否执行成功。如果符合判断条件,则确定动作请求执行成功,否则,确定动作请求执行失败。在确定判断结果之后,显示判断结果,以提示用户动作请求是否执行成功。
本实施例的技术方案,在通过所述执行器基于动作对象之间的依赖关系执行所述动作对象对应的动作请求之后,根据所述步骤信息中的动作判断条件和所述动作请求对应的动作执行结果,判断所述动作请求是否执行成功,显示所述动作请求是否执行成功的提示信息,实现对动作执行结果进行验证,能够及时发现动作执行失败的地方,快速定位到出现故障的步骤,提高了故障发现效率。
在一个具体的实施例中,通过本发明可以很好实现基于业务场景的自动化测试。本方法将步骤作为每个业务场景的基本单位,每个步骤由多个动作组成,并且支持多种不同的动作类型。通过流程图的方式对场景进行展示、编辑、保存等操作,极大增强了直观性、可维护性,使用公共资源池保存不同步骤之间的依赖,解决了现有技术针对单一接口进行测试在各个业务场景之间具有依赖关系时无法做到自动化测试的问题。从功能模块上划分,本实施例包括如下功能模块:报文解析模块、步骤处理器模块、动作处理器模块、结果分析器模块、动作检查点校验模块和全局检查点校验模块。
其中,报文解析模块,用来解析场景案例的报文,以一个流程图的方式展示出来。
步骤处理器模块,用来处理流程图里的每一个节点,解析每一个节点的动作组成。
动作处理器模块,用来执行不同的动作,根据定义的检查点判断动作的执行结果。
结果分析器模块,用来对动作的执行结果进行变量的提取,放到公共资源池,供后续动作或步骤使用。
动作检查点校验模块,用来对每个动作的执行结果进行检查点校验。
全局检查点校验模块,用来在场景测试案例的所有步骤执行完之后,进行最终结果校验。
需要说明的是,将场景测试案例分成多个业务模块,一个业务模块相当于场景测试案例中的一个步骤,步骤处理器模块用来处理单个业务模块。一个步骤分成多个动作,一个动作相当于一个操作,例如,HTTP请求、shell命令、SQL语句等等,不同的动作处理器模块可以执行不同的操作。
需要说明的是,动作检查点校验模块和全局检查点校验模块不是必须的,如果设置检查点,这两个模块会在动作执行过程中和最后进行验证,如果不设置检查点,则就不进行校验,不会影响整个场景的执行。
具体地,报文解析模块的输入可以是场景案例的数据报文,该数据报文可以是json格式。该数据报文包含了流程图里每一个步骤节点、每一条边的信息、以及步骤之间的判断条件。报文解析模块输出步骤信息给步骤处理器模块。步骤处理器模块根据步骤信息中的步骤ID查询数据库得到动作信息,迭代将每一个动作信息封装成动作对象,得到各步骤对应的动作对象列表。步骤处理器模块输出动作对象列表给动作处理器模块。动作处理器模块解析动作对象列表中的各动作对象,根据动作类型使用不同类型的执行器处理动作请求。其中,动作类型支持http、建行p8协议请求、sql语句、shell脚本、特殊登录、等待、定制化加解密等。动作处理器模块输出动作处理结果给结果分析器模块。结果分析器模块根据动作处理结果的返回类型使用对应的解析器进行解析,得到返回报文,其中,解析器支持XML、json、String类型的动作处理结果的解析。根据配置信息提取返回报文中对应的变量信息,并保存变量信息到公共资源池。目前支持xpath、jpath、java正则的方式提取变量。动作检查点处理器模块的输入是js检查点表达式,通过js解析引擎执行js检查点表达式,判断动作执行结果,动作检查点处理器模块的输出是动作请求是否执行成功。
本发明实施例通过对现有各种系统进行深入分析、归纳,以流程图的方式来定义场景案例,一个场景案例分解成多个步骤,并将每个步骤拆分成多个动作。通过图遍历的方式,用步骤处理器对流程图的每一个节点进行处理,执行步骤里的每一个动作,最后用检查处理器对执行结果进行校验,完成整个场景的测试。
图6为本发明实施例提供的一种基于场景的接口测试装置的结构框图,该装置可以由软件和/或硬件实现,并通常配置于计算机设备中。该装置通过执行本发明实施例中的基于场景的接口测试方法实现基于场景串联的接口的自动化测试。如图6所示,该装置包括:
流程图获取模块610,用于获取场景测试案例对应的流程图,所述流程图包括所述场景测试案例的步骤节点以及所述步骤节点之间边的信息;
动作对象确定模块620,用于根据所述边的信息顺序获取对应步骤节点的步骤信息,根据所述步骤信息确定动作对象;
动作请求执行模块630,用于根据所述动作对象的类型匹配对应类型的执行器,通过所述执行器基于动作对象之间的依赖关系执行所述动作对象对应的动作请求,将所述动作请求的执行结果作为接口测试结果。
本实施例提供的基于场景的接口测试装置,通过采用流程图方式对测试场景案例进行展示、编辑和保存等操作,增强了场景测试案例的可维护性,以及增强了直观性;由于流程图包括该场景测试案例的步骤节点以及步骤节点之间边的信息,根据边的信息顺序获取对应步骤节点的步骤信息,根据步骤信息确定动作对象,根据动作对象的类型匹配对应类型的执行器,通过执行器基于动作对象之间的依赖关系执行各动作对象对应的动作请求,实现整个场景中各相互关联的接口的自动化测试,解决相关技术中的单接口测试方案无法对具有依赖关系的接口进行自动化测试的问题。
可选地,流程图获取模块610具体用于:
在测试事件被触发的情况下,确定所述测试事件对应的场景测试案例的案例标识;
根据所述案例标识从数据库中获取所述场景测试案例对应的流程图。
具体地,采用如下方式触发测试事件:
在检测到测试界面中的预设用户操作时触发测试事件,其中,所述测试事件中包含用户操作对应的场景测试案例的案例标识。
可选地,该装置还包括:
流程图生成模块,用于在获取场景测试案例对应的流程图之前,根据每个场景测试案例包括的步骤标识、步骤执行顺序和步骤之间的判断条件,生成各场景测试案例对应的流程图。
可选地,流程图生成模块具体用于:
将每个场景测试案例包括的每个步骤的步骤标识作为步骤节点;
根据相邻两个步骤的步骤执行顺序确定步骤节点之间的边的指向,将步骤之间的判断条件作为边上的判断条件,将所述边的指向和所述边上的判断条件作为边的信息;
根据所述步骤节点和所述边的信息生成对应场景测试案例对应的流程图。
可选地,动作对象确定模块620包括:
图遍历子模块,用于根据所述边的信息中的边的指向,顺序遍历所述场景测试案例对应的流程图;
信息获取子模块,用于对于每个遍历得到的步骤节点,根据所述步骤节点的步骤标识查询数据库,得到与所述步骤标识对应的步骤信息;
信息封装子模块,用于获取每个步骤信息中的所有动作信息,封装各个所述动作信息得到动作对象,根据所述动作对象确定各步骤对应的动作对象列表。
可选地,信息封装子模块具体用于:
获取每个步骤信息包括的至少一个动作信息;
基于每个动作信息包含的动作类型确定对应的执行器,根据所述执行器的处理要求封装所述动作信息得到动作对象。
具体地,所述动作类型包括:HTTP请求、SQL命令、shell命令或定制化加解密命令。
可选地,动作请求执行模块630具体用于:
解析所述动作对象得到所述动作对象对应的动作类型,确定处理类型与所述动作类型相同或者包括所述动作类型的执行器。
可选地,动作请求执行模块630具体还用于:
当不存在与所述动作对象具有依赖关系的在先执行动作对象的情况下,通过所述执行器执行所述动作对象对对应的动作请求,得到动作执行结果;
当存在与所述动作对象具有依赖关系的在先执行动作对象的情况下,获取公共资源池中与所述动作对象具有依赖关系的在先执行动作对象的变量信息,通过所述执行器基于所述变量信息执行所述动作对象对应的动作请求,得到动作执行结果。
可选地,该装置还包括:
结果解析子模块,用于在得到动作执行结果之后,采用与所述动作执行结果的类型相匹配的解析器解析所述动作执行结果,得到报文头和报文体;
变量提取子模块,用于根据所述步骤信息中的配置信息,提取所述报文头的全部信息和所述报文体中的目标信息,将所述报文头的全部信息和所述目标信息作为所述动作执行结果中的变量信息,将所述变量信息保存到公共资源池。
可选地,该装置还包括:
结果检测模块,用于在通过所述执行器基于动作对象之间的依赖关系执行所述动作对象对应的动作请求之后,根据所述步骤信息中的动作判断条件和所述动作请求对应的动作执行结果,判断所述动作请求是否执行成功,显示所述动作请求是否执行成功的提示信息。
本发明实施例所提供的基于场景的接口测试装置可执行本发明任意实施例所提供的基于场景的接口测试方法,具备执行方法相应的功能模块和有益效果。
图7为本发明实施例提供的一种计算机设备的结构示意图,该计算机设备可以是个人电脑、笔记本电脑等电子设备。如图7所示,该计算机设备包括处理器70、存储器71、输入装置72和输出装置73;计算机设备中处理器70的数量可以是一个或多个,图7中以一个处理器70为例;计算机设备中的处理器70、存储器71、输入装置72和输出装置73可以通过总线或其他方式连接,图7中以通过总线连接为例。
存储器71作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的基于场景的接口测试方法对应的程序指令/模块(例如,流程图获取模块610、动作对象确定模块620和动作请求执行模块630)。处理器70通过运行存储在存储器71中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的基于场景的接口测试方法。
存储器71可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器71可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器71可进一步包括相对于处理器70远程设置的存储器,这些远程存储器可以通过网络连接至设备/终端/服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置72可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置73可包括显示屏等显示设备。
本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种基于场景的接口测试方法,该方法包括:
获取场景测试案例对应的流程图,所述流程图包括所述场景测试案例的步骤节点以及所述步骤节点之间边的信息;
根据所述边的信息顺序获取对应步骤节点的步骤信息,根据所述步骤信息确定动作对象;
根据所述动作对象的类型匹配对应类型的执行器,通过所述执行器基于动作对象之间的依赖关系执行所述动作对象对应的动作请求,将所述动作请求的执行结果作为接口测试结果。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的基于场景的接口测试方法中的相关操作.
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述基于场景的接口测试装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (15)

1.一种基于场景的接口测试方法,其特征在于,包括:
获取场景测试案例对应的流程图,所述流程图包括所述场景测试案例的步骤节点以及所述步骤节点之间边的信息;
根据所述边的信息顺序获取对应步骤节点的步骤信息,根据所述步骤信息确定动作对象;
根据所述动作对象的类型匹配对应类型的执行器,通过所述执行器基于动作对象之间的依赖关系执行所述动作对象对应的动作请求,将所述动作请求的执行结果作为接口测试结果。
2.根据权利要求1所述的方法,其特征在于,所述获取场景测试案例对应的流程图,包括:
在测试事件被触发的情况下,确定所述测试事件对应的场景测试案例的案例标识;
根据所述案例标识从数据库中获取所述场景测试案例对应的流程图。
3.根据权利要求2所述的方法,其特征在于,还包括采用如下方式触发测试事件:
在检测到测试界面中的预设用户操作时触发测试事件,其中,所述测试事件中包含用户操作对应的场景测试案例的案例标识。
4.根据权利要求1所述的方法,其特征在于,在获取场景测试案例对应的流程图之前,还包括:
根据每个场景测试案例包括的步骤标识、步骤执行顺序和步骤之间的判断条件,生成各场景测试案例对应的流程图。
5.根据权利要求4所述的方法,其特征在于,所述根据各场景测试案例包括的步骤标识、步骤执行顺序和步骤之间的判断条件,生成各场景测试案例对应的流程图,包括:
将每个场景测试案例包括的每个步骤的步骤标识作为步骤节点;
根据相邻两个步骤的步骤执行顺序确定步骤节点之间的边的指向,将步骤之间的判断条件作为边上的判断条件,将所述边的指向和所述边上的判断条件作为边的信息;
根据所述步骤节点和所述边的信息生成对应场景测试案例对应的流程图。
6.根据权利要求1所述的方法,其特征在于,所述根据所述边的信息顺序获取对应步骤节点的步骤信息,根据所述步骤信息确定动作对象,包括:
根据所述边的信息中的边的指向,顺序遍历所述场景测试案例对应的流程图;
对于每个遍历得到的步骤节点,根据所述步骤节点的步骤标识查询数据库,得到与所述步骤标识对应的步骤信息;
获取每个步骤信息中的所有动作信息,封装各个所述动作信息得到动作对象,根据所述动作对象确定各步骤对应的动作对象列表。
7.根据权利要求6所述的方法,其特征在于,所述获取每个步骤信息中的所有动作信息,封装各个所述动作信息得到动作对象,包括:
获取每个步骤信息包括的至少一个动作信息;
基于每个动作信息包含的动作类型确定对应的执行器,根据所述执行器的处理要求封装所述动作信息得到动作对象。
8.根据权利要求7所述的方法,其特征在于,所述动作类型包括:HTTP请求、SQL命令、shell命令或定制化加解密命令。
9.根据权利要求1所述的方法,其特征在于,所述根据所述动作对象的类型匹配对应类型的执行器,包括:
解析所述动作对象得到所述动作对象对应的动作类型,确定处理类型与所述动作类型相同或者包括所述动作类型的执行器。
10.根据权利要求1所述的方法,其特征在于,所述通过所述执行器基于动作对象之间的依赖关系执行所述动作对象对应的动作请求,包括:
当不存在与所述动作对象具有依赖关系的在先执行动作对象的情况下,通过所述执行器执行所述动作对象对对应的动作请求,得到动作执行结果;
当存在与所述动作对象具有依赖关系的在先执行动作对象的情况下,获取公共资源池中与所述动作对象具有依赖关系的在先执行动作对象的变量信息,通过所述执行器基于所述变量信息执行所述动作对象对应的动作请求,得到动作执行结果。
11.根据权利要求10所述的方法,其特征在于,在得到动作执行结果之后,还包括:
采用与所述动作执行结果的类型相匹配的解析器解析所述动作执行结果,得到报文头和报文体;
根据所述步骤信息中的配置信息,提取所述报文头的全部信息和所述报文体中的目标信息,将所述报文头的全部信息和所述目标信息作为所述动作执行结果中的变量信息,将所述变量信息保存到公共资源池。
12.根据权利要求10所述的方法,其特征在于,在通过所述执行器基于动作对象之间的依赖关系执行所述动作对象对应的动作请求之后,还包括:
根据所述步骤信息中的动作判断条件和所述动作请求对应的动作执行结果,判断所述动作请求是否执行成功,显示所述动作请求是否执行成功的提示信息。
13.一种基于场景的接口测试装置,其特征在于,包括:
流程图获取模块,用于获取场景测试案例对应的流程图,所述流程图包括所述场景测试案例的步骤节点以及所述步骤节点之间边的信息;
动作对象确定模块,用于根据所述边的信息顺序获取对应步骤节点的步骤信息,根据所述步骤信息确定动作对象;
动作请求执行模块,用于根据所述动作对象的类型匹配对应类型的执行器,通过所述执行器基于动作对象之间的依赖关系执行所述动作对象对应的动作请求,将所述动作请求的执行结果作为接口测试结果。
14.一种计算机设备,其特征在于,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-12中任一所述的基于场景的接口测试方法。
15.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-12中任一所述的基于场景的接口测试方法。
CN202011001947.6A 2020-09-22 2020-09-22 一种基于场景的接口测试方法、装置、计算机设备及介质 Active CN112181816B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011001947.6A CN112181816B (zh) 2020-09-22 2020-09-22 一种基于场景的接口测试方法、装置、计算机设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011001947.6A CN112181816B (zh) 2020-09-22 2020-09-22 一种基于场景的接口测试方法、装置、计算机设备及介质

Publications (2)

Publication Number Publication Date
CN112181816A true CN112181816A (zh) 2021-01-05
CN112181816B CN112181816B (zh) 2023-06-02

Family

ID=73957086

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011001947.6A Active CN112181816B (zh) 2020-09-22 2020-09-22 一种基于场景的接口测试方法、装置、计算机设备及介质

Country Status (1)

Country Link
CN (1) CN112181816B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116340187A (zh) * 2023-05-25 2023-06-27 建信金融科技有限责任公司 规则引擎迁移测试方法、装置、电子设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521122A (zh) * 2011-11-23 2012-06-27 北京交通大学 面向动态场景的测试序列生成方法及系统
US20150227452A1 (en) * 2014-02-12 2015-08-13 Wipro Limited System and method for testing software applications
CN105808437A (zh) * 2016-03-09 2016-07-27 广州彩瞳网络技术有限公司 基于测试用例数据表的自动化测试方法及系统
CN108427613A (zh) * 2018-03-12 2018-08-21 平安普惠企业管理有限公司 异常接口定位方法、装置、计算机设备和存储介质
CN110096424A (zh) * 2019-05-14 2019-08-06 北京字节跳动网络技术有限公司 测试的处理方法、装置、电子设备及存储介质
CN110554958A (zh) * 2019-08-01 2019-12-10 北京百度网讯科技有限公司 图数据库测试方法、系统、设备和存储介质
CN110781092A (zh) * 2019-11-07 2020-02-11 北京博睿宏远数据科技股份有限公司 一种脚本测试方法、装置、终端及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521122A (zh) * 2011-11-23 2012-06-27 北京交通大学 面向动态场景的测试序列生成方法及系统
US20150227452A1 (en) * 2014-02-12 2015-08-13 Wipro Limited System and method for testing software applications
CN105808437A (zh) * 2016-03-09 2016-07-27 广州彩瞳网络技术有限公司 基于测试用例数据表的自动化测试方法及系统
CN108427613A (zh) * 2018-03-12 2018-08-21 平安普惠企业管理有限公司 异常接口定位方法、装置、计算机设备和存储介质
CN110096424A (zh) * 2019-05-14 2019-08-06 北京字节跳动网络技术有限公司 测试的处理方法、装置、电子设备及存储介质
CN110554958A (zh) * 2019-08-01 2019-12-10 北京百度网讯科技有限公司 图数据库测试方法、系统、设备和存储介质
CN110781092A (zh) * 2019-11-07 2020-02-11 北京博睿宏远数据科技股份有限公司 一种脚本测试方法、装置、终端及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116340187A (zh) * 2023-05-25 2023-06-27 建信金融科技有限责任公司 规则引擎迁移测试方法、装置、电子设备及存储介质
CN116340187B (zh) * 2023-05-25 2023-08-15 建信金融科技有限责任公司 规则引擎迁移测试方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN112181816B (zh) 2023-06-02

Similar Documents

Publication Publication Date Title
CN107908541B (zh) 接口测试方法、装置、计算机设备及存储介质
CN107665233B (zh) 数据库数据处理方法、装置、计算机设备和存储介质
CN112181804B (zh) 一种参数校验方法、设备以及存储介质
CN110287696B (zh) 一种反弹shell进程的检测方法、装置和设备
CN111597120B (zh) 接口测试装置、方法、电子设备和计算机可读存储介质
CN106649120A (zh) 一种数据获取方法、分析方法及系统
CN109190368B (zh) 一种sql注入检测装置及sql注入检测方法
JP2006268118A (ja) アプリケーション環境チェック装置及び方法とそのプログラム
CN111666328A (zh) 实时展示可视化图表的方法、装置、计算机设备及存储介质
CN113760730A (zh) 一种自动化测试的方法和装置
CN115186274A (zh) 基于iast的安全测试方法及装置
CN114238151A (zh) 一种软件测试方法、装置、电子设备及存储介质
CN113158195B (zh) 一种基于poc脚本的分布式漏洞扫描方法及系统
CN114116509A (zh) 程序分析方法、装置、电子设备和存储介质
CN112181816B (zh) 一种基于场景的接口测试方法、装置、计算机设备及介质
WO2020119551A1 (zh) 基于日志文件的服务性能分析方法、装置及电子设备
CN116361793A (zh) 代码检测方法、装置、电子设备及存储介质
CN116795701A (zh) 一种接口程序的通用测试实例的生成方法和装置
CN112688947B (zh) 基于互联网的网络通信信息智能监测方法及系统
US8819645B2 (en) Application analysis device
CN115310087A (zh) 一种基于抽象语法树的网站后门检测方法和系统
CN112311679A (zh) 状态检测方法、装置、电子设备及可读存储介质
CN113094078B (zh) 一种安全检测方法、装置、设备及介质
CN111475783A (zh) 数据检测方法、系统及设备
CN117992359B (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