CN113312260A - 一种接口测试方法、装置、设备及存储介质 - Google Patents
一种接口测试方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113312260A CN113312260A CN202110588287.4A CN202110588287A CN113312260A CN 113312260 A CN113312260 A CN 113312260A CN 202110588287 A CN202110588287 A CN 202110588287A CN 113312260 A CN113312260 A CN 113312260A
- Authority
- CN
- China
- Prior art keywords
- interface
- request message
- tested
- test
- information
- 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
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
技术领域
本文属于自动程序设计领域,具体涉及一种接口测试方法、装置、设备及存储介质。
背景技术
现有技术中,接口测试其实就是模拟调用方,通过接口通信来检测被测接口的正确性和容错性。模拟客户端上的前端逻辑,调用服务端提供的接口。接口测试一般有手工测试和工具自动化测试,手工接口测一般按照被测***的接口协议,报文格式要求,手工使用模拟工具发送被测报文,对接收到的响应报文进行人工或***自动判断,即可完成接口的手工测试。但下次再进行测试时,由于数据约束性的要求,可能需要对上次报文中使用的部分数据进行更新才能进行正常测试,因此手工测试效率极低。
接口自动化测试工具,具有可视化接口案例编写界面、多协议支持等优点,然而在面对大量交易码及接口案例时,接口案例创建,存在很多重复的操作,在接口案例创建时需要依次执行前序的业务***,从而在实现具体业务功能的基础上,生成相应的接口案例,因此在需要完成批量化的接口测试时,则需要人工依次操作相应的业务***,从而在实现业务功能时依次生成接口案例,此过程效率低下,很难满足批量接口测试的需求。因此如何提高接口测试的测试效率成为目前亟需解决的技术问题。
发明内容
针对现有技术的上述问题,本文的目的在于,提供一种接口测试方法、装置、设备及存储介质,能够提高接口测试的测试效率。
为了解决上述技术问题,本文的具体技术方案如下:
一方面,本文提供一种接口测试方法,所述方法包括:
获取接口测试指令,所述接口测试指令包括至少一个待测试接口及每个所述待测试接口对应的测试参数;
根据所述待测试接口,确定每个待测试接口对应的请求报文模版;
根据所述请求报文模版和所述测试参数,生成每个待测试接口对应的请求报文案例;
依次执行所述请求报文案例,以完成对每个待测试接口的测试。
进一步地,所述根据所述待测试接口,确定每个待测试接口对应的请求报文模版,包括:
根据所述待测试接口,确定每个所述待测试接口对应的交易码,所述交易码为所述待测试接口执行的业务类型;
从预设模版库中确定与所述交易码对应的请求报文模版。
进一步地,所述请求报文模版通过如下步骤获得:
针对任一业务类型,获取所述业务类型对应的交易码;
从历史日志库中检索与所述交易码匹配的历史请求报文,所述历史日志库用于存储所述业务类型运行完成后的请求报文;
对所述历史请求报文进行解析,以获得所述历史请求报文中不同字段信息;
根据所述历史请求报文中不同字段信息,生成所述交易码对应的请求报文模版。
进一步地,所述根据所述历史请求报文中不同字段信息,生成所述交易码对应的请求报文模版,包括:
根据所述历史请求报文中不同字段信息,确定不同字段的位置及属性;
根据所述字段的属性,生成所述字段的标签信息;
根据所述字段的位置及其标签信息,生成所述交易码对应的请求报文模版。
进一步地,所述预设模版库的建立过程包括:
获取全部业务类型对应的请求报文模版,以形式所述预设模版库;
将所述预设模版库存储至第一预设位置。
进一步地,所述从历史日志库中检索与所述交易码匹配的历史请求报文,还包括:
当所述历史日志库中没有与所述交易码相匹配的历史请求报文时,生成预设格式请求报文,并将所述预设格式请求报文存储至第二预设位置,以从所述第二预设位置提取所述预设格式请求报文,进而完成对所述交易码对应待测试接口的测试。
进一步地,所述根据所述请求报文模版和所述测试参数,生成每个待测试接口对应的请求报文案例,包括:
根据所述请求报文模版,确定所述请求报文模版中每个字段的位置和标签信息;
根据每个所述字段的标签信息和所述测试参数,确定每个所述字段的标签信息对应的数据;
根据每个所述字段的位置和每个所述字段的标签信息对应的数据,生成待测试接口对应的请求报文案例。
进一步地,所述依次执行所述请求报文案例,以完成对每个待测试接口的测试,包括:
获取待测***信息和执行参数信息,所述待测***信息至少包括***所属地域、物理子***和业务***;
根据所述待测***信息,依次执行所述请求报文案例,以完成对每个待测试接口的测试。
进一步地,所述方法还包括:
接收测试接口信息采集指令,所述测试接口信息至少包括接口变更人信息、接口变更详情、接口合规信息;
根据所述测试接口信息采集指令,获取所述待测试接口信息。
进一步地,所述方法还包括:
将所述测试参数设定为指定异常参数,并获取通过所述指定异常参数进行测试的测试结果;
判断所述测试结果是否为业务报错信息;
若所述测试结果为业务报错信息,则获取测试结果报文;
根据所述测试结果报文,确定所述待测试接口的漏洞信息,以使开发人员根据所述漏洞信息对所述待测试接口进行处理。
进一步地,所述根据所述测试结果报文,确定所述待测试接口的漏洞信息,包括:
对所述测试结果报文进行解析,以获得所述测试结果报文的不同字段信息;
确定所述不同字段信息中的异常信息;
根据所述异常信息,确定所述待测试接口的漏洞信息。
进一步地,所述依次执行所述请求报文案例,以完成对每个待测试接口的测试,包括:
调用预设程序脚本,将所述请求报文案例生成接口测试脚本;
依次执行所述接口测试脚本,以完成对每个待测试接口的测试。
另一方面,本文还提供一种接口测试装置,所述装置包括:
接口测试指令获取模块,用于获取接口测试指令,所述接口测试指令包括至少一个待测试接口及每个所述待测试接口对应的测试参数;
请求报文模版确定模块,用于根据所述待测试接口,确定每个待测试接口对应的请求报文模版;
请求报文案例生成模块,用于根据所述请求报文模版和所述测试参数,生成每个待测试接口对应的请求报文案例;
测试模块,用于依次执行所述请求报文案例,以完成对每个待测试接口的测试。
另一方面,本文还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述所述的方法。
最后,本文还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的方法。
采用上述技术方案,本文所述的一种接口测试方法、装置、设备及存储介质,通过获取接口测试指令,所述接口测试指令包括至少一个待测试接口及每个所述待测试接口对应的测试参数;根据所述待测试接口,确定每个待测试接口对应的请求报文模版;根据所述请求报文模版和所述测试参数,生成每个待测试接口对应的请求报文案例;依次执行所述请求报文案例,以完成对每个待测试接口的测试,可以实现测试接口请求报文的批量生成,减少了重复性步骤,使得测试过程更加高效全面。
为让本文的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
附图说明
为了更清楚地说明本文实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本文的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本文实施例提供的一种接口测试方法步骤示意图;
图2示出了本文实施例中请求报文模版获取步骤示意图;
图3示出了本文实施例中请求报文模版进一步获取步骤示意图;
图4示出了本文实施例中请求报文案例步骤示意图;
图5示出了本文实施例中异常场景测试步骤示意图;
图6示出了本文实施例中提供的一种接口测试装置步骤示意图;
图7示出了本文实施例提供的计算机设备步骤示意图。
附图符号说明:
100、接口测试指令获取模块;
200、请求报文模版确定模块;
300、请求报文案例生成模块;
400、测试模块;
702、计算机设备;
704、处理器;
706、存储器;
708、驱动机构;
710、输入/输出模块;
712、输入设备;
714、输出设备;
716、呈现设备;
718、图形用户接口;
720、网络接口;
722、通信链路;
724、通信总线。
具体实施方式
下面将结合本文实施例中的附图,对本文实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本文一部分实施例,而不是全部的实施例。基于本文中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本文保护的范围。
需要说明的是,本文的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本文的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
现有技术中,在接口测试时需要执行前序的业务***,从而在实现具体业务功能的基础上,生成相应的接口案例,进而实现对接口的测试,但是在面对大量交易码及接口案例时,在接口案例创建时需要重复操作业务***,从而生成多个接口案例,此过程效率低下,严重影响了测试接口的批量测试效率。
为了解决上述问题,本文实施例提供了接口测试方法,能够提高接口测试的效率。图1是本文实施例提供的一种接口测试方法的步骤示意图,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的***或装置产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行。具体的如图1所示,所述方法可以包括:
S101:获取接口测试指令,所述接口测试指令包括至少一个待测试接口及每个所述待测试接口对应的测试参数;
S102:根据所述待测试接口,确定每个待测试接口对应的请求报文模版;
S103:根据所述请求报文模版和所述测试参数,生成每个待测试接口对应的请求报文案例;
S104:依次执行所述请求报文案例,以完成对每个待测试接口的测试。
本文通过提前设置不同测试接口的请求报文模版,从而在确定待测试接口时,只需输入所述待测试接口对应的测试参数即可,就可以根据所述请求报文模版生成请求报文案例,从而实现了多个所述待测试接口对应的请求报文模版的批量化生成,与现有技术相比,减少了重复操作的步骤,针对同一个待测试接口,根据不同的测试参数,可以快速的批量的生成多个测试案例,提高了请求报文案例生成效率,进而提高了测试过程中的效率。
在实际工作中,接口测试其实就是模拟调用方,比如Client端,通过接口通信来检测被测接口的正确性和容错性。模拟调用方,并不是开发一个浏览器或者应用,而是模拟客户端上的前端逻辑,调用Server端提供的接口,因此本文的执行主体可以为自动化的接口测试工具,通过测试人员或用户的输入,所述接口测试工具获取接口测试指令,所述接口测试指令可以为批量化的测试指令,比如包括多个待测试接口,以及针对每个待测试接口对应的测试参数,所述测试参数可以为对应待测试接口的测试场景参数,从而能够根据所述测试参数结合请求报文模版生成具体的测试案例,最后根据用户的执行指令,依次执行所述请求报文案例,以完成对每个待测试接口的测试,因此本文通过对接口测试工具的改进,能提高该接口测试工具生成测试案例的效率,进一步实现了测试案例的批量化生成,提高了测试接口的测试效率。
需要说明的是,由于不同待测试接口的执行功能可能不同,因此每个所述待测试接口的请求报文模版可以不同,为了提高请求报文模版的获取效率和准确性,可以建立待测试接口和请求报文模版的映射关系,这样就可以在确定待测试接口后,根据所述映射关系确定相应的请求报文模版。
在一些其他实施例中,由于请求报文是根据具体的业务类型的执行生成的,因此所述业务类型和所述测试接口其实也是呈对应关系的,因此所述根据所述待测试接口,确定每个待测试接口对应的请求报文模版,包括:
根据所述待测试接口,确定每个所述待测试接口对应的交易码,所述交易码为所述待测试接口执行的业务类型;
从预设模版库中确定与所述交易码对应的请求报文模版。
在多***的平台构架下,通过接口测试可以实现高效的缺陷检测和质量监督能力,平台复杂***越庞大,接口测试的效果越明显,接口测试是站在用户的角度对***进行全面高效持续的检测,因此在本说明书实施例中,是通过模拟前端的业务***的执行也实现对测试接口的调用,从而实现对测试接口的测试。
实际工作中,不同的业务类型可以对应不同的测试接口,所述模拟的业务类型可以通过交易码来表示,因此可以通过建立所述交易码和所述测试接口的对应关系,这样可以根据具体的测试接口确定相应交易码表示的业务类型,从而实现先测试接口的调用。这样可以通过交易码来实现请求报文模版的提取,其中所述请求报文模版可以存储在预设模版库中,根据不同的交易码提取相应的请求报文模版,具体地,也可以通过建立所述交易码和所述请求报文模版的映射关系来确定所述请求报文模版。
在一些其他实施例中,还可以在每个所述请求报文模版的头部***对应的交易码,这样在确定请求报文模版时,可以通过关键字的形式进行检索,这样可以提高检索效率,提高批量化获取请求报文模版的效率,进一步实施例中,在获取相应的带有交易码的请求报文模版后,还可以删除该头部交易码,从而获取标准化的请求报文模版,便于后续测试参数的导入。
在本说明书实施例中,如图2所示,所述请求报文模版通过如下步骤获得:
S201:针对任一业务类型,获取所述业务类型对应的交易码;
S202:从历史日志库中检索与所述交易码匹配的历史请求报文,所述历史日志库用于存储所述业务类型运行完成后的请求报文;
S203:对所述历史请求报文进行解析,以获得所述历史请求报文中不同字段信息;
S204:根据所述历史请求报文中不同字段信息,生成所述交易码对应的请求报文模版。
所述交易码可以理解为所述业务类型的唯一识别码,这样便于通过所述交易码确定具体的业务类型,从而确定所述业务类型运行时需要调用的接口信息,因此在实际工作中,可以通过业务类型的历史运行信息来确定其对应的请求报文模版,具体地,通过从历史日志库中检索与所述交易码匹配的历史请求报文,其中所述历史日志库可以存储所述业务类型运行完成后的请求报文,这样该请求报文可以作为所述业务类型的母报文,从而对该母报文进行解析确定出该母报文的不同字段信息,并根据该字段信息生成对应的请求报文模版。
其中,不同的业务类型运行时调用的接口可能不同,因此需要对每个运行的业务类型进行历史请求报文的获取,从而确保单个平台架构中的全部业务类型的历史请求报文都能被获取到,从而保证了该平台架构内的接口都在可被测试的范围内,提高了该接口测试工具的实用性和可靠性。
具体操作是,按照预设分割规则对所述母报文进行分割,进而得到所述母报文的不同字段信息,然后基于不同字段的信息构造出请求报文模版,其中预设分割规则可以根据实际情况设置,比如按照关键词方式分割,或按照字符形式结合关键字等方式分割,具体的分割方式在本说明书不做限定。
进一步实施例中,如图3所示,所述根据所述历史请求报文中不同字段信息,生成所述交易码对应的请求报文模版,包括:
S2041:根据所述历史请求报文中不同字段信息,确定不同字段的位置及属性;
S2042:根据所述字段的属性,生成所述字段的标签信息;
S2043:根据所述字段的位置及其标签信息,生成所述交易码对应的请求报文模版。
可以理解为,在将所述母报文进行分割后得到不同字段信息时,可以确定每个字段的位置及属性,就能对每个母报文进行模版化改造,将不同字段的属性生成对应的标签信息,比如性别、手机号、金额等标签信息,进一步根据不用字段的位置确定不同标签的位置,进而得到是交易码对应的请求报文模版。
在实际工作中,不同业务类型实现功能不同,因此请求报文的格式也不同,这样在对字段进行标签化过程中生成不同的标签信息,进而得到不同的请求报文模版。本文通过对不同业务类型的请求报文进行模版化操作,可以通过模版实现请求报文案例的快速准确的批量化生成,提高了对接口测试的效率。
在一些其他实施例中,为了避免获得的历史请求报文为异常报文,从而影响了后续生成的模版的可靠性,还可以根据业务类型获取多个历史请求报文,这样对每个历史请求报文都进行分割、标签化以及模版生成的过程,进而比较针对同一个业务类型生成的多个模版之间的区别,确定其中相同的模版,并将其作为最终的请求报文模版,这样可以提高请求报文模版生成的可靠性,进而保证了后续接口测试的可靠性和稳定性。
在生成了每个业务类型对应的请求报文模版的基础上,所述预设模版库的建立可以包括如下步骤:
获取全部业务类型对应的请求报文模版,以形式所述预设模版库;
将所述预设模版库存储至第一预设位置。
可以理解为,将全部的请求报文模版放入到同一文件夹中,便于对报文请求模版的快速提取,所述第一预设位置可以为平台***中的预设位置,并与接口测试工具建立通信联系,从而便于所述接口测试工具从中提取所述请求报文模版,在一些其他实施例中,所述低于预设位置可以为所述接口测试工具中本地固定位置,这样可以减少在提取模版时信息流转的步骤,提高提取的效率和准确性。
在本说明书实施例中,当所述业务类型为新投产业务类型,则在历史日志库中就检索不到相应的历史请求报文,为了实现对该业务类型对应接口的测试,所述从历史日志库中检索与所述交易码匹配的历史请求报文,还包括:
当所述历史日志库中没有与所述交易码相匹配的历史请求报文时,生成预设格式请求报文,并将所述预设格式请求报文存储至第二预设位置,以从所述第二预设位置提取所述预设格式请求报文,进而完成对所述交易码对应待测试接口的测试。
所述预设格式请求报文可以理解为能被接口识别的通用报文格式,比如.xml格式报文,这样可以通过预设格式请求报文实现对测试接口的测试。所述第二预设位置为预先设置的位置,通过将所述预设格式请求报文放入到所述第二预设位置,从而根据预设文件路径实现对预设格式请求报文的提取。
在本说明书实施例中,在确定每个待测试接口对应的请求报文案例后,就可以生成待测试接口对应的请求报文案例,具体地,如图4所示,所述根据所述请求报文模版和所述测试参数,生成每个待测试接口对应的请求报文案例,包括:
S301:根据所述请求报文模版,确定所述请求报文模版中每个字段的位置和标签信息;
S302:根据每个所述字段的标签信息和所述测试参数,确定每个所述字段的标签信息对应的数据;
S303:根据每个所述字段的位置和每个所述字段的标签信息对应的数据,生成待测试接口对应的请求报文案例。
可以理解为,针对每个请求报文模版,通过标签信息和所述测试参数就能确定该标签对应的具体数据值,然后再结合每个字段的位置,就能生成相应的请求报文案例,通过上述方式可以实现请求报文案例的批量化生成,只需确定多组测试参数,即根据需要构建多个测试场景,根据多个测试场景生成对应的多个测试参数,进而结合所述模版生成多个请求报文案例,这样就得到了对接口进行测试的多个测试案例,从而提高了测试接口的效率和速度,而且能保证测试的准确性和可靠性。
在本说明书实施例中,获取生成的请求报文案例后,就可以实现对接口的测试,作为可选地,可以为根据预设程序脚本,对每个所述请求报文案例进行代码转换,从而形成接口测试脚本,进而根据用户的测试执行指令,调用所述接口测试脚本,从而完成对所述待测试接口的测试,其中,所述预设程序脚本可以为预设的Python脚本。
在实际操作中,所述接口测试工具可以实现对多个请求报文案例的自动转码,因此通过所述接口测试工具可以实现对请求报文案例的自动批量生成,进而实现请求报文案例的自动批量转码,减少了操作步骤,提高了自动化效果,减少了人工操作次数,提高了测试的可靠性和效率。
在一些其他实施例中,同一个平台架构可以在不同的区域不同***下执行,因此为了提高接口测试的精准性,所述依次执行所述请求报文案例,以完成对每个待测试接口的测试,包括:
获取待测***信息和执行参数信息,所述待测***信息至少包括***所属地域、物理子***和业务***;
根据所述待测***信息,依次执行所述请求报文案例,以完成对每个待测试接口的测试。
具体操作时,可以通过下拉框的形式进行选择相应的待测***信息和执行参数信息,可以实现对多个***的测试能力,其中执行参数信息可以为接口请求地址,创建人姓名等个性化的设置内容,从而提高了对多个***的适配能力。
在对待测***信息和执行参数信息配置完成之后,就可以依次执行所述请求报文案例,从而完成对每个待测试接口的测试。
进一步实施例中,在完成对待测试接口的测试后,还可以接收测试结果,并将所述测试结果进行反馈并保存。作为可选地,可以在每个所述待测试接口测试完成后反馈测试结果,并将测试结果写入结果文件中,进一步地,所述测试结果可以直接反馈给测试人员,比如通过可视化界面进行反馈。
在本说明书实施例中,所述方法还包括:
接收测试接口信息采集指令,所述测试接口信息至少包括接口变更人信息、接口变更详情、接口合规信息;
根据所述测试接口信息采集指令,获取所述待测试接口信息。
通过上述步骤实现了从平台构架(比如IT信息管理平台)中自动获取接口信息,包括接口变更人信息、接口变更详情、接口合规情况等。提前设置好账号密码及IT信息管理平台访问地址,后台程序在收到“获取接口信息”的指令后,会去访问IT信息管理平台,模拟人工查询动作,将需要查询的接口信息返回。从而解决了在需要对大量接口进行测试时,测试人员需要手动挨个查询,才能获取接口变更人等接口相关信息的问题。该步骤有助于测试人员获取接口变更情况及变更人,方便测试人员与开发人员对接,有针对的对有变更的接口进行测试。实际操作时,可以为选择获取信息的接口列表文本,单击获取接口变更人按钮或获取接口合规情况按钮,开始执行,即可生成接口变更详情或接口合规情况。
为了对接口进行漏洞和兼容性的快速分析,在本说明书实施例中,如图5所示,所述方法还包括:
S401:将所述测试参数设定为指定异常参数,并获取通过所述指定异常参数进行测试的测试结果;
S402:判断所述测试结果是否为业务报错信息;
S403:若所述测试结果为业务报错信息,则获取测试结果报文;
S404:根据所述测试结果报文,确定所述待测试接口的漏洞信息,以使开发人员根据所述漏洞信息对所述待测试接口进行处理。
可以理解为,本文通过对多种异常场景的自动化构建和执行,根据执行反馈结果排查代码程序中的漏洞,有效提高接口代码的质量和稳定性,如对交易流水号为空、超过标准长度;请求报文中的各字段的类型不规范等异常场景进行构建,对测试接口的兼容性进行测试。
所述测试结果可以通过可视化界面进行展示,从而便于测试人员及时了解对应接口的测试信息,比如测试成功可以显示“测试成功”字样,测试失败可以显示“测试失败”字样,进一步的,测试失败可能是***响应问题,也可能是接口自身问题,因此当出现***响应问题时,可以显示“***报错”,当时接口自身问题时,可以显示“业务报错”。通过上述可视化显示结果可以便于测试人员实时了解测试过程及测试问题所在。
进一步地,当出现业务报错信息时,则可以根据该信息定位到具体的结果报文上从而实现对接口的进行改进。
进一步地,所述根据所述测试结果报文,确定所述待测试接口的漏洞信息,包括:
对所述测试结果报文进行解析,以获得所述测试结果报文的不同字段信息;
确定所述不同字段信息中的异常信息;
根据所述异常信息,确定所述待测试接口的漏洞信息。
可以理解为,该步骤中对测试结果报文的处理和上述对历史请求报文的处理一致,都是进行报文的分割,从而确定不同维度不同属性的字段,比如响应码(成功或失败)、交易流水号、请求报文序号等,通过对不同字段具体数据的分析确定出异常信息,比如响应码为失败,交易流水号为空等问题,通过对应的问题定位到接口的准确代码漏洞,从而实现对接口的改进,进一步提高接口的稳定性和兼容性。
因此,本说明书实施例提供的接口测试方法具有如下有益效果:1)本文能自动批量获取添加接口案例,解决了以往创建测试案例只能手动单一创建的痛点,通过批量导入,自动生成多个接口测试案例,2)本文能自动获取接口信息,解决了测试人员不能及时得知接口变更信息的问题,3)本文能对多种异常场景进行自动化构建、执行,根据执行反馈结果排查代码程序中的漏洞,有效提高了代码的质量。
基于同一发明构思,本说明书实施例还提供一种接口测试装置,如图6所示,所述装置包括:
接口测试指令获取模块100,用于获取接口测试指令,所述接口测试指令包括至少一个待测试接口及每个所述待测试接口对应的测试参数;
请求报文模版确定模块200,用于根据所述待测试接口,确定每个待测试接口对应的请求报文模版;
请求报文案例生成模块300,用于根据所述请求报文模版和所述测试参数,生成每个待测试接口对应的请求报文案例;
测试模块400,用于依次执行所述请求报文案例,以完成对每个待测试接口的测试。
通过上述装置所取得的有益效果和上述方法所取得的有益效果一致,本说明书实施例不做赘述。
如图7所示,为本文实施例提供的一种计算机设备,所述计算机设备702可以包括一个或多个处理器704,诸如一个或多个中央处理单元(CPU),每个处理单元可以实现一个或多个硬件线程。计算机设备702还可以包括任何存储器706,其用于存储诸如代码、设置、数据等之类的任何种类的信息。非限制性的,比如,存储器706可以包括以下任一项或多种组合:任何类型的RAM,任何类型的ROM,闪存设备,硬盘,光盘等。更一般地,任何存储器都可以使用任何技术来存储信息。进一步地,任何存储器可以提供信息的易失性或非易失性保留。进一步地,任何存储器可以表示计算机设备702的固定或可移除部件。在一种情况下,当处理器704执行被存储在任何存储器或存储器的组合中的相关联的指令时,计算机设备702可以执行相关联指令的任一操作。计算机设备702还包括用于与任何存储器交互的一个或多个驱动机构708,诸如硬盘驱动机构、光盘驱动机构等。
计算机设备702还可以包括输入/输出模块710(I/O),其用于接收各种输入(经由输入设备712)和用于提供各种输出(经由输出设备714))。一个具体输出机构可以包括呈现设备716和相关联的图形用户接口(GUI)718。在其他实施例中,还可以不包括输入/输出模块710(I/O)、输入设备712以及输出设备714,仅作为网络中的一台计算机设备。计算机设备702还可以包括一个或多个网络接口720,其用于经由一个或多个通信链路722与其他设备交换数据。一个或多个通信总线724将上文所描述的部件耦合在一起。
通信链路722可以以任何方式实现,例如,通过局域网、广域网(例如,因特网)、点对点连接等、或其任何组合。通信链路722可以包括由任何协议或协议组合支配的硬连线链路、无线链路、路由器、网关功能、名称服务器等的任何组合。
对应于图1-图5中的方法,本文实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法的步骤。
本文实施例还提供一种计算机可读指令,其中当处理器执行所述指令时,其中的程序使得处理器执行如图1至图5所示的方法。
应理解,在本文的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本文实施例的实施过程构成任何限定。
还应理解,在本文实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本文的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本文所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本文实施例方案的目的。
另外,在本文各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本文的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本文各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本文中应用了具体实施例对本文的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本文的方法及其核心思想;同时,对于本领域的一般技术人员,依据本文的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本文的限制。
Claims (15)
1.一种接口测试方法,其特征在于,所述方法包括:
获取接口测试指令,所述接口测试指令包括至少一个待测试接口及每个所述待测试接口对应的测试参数;
根据所述待测试接口,确定每个待测试接口对应的请求报文模版;
根据所述请求报文模版和所述测试参数,生成每个待测试接口对应的请求报文案例;
依次执行所述请求报文案例,以完成对每个待测试接口的测试。
2.根据权利要求1所述的方法,其特征在于,所述根据所述待测试接口,确定每个待测试接口对应的请求报文模版,包括:
根据所述待测试接口,确定每个所述待测试接口对应的交易码,所述交易码为所述待测试接口执行的业务类型;
从预设模版库中确定与所述交易码对应的请求报文模版。
3.根据权利要求2所述的方法,其特征在于,所述请求报文模版通过如下步骤获得:
针对任一业务类型,获取所述业务类型对应的交易码;
从历史日志库中检索与所述交易码匹配的历史请求报文,所述历史日志库用于存储所述业务类型运行完成后的请求报文;
对所述历史请求报文进行解析,以获得所述历史请求报文中不同字段信息;
根据所述历史请求报文中不同字段信息,生成所述交易码对应的请求报文模版。
4.根据权利要求3所述的方法,其特征在于,所述根据所述历史请求报文中不同字段信息,生成所述交易码对应的请求报文模版,包括:
根据所述历史请求报文中不同字段信息,确定不同字段的位置及属性;
根据所述字段的属性,生成所述字段的标签信息;
根据所述字段的位置及其标签信息,生成所述交易码对应的请求报文模版。
5.根据权利要求4所述的方法,其特征在于,所述预设模版库的建立过程包括:
获取全部业务类型对应的请求报文模版,以形式所述预设模版库;
将所述预设模版库存储至第一预设位置。
6.根据权利要求3所述的方法,其特征在于,所述从历史日志库中检索与所述交易码匹配的历史请求报文,还包括:
当所述历史日志库中没有与所述交易码相匹配的历史请求报文时,生成预设格式请求报文,并将所述预设格式请求报文存储至第二预设位置,以从所述第二预设位置提取所述预设格式请求报文,进而完成对所述交易码对应待测试接口的测试。
7.根据权利要求1所述的方法,其特征在于,所述根据所述请求报文模版和所述测试参数,生成每个待测试接口对应的请求报文案例,包括:
根据所述请求报文模版,确定所述请求报文模版中每个字段的位置和标签信息;
根据每个所述字段的标签信息和所述测试参数,确定每个所述字段的标签信息对应的数据;
根据每个所述字段的位置和每个所述字段的标签信息对应的数据,生成待测试接口对应的请求报文案例。
8.根据权利要求1所述的方法,其特征在于,所述依次执行所述请求报文案例,以完成对每个待测试接口的测试,包括:
获取待测***信息和执行参数信息,所述待测***信息至少包括***所属地域、物理子***和业务***;
根据所述待测***信息,依次执行所述请求报文案例,以完成对每个待测试接口的测试。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收测试接口信息采集指令,所述测试接口信息至少包括接口变更人信息、接口变更详情、接口合规信息;
根据所述测试接口信息采集指令,获取所述待测试接口信息。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述测试参数设定为指定异常参数,并获取通过所述指定异常参数进行测试的测试结果;
判断所述测试结果是否为业务报错信息;
若所述测试结果为业务报错信息,则获取测试结果报文;
根据所述测试结果报文,确定所述待测试接口的漏洞信息,以使开发人员根据所述漏洞信息对所述待测试接口进行处理。
11.根据权利要求10所述的方法,其特征在于,所述根据所述测试结果报文,确定所述待测试接口的漏洞信息,包括:
对所述测试结果报文进行解析,以获得所述测试结果报文的不同字段信息;
确定所述不同字段信息中的异常信息;
根据所述异常信息,确定所述待测试接口的漏洞信息。
12.根据权利要求1所述的方法,其特征在于,所述依次执行所述请求报文案例,以完成对每个待测试接口的测试,包括:
调用预设程序脚本,将所述请求报文案例生成接口测试脚本;
依次执行所述接口测试脚本,以完成对每个待测试接口的测试。
13.一种接口测试装置,其特征在于,所述装置包括:
接口测试指令获取模块,用于获取接口测试指令,所述接口测试指令包括至少一个待测试接口及每个所述待测试接口对应的测试参数;
请求报文模版确定模块,用于根据所述待测试接口,确定每个待测试接口对应的请求报文模版;
请求报文案例生成模块,用于根据所述请求报文模版和所述测试参数,生成每个待测试接口对应的请求报文案例;
测试模块,用于依次执行所述请求报文案例,以完成对每个待测试接口的测试。
14.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至12任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至12任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110588287.4A CN113312260B (zh) | 2021-05-28 | 2021-05-28 | 一种接口测试方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110588287.4A CN113312260B (zh) | 2021-05-28 | 2021-05-28 | 一种接口测试方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113312260A true CN113312260A (zh) | 2021-08-27 |
CN113312260B CN113312260B (zh) | 2022-12-02 |
Family
ID=77375732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110588287.4A Active CN113312260B (zh) | 2021-05-28 | 2021-05-28 | 一种接口测试方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113312260B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113806222A (zh) * | 2021-08-30 | 2021-12-17 | 浙江吉利控股集团有限公司 | 接口测试脚本生成方法、装置、设备及存储介质 |
CN114138670A (zh) * | 2021-12-10 | 2022-03-04 | 四川启睿克科技有限公司 | 基于接口自动化测试与功能、性能、安全测试融合的方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020097291A (ko) * | 2001-06-20 | 2002-12-31 | (주)엔토시스 | 무선 인터넷 로그 분석 방법 |
CN101431809A (zh) * | 2008-10-28 | 2009-05-13 | 中国科学院研究生院 | 一种obex协议漏洞挖掘方法及其*** |
US20150278393A1 (en) * | 2014-03-25 | 2015-10-01 | Wipro Limited | System and method for business intelligence data testing |
CN105279090A (zh) * | 2015-11-17 | 2016-01-27 | 中国建设银行股份有限公司 | 应用于金融领域的测试脚本生成方法和装置 |
US10073763B1 (en) * | 2017-12-27 | 2018-09-11 | Accenture Global Solutions Limited | Touchless testing platform |
CN110362497A (zh) * | 2019-07-23 | 2019-10-22 | 上海金融期货信息技术有限公司 | 覆盖全异常字符的自动化api接口测试方法和*** |
CN110399293A (zh) * | 2019-06-21 | 2019-11-01 | 平安科技(深圳)有限公司 | ***测试方法、装置、计算机设备和存储介质 |
CN111858376A (zh) * | 2020-07-29 | 2020-10-30 | 平安养老保险股份有限公司 | 请求报文生成方法和接口测试方法 |
CN112052171A (zh) * | 2020-09-03 | 2020-12-08 | 上海复深蓝软件股份有限公司 | 测试报文处理方法、装置、计算机设备及存储介质 |
US20210089291A1 (en) * | 2019-09-19 | 2021-03-25 | International Business Machines Corporation | Migrating a service to a version of an application programming interface |
-
2021
- 2021-05-28 CN CN202110588287.4A patent/CN113312260B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020097291A (ko) * | 2001-06-20 | 2002-12-31 | (주)엔토시스 | 무선 인터넷 로그 분석 방법 |
CN101431809A (zh) * | 2008-10-28 | 2009-05-13 | 中国科学院研究生院 | 一种obex协议漏洞挖掘方法及其*** |
US20150278393A1 (en) * | 2014-03-25 | 2015-10-01 | Wipro Limited | System and method for business intelligence data testing |
CN105279090A (zh) * | 2015-11-17 | 2016-01-27 | 中国建设银行股份有限公司 | 应用于金融领域的测试脚本生成方法和装置 |
US10073763B1 (en) * | 2017-12-27 | 2018-09-11 | Accenture Global Solutions Limited | Touchless testing platform |
CN110399293A (zh) * | 2019-06-21 | 2019-11-01 | 平安科技(深圳)有限公司 | ***测试方法、装置、计算机设备和存储介质 |
CN110362497A (zh) * | 2019-07-23 | 2019-10-22 | 上海金融期货信息技术有限公司 | 覆盖全异常字符的自动化api接口测试方法和*** |
US20210089291A1 (en) * | 2019-09-19 | 2021-03-25 | International Business Machines Corporation | Migrating a service to a version of an application programming interface |
CN111858376A (zh) * | 2020-07-29 | 2020-10-30 | 平安养老保险股份有限公司 | 请求报文生成方法和接口测试方法 |
CN112052171A (zh) * | 2020-09-03 | 2020-12-08 | 上海复深蓝软件股份有限公司 | 测试报文处理方法、装置、计算机设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
冯瑶等: "基于交易日志的自动化测试技术在功能测试中的应用", 《中国金融电脑》 * |
冯瑶等: "基于交易日志的自动化测试技术在功能测试中的应用", 《中国金融电脑》, no. 11, 7 November 2018 (2018-11-07) * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113806222A (zh) * | 2021-08-30 | 2021-12-17 | 浙江吉利控股集团有限公司 | 接口测试脚本生成方法、装置、设备及存储介质 |
CN113806222B (zh) * | 2021-08-30 | 2024-05-17 | 浙江吉利控股集团有限公司 | 接口测试脚本生成方法、装置、设备及存储介质 |
CN114138670A (zh) * | 2021-12-10 | 2022-03-04 | 四川启睿克科技有限公司 | 基于接口自动化测试与功能、性能、安全测试融合的方法 |
CN114138670B (zh) * | 2021-12-10 | 2024-05-14 | 四川启睿克科技有限公司 | 基于接口自动化测试与功能、性能、安全测试融合的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113312260B (zh) | 2022-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106844217B (zh) | 对应用的控件进行埋点的方法及装置、可读存储介质 | |
CN110928772B (zh) | 一种测试方法及装置 | |
CN107102947B (zh) | Atm交易流程测试装置及方法 | |
CN113312260B (zh) | 一种接口测试方法、装置、设备及存储介质 | |
US10437717B2 (en) | Defect reporting in application testing | |
CN109710528B (zh) | 一种测试脚本生成方法、装置、设备和介质 | |
CN102571403A (zh) | 通用数据质量管控适配器的实现方法和装置 | |
US7353230B2 (en) | Dynamic distributed customer issue analysis | |
CN112540924A (zh) | 接口自动化测试方法、装置、设备及存储介质 | |
CN112181854A (zh) | 一种生成流程自动化脚本的方法、装置、设备及存储介质 | |
CN112650670A (zh) | 应用测试方法、装置、***、电子设备和存储介质 | |
CN107357721B (zh) | 测试***的方法及装置 | |
CN109976725B (zh) | 一种基于轻量级流程引擎的流程程序开发方法及装置 | |
JP2017016507A (ja) | テスト管理システムおよびプログラム | |
US11544179B2 (en) | Source traceability-based impact analysis | |
CN113986749A (zh) | 前端测试信息的展示方法及展示装置、电子设备 | |
CN113434405A (zh) | 测试文件的确定方法及装置、存储介质及电子装置 | |
TWM591202U (zh) | 設備報修管理系統 | |
US20080066005A1 (en) | Systems and Methods of Interfacing with Enterprise Resource Planning Systems | |
Uddagiri et al. | Improving the quality of requirements in middleware requirements specifications | |
CN117093497B (zh) | 测试报告处理方法、装置、电子设备及存储介质 | |
CN113392022B (zh) | 测试需求分析方法、设备、计算机可读介质和程序产品 | |
CN114978937B (zh) | 一种页面数据校验方法及装置 | |
CN108536620B (zh) | 一种总线设备解析方法、***、装置及可读存储介质 | |
CN114297055A (zh) | 一种基于智能学习的WebUI自动化测试方法 |
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 |