接口测试方法及装置制造方法

文档序号:6540339阅读:173来源:国知局
接口测试方法及装置制造方法
【专利摘要】本发明提供一种接口测试方法及装置,包括:接收包括待测接口的标识的测试请求;查找当前存储的各接口对应的各接口特征的摘要信息,获取所述待测接口对应的各接口特征的摘要信息,所述接口对应的接口特征的摘要信息包括所述接口的标识、所述接口特征的标识、以及相应的前置条件和后置条件;根据所述待测接口对应的各接口特征的摘要信息,确定标准摘要信息;根据所述标准摘要信息,对所述待测接口进行接口测试。通过本发明提供的接口测试方法及装置,能够基于各个业务场景对接口进行全面测试,提高接口测试的全面性和可靠性。
【专利说明】接口测试方法及装置【技术领域】
[0001 ] 本发明涉及接口测试领域,尤其涉及一种接口测试方法及装置。
【背景技术】
[0002]接口测试是对系统间接口进行的一种测试。接口测试主要用于检测系统与系统之间以及系统内部的各个子系统之间的交互接口。现有的一种接口测试方法为,通过人工的方式进行测试,即在测试过程中,测试人员会基于测试经验,通过人工判断获取待测接口的业务场景和相应的前置条件、后置条件,并根据该前置条件和后置条件,基于该业务场景向调用系统发起实际的业务需求,以使所述调用系统在其状态满足所述前置条件时,则通过接口与其它被调用系统进行交互,测试人员则获取交互后被调用系统的当前状态,并根据该当前状态与后置条件进行对比的结果,获得接口测试结果。
[0003]但是,在实际的接口测试过程中,各系统之间以及内部子系统之间的交互通常涉及多种复杂的业务场景,而采用人工测试往往很难全面覆盖这些业务场景,这就导致基于某些业务场景下的接口功能得不到测试,降低了接口测试的全面性和可靠性。

【发明内容】
[0004]本发明提供一种接口测试方法及装置,用于解决现有的接口测试方案无法对接口进行全面测试的问题。
[0005]本发明的第一个方面是提供一种接口测试方法,包括:
[0006]接收测试请求,所述测试请求包括待测接口的标识;
[0007]查找当前存储的各接口对应的各接口特征的摘要信息,获取所述待测接口对应的各接口特征的摘要信息,所述接口对应的接口特征的摘要信息包括所述接口的标识、所述接口特征的标识、以及相应的前置条件和后置条件,其中,所述前置条件为当调用系统需要基于所述接口特征对应的业务场景通过所述接口与被调用系统进行交互时,所述调用系统的当前状态,所述后置条件为所述调用系统基于所述接口特征对应的业务场景通过所述接口与所述被调用系统进行交互后,所述被调用系统的当前状态;
[0008]根据所述待测接口对应的各接口特征的摘要信息,确定标准摘要信息;
[0009]根据所述标准摘要信息,对所述待测接口进行接口测试。
[0010]本发明的另一个方面是提供一种接口测试装置,包括:
[0011 ] 接收模块,用于接收测试请求,所述测试请求包括待测接口的标识;
[0012]第一获取模块,用于查找当前存储的各接口对应的各接口特征的摘要信息,获取所述待测接口对应的各接口特征的摘要信息,所述接口对应的接口特征的摘要信息包括所述接口的标识、所述接口特征的标识、以及相应的前置条件和后置条件,其中,所述前置条件为当调用系统需要基于所述接口特征对应的业务场景通过所述接口与被调用系统进行交互时,所述调用系统的当前状态,所述后置条件为所述调用系统基于所述接口特征对应的业务场景通过所述接口与所述被调用系统进行交互后,所述被调用系统的当前状态;[0013]第一处理模块,用于根据所述待测接口对应的各接口特征的摘要信息,确定标准摘要信息;
[0014]测试模块,用于根据所述标准摘要信息,对所述待测接口进行接口测试。
[0015]本发明提供的接口测试方法及装置,通过根据包括待测接口标识的测试请求,查找各接口对应的各接口特征的摘要信息,获取并根据所述待测接口对应的各接口特征的摘要信息,确定标准摘要信息,以根据所述标准摘要信息对所述待测接口进行接口测试的技术方案,能够基于各个业务场景对接口进行全面测试,提高接口测试的全面性和可靠性。
【专利附图】

【附图说明】
[0016]图1为本发明实施例一提供的一种接口测试方法的流程示意图;
[0017]图2为本发明实施例二提供的一种接口测试装置的结构示意图。
【具体实施方式】
[0018]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
[0019]图1为本发明实施例一提供的一种接口测试方法的流程示意图,如图1所示,所述方法包括:
[0020]101、接收测试请求,所述测试请求包括待测接口的标识。
[0021]具体的,在实际应用中,所述待测接口可以为任意交互接口,例如,可以为系统与系统之间交互所需的接口 ;再例如,还可以为系统内部的各子系统之间交互所需的接口。
[0022]102、查找当前存储的各接口对应的各接口特征的摘要信息,获取所述待测接口对应的各接口特征的摘要信息。
[0023]其中,所述接口对应的接口特征的摘要信息包括所述接口的标识、所述接口特征的标识、以及相应的前置条件和后置条件。具体的,所述前置条件为当调用系统需要基于所述接口特征对应的业务场景通过所述接口与被调用系统进行交互时,所述调用系统的当前状态,所述后置条件为所述调用系统基于所述接口特征对应的业务场景通过所述接口与所述被调用系统进行交互后,所述被调用系统的当前状态。
[0024]在实际应用中,可以将所述摘要信息中的所述接口特征的标识、以及相应的前置条件和后置条件定义为三元组的形式,例如,〈前置条件,接口特征标识,后置条件〉。
[0025]具体的,系统的状态通常可以通过变量表示,相应的,所述前置条件和后置条件可以通过在正常交互过程中,调用系统和被调用系统的变量所需要满足的取值范围来表示。进一步具体的,所述变量的类型可以有多种,相应的,所述变量的取值范围的形式也有多种,例如,数值型变量的取值范围可以通过一个区间表示、布尔变量的取值范围可以通过布尔值区间表示。
[0026]可以理解,所述接口特征具体用于表征通过所述接口进行交互的各业务场景。在实际测试过程中,系统交互往往是比较复杂的,并且通常会存在多种业务场景,人工测试将很难全面覆盖不同的交互场景。因此,需要预先建立各接口对应的各接口特征的摘要信息,则相应的,在102之前,所述方法还可以包括:
[0027]针对各系统中的每个系统,确定与所述系统存在交互的交互系统;[0028]针对每个所述交互系统,获取所述系统和所述交互系统交互的业务场景,并生成与所述业务场景对应的接口特征的标识;
[0029]基于每个所述业务场景,确定所述系统和所述交互系统交互时的,调用系统和被调用系统、以及交互所用的接口 ;
[0030]通过对所述调用系统与所述被调用系统的源代码进行分析,获得所述接口特征对应的前置条件和后置条件;
[0031]将所述接口的标识、所述接口特征的标识、以及所述接口特征对应的前置条件和后置条件存储至所述接口对应的所述接口特征的摘要信息。
[0032]在实际应用中,可以通过对各系统的源代码分析,获得各系统之间调用的拓扑关系,进一步的,通过对各系统调用的拓扑关系进行分析,可以确定各系统的交互系统。其中,所述业务场景可以通过对各个系统的需求文档和设计文档进行分析得到系统之间交互的场景,即业务场景,进而基于业务场景,通过对交互系统的源代码进行分析,获得相应的摘要信息。其中,所述接口特征的标识的形式可以有多种,例如,可以为变量形式。
[0033]具体的,在实际系统交互关系中,可能有某些系统不与其它系统存在交互关系,而对于这些系统来说,没有相应的交互接口,也就无需进行接口测试。因此,在上述获得摘要信息的过程中,可以先将不与其它系统进行交互的系统过滤掉,从而节省处理资源,则相应的,在本实施方式中,在所述针对各系统中的每个系统,确定与所述系统存在交互的交互系统之前,还可以包括:
[0034]获取所述各系统之间的调用拓扑关系;
[0035]根据所述调用拓扑关系,过滤掉所述各系统中不与其它系统存在交互关系的系统;
[0036]则相应的,在本实施方式中,所述针对各系统中的每个系统,确定与所述系统存在交互的交互系统,具体包括:
[0037]针对过滤后的各系统中的每个系统,确定与所述系统存在交互的交互系统。
[0038]举例来说,上述获得摘要信息的过程可以通过以下摘要信息算法实现:
[0039]procedure systemSummary (DCFG dcfg) {// 其中,dcfg 是各系统间的调用关系
[0040]get the topology list from dcfg;
[0041]reverse the list;
[0042]while (! list, isempty ()) {
[0043]p=list.delete ();
[0044]old=p.getSummary ();
[0045]analysis p locally according to interface feature;
[0046]new=generate new summary for p;
[0047] if (old!=new)
[0048]add all the callsystems which invoke p to the list;
[0049]}}
[0050]通过上述实施方式,可以基于接口的不同业务场景,获得接口对应的各接口特征的摘要信息,从而在后续对接口进行的接口测试中全面覆盖各业务场景,进而有效提高接口测试的全面性和可靠性。[0051]103、根据所述待测接口对应的各接口特征的摘要信息,确定标准摘要信息。
[0052]可选的,在本实施例一种可实施的方式中,103具体可以包括:将所述待测接口对应的各接口特征的摘要信息,作为所述标准摘要信息。
[0053]可以理解,通过上述实施方式,能够基于所述待测接口对应的各接口特征对应的业务场景,对所述待测接口进行全面测试。
[0054]可选的,在接口测试中,还可以有选择性地针对接口的某个接口特征进行接口测试,相应的,在本实施例另一种可实施的方式中,所述测试请求还包括待测接口特征的标识,则相应的,103具体可以包括:
[0055]从所述待测接口对应的各接口特征的摘要信息中,筛选出所述标准摘要信息,所述标准摘要信息中接口特征的标识为所述待测接口特征的标识。
[0056]通过本实施方式,能够基于待测接口对应的待测接口特征对应的业务场景,有针对性和选择性地对待测接口进行全面测试。
[0057]104、根据所述标准摘要信息,对所述待测接口进行接口测试。
[0058]具体的,在确定所述标准摘要信息之后,便可以对所述待测接口进行全面的接口测试,在实际应用中,通常可以采用两种方式,第一种方式为根据所述标准摘要信息,利用现有的接口测试工具,如功能测试工具QTP,录制测试脚本,从而基于所述测试脚本对待测接口进行测试。第二种方式为采用静态分析方法,即在不需运行系统的情况下,基于所述标准摘要信息,采用静态的方式分析判断系统之间的交互是否存在问题,实现对待测接口的测试。
[0059]可以理解,由于标准摘要信息中包含了待测接口对应的各业务场景的接口测试信息,因此,根据所述标准摘要信息可以模拟待测接口对应的所有业务场景,避免了人工测试不全面的问题。
[0060]本实施例提供的接口测试方法,通过根据包括待测接口标识的测试请求,查找各接口对应的各接口特征的摘要信息,获取并根据所述待测接口对应的各接口特征的摘要信息,确定标准摘要信息,以根据所述标准摘要信息对所述待测接口进行接口测试的技术方案,能够基于各个业务场景对接口进行全面测试,提高接口测试的全面性和可靠性。
[0061]图2为本发明实施例二提供的一种接口测试装置的结构示意图,如图2所示,所述装置包括:
[0062]接收模块21,用于接收测试请求,所述测试请求包括待测接口的标识;
[0063]第一获取模块22,用于查找当前存储的各接口对应的各接口特征的摘要信息,获取所述待测接口对应的各接口特征的摘要信息,所述接口对应的接口特征的摘要信息包括所述接口的标识、所述接口特征的标识、以及相应的前置条件和后置条件,其中,所述前置条件为当调用系统需要基于所述接口特征对应的业务场景通过所述接口与被调用系统进行交互时,所述调用系统的当前状态,所述后置条件为所述调用系统基于所述接口特征对应的业务场景通过所述接口与所述被调用系统进行交互后,所述被调用系统的当前状态;
[0064]第一处理模块23,用于根据所述待测接口对应的各接口特征的摘要信息,确定标准摘要信息;
[0065]测试模块24,用于根据所述标准摘要信息,对所述待测接口进行接口测试。
[0066]具体的,在实际应用中,所述待测接口可以为任意交互接口,例如,可以为系统与系统之间交互所需的接口 ;再例如,还可以为系统内部的各子系统之间交互所需的接口。
[0067]在实际应用中,可以将所述摘要信息中的所述接口特征的标识、以及相应的前置条件和后置条件定义为三元组的形式,例如,〈前置条件,接口特征标识,后置条件〉。
[0068]可以理解,所述接口特征具体用于表征交互的业务场景。具体的,为了预先建立各接口对应的各接口特征的摘要信息,所述装置还可以包括:
[0069]第二处理模块,用于在第一获取模块22查找当前存储的各接口对应的各接口特征的摘要信息之前,针对各系统中的每个系统,确定与所述系统存在交互的交互系统;
[0070]第三处理模块,用于针对每个所述交互系统,获取所述系统和所述交互系统交互的业务场景,并生成与所述业务场景对应的接口特征的标识;
[0071]第四处理模块,用于基于每个所述业务场景,确定所述系统和所述交互系统交互时的,调用系统和被调用系统、以及交互所用的接口 ;
[0072]分析模块,用于通过对所述调用系统与所述被调用系统的源代码进行分析,获得所述接口特征对应的前置条件和后置条件;
[0073]存储模块,用于将所述接口的标识、所述接口特征的标识、以及所述接口特征对应的前置条件和后置条件存储至所述接口对应的所述接口特征的摘要信息。
[0074]具体的,在实际系统交互关系中,可能有某些系统不与其它系统存在交互关系,而对于这些系统也就无需进行接口测试。因此,在上述获得摘要信息的过程中,可以先将不与其它系统进行交互的系统过滤掉,从而节省处理资源,则相应的,在本实施方式中,所述装置还可以包括:
[0075]第二获取模块,用于在所述第二处理模块针对各系统中的每个系统确定与所述系统存在交互的交互系统之前,获取所述各系统之间的调用拓扑关系;
[0076]过滤模块,用于根据所述调用拓扑关系,过滤掉所述各系统中不与其它系统存在交互关系的系统;
[0077]相应的,所述第二处理模块,具体用于针对过滤后的各系统中的每个系统,确定与所述系统存在交互的交互系统。
[0078]通过上述实施方式,可以基于接口的不同业务场景,获得接口对应的各接口特征的摘要信息,从而在后续对接口进行的接口测试中全面覆盖各业务场景,进而有效提高接口测试的全面性和可靠性。
[0079]可选的,在本实施例一种可实施的方式中,第一处理模块23,具体可以用于将所述待测接口对应的各接口特征的摘要信息,作为所述标准摘要信息。可以理解,通过上述实施方式,能够基于所述待测接口对应的各接口特征对应的业务场景,对所述待测接口进行全面测试。
[0080]可选的,在接口测试中,还可以有选择性地针对接口的某个接口特征进行接口测试,相应的,在本实施例另一种可实施的方式中,所述测试请求还包括待测接口特征的标识,则相应的,第一处理模块23,具体可以用于从所述待测接口对应的各接口特征的摘要信息中,筛选出所述标准摘要信息,所述标准摘要信息中接口特征的标识为所述待测接口特征的标识。
[0081]通过本实施方式,能够基于待测接口对应的待测接口特征对应的业务场景,有针对性和选择性地对待测接口进行全面测试。[0082]具体的,在确定所述标准摘要信息之后,便可以对所述待测接口进行全面的接口测试。可以理解,由于标准摘要信息中包含了待测接口对应的各业务场景的接口测试信息,因此,根据所述标准摘要信息可以模拟待测接口对应的所有业务场景,避免了人工测试不全面的问题。
[0083]本实施例提供的接口测试方法,通过根据包括待测接口标识的测试请求,查找各接口对应的各接口特征的摘要信息,获取并根据所述待测接口对应的各接口特征的摘要信息,确定标准摘要信息,以根据所述标准摘要信息对所述待测接口进行接口测试的技术方案,能够基于各个业务场景对接口进行全面测试,提高接口测试的全面性和可靠性。
[0084]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0085]本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0086]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
【权利要求】
1.一种接口测试方法,其特征在于,包括: 接收测试请求,所述测试请求包括待测接口的标识; 查找当前存储的各接口对应的各接口特征的摘要信息,获取所述待测接口对应的各接口特征的摘要信息,所述接口对应的接口特征的摘要信息包括所述接口的标识、所述接口特征的标识、以及相应的前置条件和后置条件,其中,所述前置条件为当调用系统需要基于所述接口特征对应的业务场景通过所述接口与被调用系统进行交互时,所述调用系统的当前状态,所述后置条件为所述调用系统基于所述接口特征对应的业务场景通过所述接口与所述被调用系统进行交互后,所述被调用系统的当前状态; 根据所述待测接口对应的各接口特征的摘要信息,确定标准摘要信息; 根据所述标准摘要信息,对所述待测接口进行接口测试。
2.根据权利要求1所述的方法,其特征在于,所述根据所述待测接口对应的各接口特征的摘要信息,确定标准摘要信息,具体包括: 将所述待测接口对应的各接口特征的摘要信息,作为所述标准摘要信息。
3.根据权利要求1所述的方法,其特征在于,所述测试请求还包括待测接口特征的标识;所述根据所述待测接口对应的各接口特征的摘要信息,确定标准摘要信息,具体包括: 从所述待测接口对应的各接口特征的摘要信息中,筛选出所述标准摘要信息,所述标准摘要信息中接口特征的标识为所述待测接口特征的标识。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述查找当前存储的各接口对应的各接口特征的摘要信息之前,还包括: 针对各系统中的每个系统,确定与所述系统存在交互的交互系统; 针对每个所述交互系统,获取所述系统和所述交互系统交互的业务场景,并生成与所述业务场景对应的接口特征的标识; 基于每个所述业务场景,确定所述系统和所述交互系统交互时的,调用系统和被调用系统、以及交互所用的接口 ; 通过对所述调用系统与所述被调用系统的源代码进行分析,获得所述接口特征对应的前置条件和后置条件; 将所述接口的标识、所述接口特征的标识、以及所述接口特征对应的前置条件和后置条件存储至所述接口对应的所述接口特征的摘要信息。
5.根据权利要求4所述的方法,其特征在于,所述针对各系统中的每个系统,确定与所述系统存在交互的交互系统之前,还包括: 获取所述各系统之间的调用拓扑关系; 根据所述调用拓扑关系,过滤掉所述各系统中不与其它系统存在交互关系的系统; 所述针对各系统中的每个系统,确定与所述系统存在交互的交互系统,具体包括: 针对过滤后的各系统中的每个系统,确定与所述系统存在交互的交互系统。
6.一种接口测试装置,其特征在于,包括: 接收模块,用于接收测试请求,所述测试请求包括待测接口的标识; 第一获取模块,用于查找当前存储的各接口对应的各接口特征的摘要信息,获取所述待测接口对应的各接口特征的摘要信息,所述接口对应的接口特征的摘要信息包括所述接口的标识、所述接口特征的标识、以及相应的前置条件和后置条件,其中,所述前置条件为当调用系统需要基于所述接口特征对应的业务场景通过所述接口与被调用系统进行交互时,所述调用系统的当前状态,所述后置条件为所述调用系统基于所述接口特征对应的业务场景通过所述接口与所述被调用系统进行交互后,所述被调用系统的当前状态; 第一处理模块,用于根据所述待测接口对应的各接口特征的摘要信息,确定标准摘要信息; 测试模块,用于根据所述标准摘要信息,对所述待测接口进行接口测试。
7.根据权利要求6所述的装置,其特征在于, 所述第一处理模块,具体用于将所述待测接口对应的各接口特征的摘要信息,作为所述标准摘要信息。
8.根据权利要求6所述的装置,其特征在于,所述测试请求还包括待测接口特征的标识; 所述第一处理模块,具体用于从所述待测接口对应的各接口特征的摘要信息中,筛选出所述标准摘要信息,所述标准摘要信息中接口特征的标识为所述待测接口特征的标识。
9.根据权利要求6-8中任一项所述的装置,其特征在于,所述装置还包括: 第二处理模块,用于在所述第一获取模块查找当前存储的各接口对应的各接口特征的摘要信息之前,针对各系统中的每个系统,确定与所述系统存在交互的交互系统; 第三处理模块,用于针对每个所述交互系统,获取所述系统和所述交互系统交互的业务场景,并生成与所述业务场景对应的接口特征的标识; 第四处理模块,用于基于每个所述业务场景,确定所述系统和所述交互系统交互时的,调用系统和被调用系统、以及交互所用的接口 ; 分析模块,用于通过对所述调用系统与所述被调用系统的源代码进行分析,获得所述接口特征对应的前置条件和后置条件; 存储模块,用于将所述接口的标识、所述接口特征的标识、以及所述接口特征对应的前置条件和后置条件存储至所述接口对应的所述接口特征的摘要信息。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括: 第二获取模块,用于在所述第二处理模块针对各系统中的每个系统,确定与所述系统存在交互的交互系统之前,获取所述各系统之间的调用拓扑关系; 过滤模块,用于根据所述调用拓扑关系,过滤掉所述各系统中不与其它系统存在交互关系的系统; 所述第二处理模块,具体用于针对过滤后的各系统中的每个系统,确定与所述系统存在交互的交互系统。
【文档编号】G06F11/36GK103914377SQ201410092572
【公开日】2014年7月9日 申请日期:2014年3月13日 优先权日:2014年3月13日
【发明者】杨学红 申请人:中国联合网络通信集团有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1