CN115373972A - 接口测试方法、装置、存储介质及电子设备 - Google Patents
接口测试方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN115373972A CN115373972A CN202110553937.1A CN202110553937A CN115373972A CN 115373972 A CN115373972 A CN 115373972A CN 202110553937 A CN202110553937 A CN 202110553937A CN 115373972 A CN115373972 A CN 115373972A
- Authority
- CN
- China
- Prior art keywords
- interface
- return value
- test
- database
- tested
- 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
技术领域
本公开涉及自动化测试技术领域,具体地,涉及一种接口测试方法、装置、存储介质及电子设备。
背景技术
由于接口测试有着低成本、高回报的优势,因此越来越多的测试人员开始对系统进行接口测试。同时用于做接口测试的工具、框架也越来越多。
相关技术中,接口测试的方式具体为,通过设置两个不同版本的待比较系统实例,然后使用发送模块同时向两个待比较的系统发送相同请求,接着比较两个待比较的系统输出的结果并生成Diff测试报告。这种方式虽然能够测试出两个待比较的系统的接口是否调通,但无法准确判断两个待比较的系统的接口功能是否正确。
发明内容
提供该发明内容部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该发明内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
第一方面,本公开提供一种接口测试方法,所述方法包括:获取接口测试配置文件,所述接口测试配置文件包括用于对基准系统和待测试系统的接口返回值以及接口落库数据进行对比的预设测试规则,所述预设测试规则用于验证所述待测试系统的接口功能是否正确,以及验证所述待测试系统的接口返回值是否能够正确的落库,其中,所述待测试系统为所述基准系统升级后的系统;根据所述预设测试规则向所述基准系统和所述待测试系统发起接口调用请求和落库数据查询请求,并对比所述基准系统和所述待测试系统返回的用于响应所述接口调用请求和所述落库数据查询请求的返回值,得到接口返回值对比结果以及接口落库数据对比结果;根据所述接口返回值对比结果确定所述待测试系统的接口功能是否正确,根据所述接口落库数据对比结果确定所述待测试系统的接口返回值是否正确的落库。
第二方面,本公开提供一种接口测试装置,包括:获取模块,用于获取接口测试配置文件,所述接口测试配置文件包括用于对基准系统和待测试系统的接口返回值以及接口落库数据进行对比的预设测试规则,所述预设测试规则用于验证所述待测试系统的接口功能是否正确,以及验证所述待测试系统的接口返回值是否能够正确的落库,其中,所述待测试系统为所述基准系统升级后的系统;调用模块,用于根据所述预设测试规则向所述基准系统和所述待测试系统发起接口调用请求和落库数据查询请求,并对比所述基准系统和所述待测试系统返回的用于响应所述接口调用请求和所述落库数据查询请求的返回值,得到接口返回值对比结果以及接口落库数据对比结果;执行模块,用于根据所述接口返回值对比结果确定所述待测试系统的接口功能是否正确,根据所述接口落库数据对比结果确定所述待测试系统的接口返回值是否正确的落库。
第三方面,本公开提供一种计算机可读介质,其上存储有计算机程序,该程序被处理装置执行时实现本公开第一方面所述方法的步骤。
第四方面,本公开提供一种电子设备,包括:存储装置,其上存储有计算机程序;处理装置,用于执行所述存储装置中的所述计算机程序,以实现本公开第一方面所述方法的步骤。
通过上述的技术方案,至少可以达到以下的技术效果:
通过获取接口测试配置文件,并根据接口测试配置文件中的预设测试规则向基准系统和待测试系统发起接口调用请求和落库数据查询请求,对比基准系统和待测试系统返回的用于响应接口调用请求和落库数据查询请求的返回值,得到接口返回值对比结果以及接口落库数据对比结果。根据接口返回值对比结果可以确定待测试系统的接口功能是否正确,而且,根据接口落库数据对比结果可以确定待测试系统的接口返回值是否正确的落库。因此,采用本公开的这种方式,可根据接口返回值对比结果以及接口落库数据对比结果更加准确地确定待测试系统的接口功能是否正确。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。在附图中:
图1是根据本公开一示例性公开实施例示出的一种接口测试方法的流程图。
图2是根据本公开一示例性公开实施例示出的一种预设对比规则示意图。
图3是根据本公开一示例性公开实施例示出的一种接口测试装置的框图。
图4是根据本公开一示例性公开实施例示出的一种电子设备的框图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
为了使本领域普通技术人员更加容易理解本公开的技术方案,下面首先对本公开中涉及的相关概念进行简单解释。
基准系统为长期稳定的系统,对外提供的接口功能可以正常运行,可以理解为已经通过测试的、没有明显缺陷的系统。
待测试系统为基准系统性能优化、架构升级、内部重构后的升级版本系统,基准系统与待测试系统接口以及接口功能均一致。但由于待测试系统内部发生了改变(即升级),因而待测试系统是一个不稳定的系统,需要重新测试其各个接口功能是否与基准系统的各接口功能一致、以及各接口是否可以正常运行。
幂等问题,指用户对于同一操作发起的一次请求或者多次请求的结果均是一致的,不会因为多次请求而产生副作用。可以理解为用户发起多次相同请求,系统根据第一次请求执行处理逻辑,得到结果并存储该结果。而针对多次相同请求中第一次请求之后的请求,系统不执行处理逻辑而直接反馈已存储的第一次请求的结果。
下面对本公开的技术方案进行详细地实施例说明。
图1是根据本公开一示例性公开实施例示出的一种接口测试方法的流程图,如图1所示,所述方法包括以下步骤:
S11、获取接口测试配置文件,所述接口测试配置文件包括用于对基准系统和待测试系统的接口返回值以及接口落库数据进行对比的预设测试规则,所述预设测试规则用于验证所述待测试系统的接口功能是否正确,以及验证所述待测试系统的接口返回值是否能够正确的落库,其中,所述待测试系统为所述基准系统升级后的系统。
其中,接口测试配置文件具体可以为系统文件,也可以为脚本文件。本公开对接口测试配置文件的具体形式不作具体限制。
S12、根据所述预设测试规则向所述基准系统和所述待测试系统发起接口调用请求和落库数据查询请求,并对比所述基准系统和所述待测试系统返回的用于响应所述接口调用请求和所述落库数据查询请求的返回值,得到接口返回值对比结果以及接口落库数据对比结果。
可选地,所述根据所述预设测试规则向所述基准系统和所述待测试系统发起接口调用请求,包括:
根据所述预设测试规则中的接口测试规则,获取用于调用所述待测试系统的第一接口的第一入参,并根据所述第一入参向所述第一接口发起接口调用请求,得到所述第一接口的测试返回值;替换所述第一入参中的第一目标字段,得到第二入参;根据所述第二入参向所述基准系统的第二接口发起接口调用请求,得到所述第二接口的基准返回值,其中,所述第一接口与所述第二接口的功能相同,所述待测试系统和所述基准系统使用同一数据库。
其中,第一入参包括至少一个字段。示例地,第一入参可以包括用户ID字段、用户姓名字段、用户身份证号等基本信息字段,以及随机数字段、固定值字段、变量值字段、请求值字段等等。第一入参的来源为多种,可以为配置文件中预设的数据,也可以为第一接口的上一逻辑接口的输出数据中的部分字段,也可以为根据第一接口的上一逻辑接口的输出数据中的部分字段通过预设方式构造的数据,还可以为用户手动输入的数据。对此本公开不作具体限制。
一种可实现的实施方式,所述第一目标字段为所述第一入参中的随机数字段、固定值字段、变量值字段中的至少一种。
示例地,当第一目标字段为随机数字段的情况下,若第一入参中的随机数为5,那么可将第一入参中的随机数5替换为6,得到随机数字段的值为6的第二入参。
应当说明的是,第一入参与第二入参通过调用相同功能的接口可得到相同或部分相同的接口返回值。其中,两个接口返回值中需要相同的部分可理解为是对应该接口的功能返回值。并且,容易理解的是,本公开中的第一目标字段为不影响/不改变接口的功能返回值的值,可将第一目标字段理解为不影响接口计算功能的非计算参数。
以查询贷款额度的业务举例说明,以相同的征信信息应当对应相同的贷款额度为前提。那么,用户A根据包括用户A的ID的第一入参调用待测试系统中的贷款额度查询接口得到包括贷款额度的接口返回值a;同时用户B根据包括用户B的ID的第二入参调用基准系统中的贷款额度查询接口得到包括贷款额度的接口返回值b。如果第一入参中用户A的征信与第二入参中用户B的征信相同,即第一入参中仅第一目标字段“用户A的ID”被替换为“用户B的ID”得到第二入参,那么接口返回值a和接口返回值b中对应贷款额度的部分应当相同。而接口返回值a和接口返回值b中除贷款额度之外的值(如用户ID、用户性别等)可以不同。
由此进一步地,所述对比所述基准系统和所述待测试系统返回的用于响应所述接口调用请求的返回值,得到接口返回值对比结果,可以包括以下步骤:对所述测试返回值和所述基准返回值进行字段对比,得到所述接口返回值对比结果。
此处应当先说明的是,在根据第二入参调用基准系统的第二接口,得到基准返回值的实施过程中,由于待测试系统的第一接口与基准系统的第二接口的名称(功能)一样,所以待测试系统的第一接口与基准系统的第二接口对应同样的接口响应模型。其中,在接口响应模型中定义了状态码、描述信息、返回参数(返回参数部分定义了零个或多个接口返回参数)、除外参数四个部分内容。在待测试系统的第一接口与基准系统的第二接口的名称(功能)一样的情况下,第一接口与第二接口对应同一接口响应模型,而在第一接口与第二接口对应同一接口响应模型的情况下,本公开得到的测试返回值与基准返回值的字段名称均相同,但各字段名称对应的具体值可能不同也可能相同。
而由于第二入参是通过替换第一入参中的第一目标字段而得到的,因而第一入参与第二入参不相同,但第一入参与第二入参可通过调用相同功能的接口得到相同或部分相同的接口返回值。基于此容易理解的是,由于待测试系统的第一接口与基准系统的第二接口功能相同,因此在待测试系统的第一接口和基准系统的第二接口均可以正常运行的情况下,得到的基准返回值与得到的测试返回值中所有字段的值应当至少一部分(即全部或部分)相同。相反,若基准返回值与测试返回值的所有字段的值均不相同,则说明待测试系统的接口未正常运行即存在缺陷(以默认基准系统的接口不存在缺陷为前提)。因此,在本公开中,基准返回值可以用于校验测试返回值,以判断待测试系统的接口是否正常运行。
对所述测试返回值和所述基准返回值进行字段对比,得到所述接口返回值对比结果的一种可能的实施方式为:可以对所述测试返回值和所述基准返回值中的部分或全部字段进行对比,得到所述待测试系统的接口返回值测试结果(接口返回值对比结果)。
测试返回值和基准返回值中的该部分或全部字段可称为待对比字段,该待对比字段为接口执行功能逻辑处理后得到的功能值。功能值用于反应该接口对数据处理是否准确无误(即该接口的功能是否符合预期)。
此外,由于第一入参与第二入参不相同,因而可以避免根据完全相同的两个入参在待测试系统和基准系统间重复请求同一数据库中的同一数据而导致的幂等问题,使得到的测试返回值为待测试系统通过执行处理逻辑而得到的测试返回值而非已存储的历史基准返回值,或者使得到的基准返回值为基准系统通过执行处理逻辑而得到的真实基准返回值而非已存储的历史测试返回值。容易理解的是,若基准返回值为已存储的历史测试返回值,或者测试返回值为已存储的历史基准返回值,都会因为待测试系统和/或基准系统未执行系统处理逻辑而导基准返回值对测试返回值没有校验的意义。
而本公开的这种对第一入参中的第一目标字段进行替换,得到第二入参,再根据第一入参和第二入参分别调用待测试系统的第一接口和基准系统的第二接口得到测试返回值和基准返回值的方式,保障了测试返回值和基准返回值均为执行系统处理逻辑后的真实值而非历史存储值,进而保障基准返回值对测试返回值具有校验意义。详细地,根据第一入参调用待测试系统的第一接口,得到测试返回值。替换第一入参中的第一目标字段,得到第二入参,并根据第二入参调用基准系统的第二接口,得到基准返回值。这种方式可以避免根据完全相同的两个入参在不同系统间重复请求同一数据库中的同一数据而导致的幂等问题,使得到的测试返回值和基准返回值均为执行系统处理逻辑后得到的真实值而非未执行系统处理逻辑的不准确地历史存储值。进一步地,根据实际执行系统处理逻辑后得到的测试返回值和基准返回值可以得到准确反应当前待测试系统是否存在缺陷的接口返回值对比结果。因此,采用本公开的这种方式,可以提升接口返回值对比结果的准确性,进而提升接口测试结果的准确性。
值得解释的是,完整的接口测试不仅要校验接口能否调通,还要校验各种组合场景、异常场景、输入参数合法性、有效性和边界值等情况。即在实际接口测试操作中,不仅要校验接口返回值是否正确,还应该校验接口对应的数据库信息是否准确。
一种可能的实施方式,根据预设测试规则向基准系统和待测试系统发起落库数据查询请求,并对比基准系统和待测试系统返回的用于响应接落库数据查询请求的返回值,得到接口落库数据对比结果。
S13、根据所述接口返回值对比结果确定所述待测试系统的接口功能是否正确,根据所述接口落库数据对比结果确定所述待测试系统的接口返回值是否正确的落库。
接口返回值对比结果表征测试返回值和基准返回值中的待比较字段是否相同,根据测试返回值和基准返回值中的待比较字段是否相同的结论可确定待测试系统的接口功能是否正确。其中,在测试返回值和基准返回值中的待比较字段相同的情况下,确定待测试系统的接口功能正确。在测试返回值和基准返回值中的待比较字段不相同的情况下,确定待测试系统的接口功能不正确。
接口落库数据对比结果表征测试返回值对应的测试落库数据和与基准返回值对应的基准落库数据是否相同,根据测试返回值对应的测试落库数据和与基准返回值对应的基准落库数据是否相同的结果可确定待测试系统的接口返回值是否正确的落库。其中,在测试返回值对应的测试落库数据和与基准返回值对应的基准落库数据相同的情况下,确定待测试系统的接口返回值正确的落库。在测试返回值对应的测试落库数据和与基准返回值对应的基准落库数据不相同的情况下,确定待测试系统的接口返回值未正确的落库。
采用这种方法,通过获取接口测试配置文件,并根据接口测试配置文件中的预设测试规则向基准系统和待测试系统发起接口调用请求和落库数据查询请求,对比基准系统和待测试系统返回的用于响应接口调用请求和落库数据查询请求的返回值,得到接口返回值对比结果以及接口落库数据对比结果。根据接口返回值对比结果可以确定待测试系统的接口功能是否正确,而且,根据接口落库数据对比结果可以确定待测试系统的接口返回值是否正确的落库。根据待测试系统的接口功能是否正确的结果以及待测试系统的接口返回值是否正确的落库的结果可生成完整的待测试系统的接口测试结果。因此,采用本公开的这种方式,可根据接口返回值对比结果以及接口落库数据对比结果更加准确地确定待测试系统的接口功能是否正确。
一种可实现的实施方式,所述测试返回值中包括接口状态码,在所述替换所述第一入参中的第一目标字段,得到第二入参之前,包括:根据所述接口状态码确定所述待测试系统的接口是否处于正常状态;所述替换所述第一入参中的第一目标字段,得到第二入参包括:在确定所述待测试系统的接口处于正常状态的情况下,替换所述第一入参中的所述第一目标字段,得到所述第二入参。
接口状态码resultCode,是当客户端向服务器发送请求时,描述返回的请求结果,定义在接口响应模型中。借助接口状态码,用户可以知道服务器端是正常处理了请求还是出现了错误。示例地,接口状态码404表征请求的网页不存在。再示例地,接口状态码200表征服务器成功返回请求网页。由此可见,通过接口状态码resultCode可判断待测试系统的接口是否处于正常状态。详细地,根据接口状态码确定待测试系统的接口是否处于正常状态的实施方式可以为:在确定接口状态码处于预设范围内的情况下,确定待测试系统的接口处于正常状态。
应当理解的是,在根据第一入参调用待测试系统的接口,得到测试返回值之后,若根据测试返回值中的状态码确定待测试系统的接口异常,则说明待测试系统的接口存在缺陷(bug)。若在确定待测试系统的接口存在缺陷的情况下,继续进行后序对比测试返回值和基准返回值的步骤,会导致得到的接口返回值对比结果不可信,即利用错误的测试返回值与基准返回值进行对比得到错误的结果无意义。因而一种可实现的实施方式,在确定所述待测试系统的接口处于正常状态的情况下,再替换所述第一入参中的所述第一目标字段,得到所述第二入参。
采用这种方式,在根据测试返回值中的接口状态码确定待测试系统的接口处于正常状态的情况下,执行上述步骤S12至S13,可避免利用错误的测试返回值与基准返回值进行对比得到错误的无意义对比结果的问题。因而本公开的这种方式,在得到正确的测试返回值与基准返回值的情况下,根据正确的测试返回值与基准返回值可以得到正确的接口返回值对比结果,提升接口测试结果的有效性,避免了无效校验的问题。
此外,采用这种方式,在根据测试返回值中的接口状态码确定待测试系统的接口处于正常状态的情况下,执行上述步骤S12至S13的方式,还可以避免根据错误的测试返回值与基准返回值进行对比得到两者相同的结论,进而根据该两者相同的结论误认为待测试系统的接口无缺陷的问题。
一种可实现的实施方式,所述接口测试配置文件还包括各接口的响应模型,所述对所述测试返回值和所述基准返回值进行字段对比,得到所述接口返回值对比结果包括:
在所述第一接口对应的所述响应模型中的返回参数不为空的情况下,对所述测试返回值和所述基准返回值中的与所述返回参数对应的字段进行对比,得到所述接口返回值对比结果;在所述第一接口的所述返回参数为空的情况下,对所述测试返回值和所述基准返回值中的所有字段进行对比,得到所述接口返回值对比结果。
具体地,在所述待测试系统的接口对应的接口响应模型中的返回参数包括预设返回字段的情况下,对所述测试返回值和所述基准返回值中的所述预设返回字段进行对比;在所述返回参数为空的情况下,对所述测试返回值和所述基准返回值中的所有字段进行对比。
接口响应模型即response模型/结构体,其中除了可包括接口状态码resultCode参数之外,还可以包括返回参数response_include,用于控制返回哪些字段/参数;还可以包括除外参数response_exclude,用于控制不返回哪些字段/参数。
示例地,假设预设返回字段为sum,para1,para2,add,innerOrderNo,id。那么在测试返回值和基准返回值对应的接口响应模型中response_include包括sum,para1,para2,add,innerOrderNo,id的情况下,测试返回值和基准返回值中也包括sum,para1,para2,add,innerOrderNo,id字段,这种情况下,可对测试返回值和基准返回值中的sum,para1,para2,add,innerOrderNo,id字段进行对比。同时,在测试返回值和基准返回值对应的接口响应模型中response_include为空的情况下,可对测试返回值和基准返回值中的所有字段进行对比。
另一种可实现的实施方式,还可以在接口响应模型中response_include为预定义米字号字符、且response_exclude为预定义空格字符的情况下,对测试返回值和基准返回值中的所有字段进行对比。
示例地,response模型可以如图2所示的response模型。
采用这种方式,可以根据业务需求即可以根据接口的功能,自由设置该接口的接口返回值中应该包括哪些待对比字段。
由于完整的接口测试不仅要校验接口能否调通,还要校验各种组合场景、异常场景、输入参数合法性、有效性和边界值等情况。即在实际接口测试操作中,不仅要校验接口返回值是否正确,还应该校验接口对应的数据库信息是否准确。因此,在本公开中,一种可实现的实施方式,所述根据所述预设测试规则向所述基准系统和所述待测试系统发起落库数据查询请求包括:
在根据所述接口返回值对比结果确定所述待测试系统的接口功能正确的情况下,基于所述预设测试规则中的数据库查询规则,分别根据所述测试返回值和所述基准返回值中的查询关键词查询所述数据库,得到与所述测试返回值对应的测试落库数据和与所述基准返回值对应的基准落库数据;
相应地,所述对比所述基准系统和所述待测试系统返回的用于响应所述落库数据查询请求的返回值,得到接口落库数据对比结果,包括:对比所述测试落库数据和所述基准落库数据,得到所述接口落库数据对比结果。
在接口返回值对比结果表征测试返回值和基准返回值进行对比的字段(即待对比字段)的值一致的情况下,说明待测试系统的接口已调通且功能正常。但是,在实际测试任务中,测试员经常遇到待测试系统的接口的测试返回值是正确的,而通过该待测试系统的接口写入数据库中的落库数据是错误的问题。为了解决这一问题,本公开提出可在接口返回值对比结果表征测试返回值和基准返回值进行对比的字段的值一致的情况下,根据预设查询规则(即数据库查询规则),分别根据测试返回值和基准返回值中的查询关键词查询数据库,得到与测试返回值对应的测试落库数据和与基准返回值对应的基准落库数据,在默认基准系统稳定(即无BUG)的情况下,通过对比测试落库数据和基准落库数据,可得到待测试系统的接口落库数据对比结果。将接口返回值对比结果以及接口落库数据对比结果一起作为接口测试结果。这种方式实现了对待测试系统的接口进行完整测试,得到完备的接口测试结果的目的。
一种可能的情况,通过接口将数据写入数据库时,因网络延迟等客观原因可能存在数据库异步更新数据的问题。因此,一种可实现的实施方式,所述预设查询规则包括查询延迟时间、预设数据库查询语句;所述根据预设查询规则,分别根据所述测试返回值和所述基准返回值中的查询关键词查询所述数据库,得到与所述测试返回值对应的测试落库数据和与所述基准返回值对应的基准落库数据,包括:
在到达根据所述查询延迟时间确定的查询时间时,分别根据所述测试返回值和所述基准返回值中的查询关键词,通过所述预设数据库查询语句查询所述数据库,得到与所述测试返回值对应的测试落库数据和与所述基准返回值对应的基准落库数据。
其中,查询延迟时间根据接口对应的业务进行设置。示例地,查询延迟时间可以设置为N秒。那么查询时间为在得到接口返回值之后的第N秒。
查询关键词为用于查询测试返回值和基准返回值中需要进行对比的字段的一个或多个关键词。
预设数据库查询语句为测试员根据接口对应的业务预先定义的sql语句。用于结合查询关键词从数据库中查询到接口落库数据。
详细地,在到达根据查询延迟时间N确定的查询时间时,分别根据测试返回值和基准返回值中的查询关键词,通过预设数据库查询语句查询数据库,得到与测试返回值对应的测试落库数据和与基准返回值对应的基准落库数据。在测试落库数据和基准落库数据相同的情况下,说明待测试系统的接口将数据写入数据库的处理过程没有缺陷(即符合预期功能)。
采用这种与接口返回值对比过程异步的接口数据库对比方式,可避免在数据库更新数据之前,根据尚未更新的数据得到不准确的接口数据库测试结果的问题。
可选地,所述待测试系统的接口为多个,所述待测试系统的接口为多个,所述接口测试规则中设定了多个接口之间的接口测试顺序,相应地,在所述第一接口为非所述接口测试顺序中的首个测试接口的情况下,所述获取用于调用所述待测试系统的第一接口的第一入参,包括:在所述第一接口的前一接口已完成接口测试的情况下,将所述前一接口的测试返回值中的第二目标字段作为所述第一接口的所述第一入参。
针对接口测试顺序中的首个测试接口,该首个测试接口的第一入参,可以是用户输入的第一入参,也可以是预设测试规则中预先设置的第一入参。
在第一接口为非接口测试顺序中的首个测试接口的情况下,针对该第一接口,在该第一接口的前一第一接口已完成测试的情况下,可将前一第一接口的测试返回值中的第二目标字段作为该第一接口的第一入参。
其中,第二目标字段为前一第一接口的测试返回值所对应的response模型/结构中saveltem定义的字段。
容易理解的是,系统可以包括多个接口,在相关技术中,对系统各接口进行测试时,需测试人员针对每一接口输入一个入参来进行测试,这种方式导致接口测试效率很低。
为了提升接口测试效率,本公开的方式,在各接口之间存在一定的业务逻辑关系的前提下,针对每一接口,在该接口的前一接口已完成测试的情况下,将前一接口的测试返回值中的第二目标字段作为该接口的第一入参,以对该接口进行接口测试。如此,无需测试人员针对每一接口输入一个入参,通过将前一接口的测试返回值中的第二目标字段作为当前测试的接口的第一入参,或者根据前一接口的测试返回值中的第二目标字段构造当前测试的接口的第一入参的方式可以实现接口自动化测试,提升接口测试效率。
图3是根据本公开一示例性公开实施例示出的一种接口测试装置的框图,如图3所示,该装置300包括:
获取模块310,用于获取接口测试配置文件,所述接口测试配置文件包括用于对基准系统和待测试系统的接口返回值以及接口落库数据进行对比的预设测试规则,所述预设测试规则用于验证所述待测试系统的接口功能是否正确,以及验证所述待测试系统的接口返回值是否能够正确的落库,其中,所述待测试系统为所述基准系统升级后的系统;
调用模块320,用于根据所述预设测试规则向所述基准系统和所述待测试系统发起接口调用请求和落库数据查询请求,并对比所述基准系统和所述待测试系统返回的用于响应所述接口调用请求和所述落库数据查询请求的返回值,得到接口返回值对比结果以及接口落库数据对比结果;
执行模块330,用于根据所述接口返回值对比结果确定所述待测试系统的接口功能是否正确,根据所述接口落库数据对比结果确定所述待测试系统的接口返回值是否正确的落库。
在一种可能的实施方式中,调用模块320包括:获取子模块,用于根据所述预设测试规则中的接口测试规则,获取用于调用所述待测试系统的第一接口的第一入参,并根据所述第一入参向所述第一接口发起接口调用请求,得到所述第一接口的测试返回值;替换子模块,用于替换所述第一入参中的第一目标字段,得到第二入参;调用子模块,用于根据所述第二入参向所述基准系统的第二接口发起接口调用请求,得到所述第二接口的基准返回值,其中,所述第一接口与所述第二接口的功能相同,所述待测试系统和所述基准系统使用同一数据库;对比子模块,用于对所述测试返回值和所述基准返回值进行字段对比,得到所述接口返回值对比结果。
在一种可能的实施方式中,所述待测试系统的接口为多个,所述接口测试规则中设定了多个接口之间的接口测试顺序,相应地,在所述第一接口为非所述接口测试顺序中的首个测试接口的情况下,所述获取子模块,用于在所述第一接口的前一接口已完成接口测试的情况下,将所述前一接口的测试返回值中的第二目标字段作为所述第一接口的所述第一入参。
在一种可能的实施方式中,所述第一目标字段为所述第一入参中的随机数字段、固定值字段、变量值字段中的至少一种。
在一种可能的实施方式中,所述测试返回值中包括接口状态码,所述调用模块还包括判断子模块,用于在所述替换所述第一入参中的第一目标字段,得到第二入参之前,根据所述接口状态码确定所述待测试系统的接口是否处于正常状态;相应地,所述替换子模块用于在确定所述待测试系统的接口处于正常状态的情况下,替换所述第一入参中的所述第一目标字段,得到所述第二入参。
在一种可能的实施方式中,所述接口测试配置文件还包括各接口的响应模型,相应地,所述对比子模块,用于在所述第一接口对应的所述响应模型中的返回参数不为空的情况下,对所述测试返回值和所述基准返回值中的与所述返回参数对应的字段进行对比,得到所述接口返回值对比结果;在所述第一接口的所述返回参数为空的情况下,对所述测试返回值和所述基准返回值中的所有字段进行对比,得到所述接口返回值对比结果。
在一种可能的实施方式中,所述调用模块320包括:查询子模块,用于在根据所述接口返回值对比结果确定所述待测试系统的接口功能正确的情况下,基于所述预设测试规则中的数据库查询规则,分别根据所述测试返回值和所述基准返回值中的查询关键词查询所述数据库,得到与所述测试返回值对应的测试落库数据和与所述基准返回值对应的基准落库数据;相应地,所述对比子模块用于对比所述测试落库数据和所述基准落库数据,得到所述接口落库数据对比结果。
在一种可能的实施方式中,所述数据库查询规则包括查询延迟时间、预设数据库查询语句;相应地,所述查询子模块,用于在到达根据所述查询延迟时间确定的查询时间时,分别根据所述测试返回值和所述基准返回值中的查询关键词,通过所述预设数据库查询语句查询所述数据库,得到与所述测试返回值对应的测试落库数据和与所述基准返回值对应的基准落库数据。
上述各模块所具体执行的步骤在方法部分实施例中已经进行了详细阐述,在此不做赘述。
通过上述的技术方案,至少可以达到以下的技术效果:
通过获取接口测试配置文件,并根据接口测试配置文件中的预设测试规则向基准系统和待测试系统发起接口调用请求和落库数据查询请求,对比基准系统和待测试系统返回的用于响应接口调用请求和落库数据查询请求的返回值,得到接口返回值对比结果以及接口落库数据对比结果。根据接口返回值对比结果可以确定待测试系统的接口功能是否正确,而且,根据接口落库数据对比结果可以确定待测试系统的接口返回值是否正确的落库。因此,采用本公开的这种方式,可根据接口返回值对比结果以及接口落库数据对比结果更加准确地确定待测试系统的接口功能是否正确。
下面参考图4,其示出了适于用来实现本公开实施例的电子设备400的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图4示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图4所示,电子设备400可以包括处理装置(例如中央处理器、图形处理器等)401,其可以根据存储在只读存储器(ROM)402中的程序或者从存储装置408加载到随机访问存储器(RAM)403中的程序而执行各种适当的动作和处理。在RAM 403中,还存储有电子设备400操作所需的各种程序和数据。处理装置401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
通常,以下装置可以连接至I/O接口405:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置406;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置407;包括例如磁带、硬盘等的存储装置408;以及通信装置409。通信装置409可以允许电子设备400与其他设备进行无线或有线通信以交换数据。虽然图4示出了具有各种装置的电子设备400,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序,如配置文件。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置409从网络上被下载和安装,或者从存储装置408被安装,或者从ROM 402被安装。在该计算机程序被处理装置401执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:根据第一入参调用待测试系统的接口,得到测试返回值;替换所述第一入参中的第一目标字段,得到第二入参;根据所述第二入参调用基准系统的接口,得到基准返回值,所述待测试系统为所述基准系统升级后的系统,所述待测试系统和所述基准系统使用同一数据库;根据预设对比规则,对所述测试返回值和所述基准返回值中的部分或全部字段进行对比,得到所述待测试系统的接口返回值测试结果;根据所述接口返回值测试结果得到所述待测试系统的接口测试结果。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言——诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该模块本身的限定。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
根据本公开的一个或多个实施例,示例1提供了一种接口测试方法,包括:获取接口测试配置文件,所述接口测试配置文件包括用于对基准系统和待测试系统的接口返回值以及接口落库数据进行对比的预设测试规则,所述预设测试规则用于验证所述待测试系统的接口功能是否正确,以及验证所述待测试系统的接口返回值是否能够正确的落库,其中,所述待测试系统为所述基准系统升级后的系统;根据所述预设测试规则向所述基准系统和所述待测试系统发起接口调用请求和落库数据查询请求,并对比所述基准系统和所述待测试系统返回的用于响应所述接口调用请求和所述落库数据查询请求的返回值,得到接口返回值对比结果以及接口落库数据对比结果;根据所述接口返回值对比结果确定所述待测试系统的接口功能是否正确,根据所述接口落库数据对比结果确定所述待测试系统的接口返回值是否正确的落库。
根据本公开的一个或多个实施例,示例2提供了示例1的方法,所述根据所述预设测试规则向所述基准系统和所述待测试系统发起接口调用请求,包括:根据所述预设测试规则中的接口测试规则,获取用于调用所述待测试系统的第一接口的第一入参,并根据所述第一入参向所述第一接口发起接口调用请求,得到所述第一接口的测试返回值;替换所述第一入参中的第一目标字段,得到第二入参;根据所述第二入参向所述基准系统的第二接口发起接口调用请求,得到所述第二接口的基准返回值,其中,所述第一接口与所述第二接口的功能相同,所述待测试系统和所述基准系统使用同一数据库;所述对比所述基准系统和所述待测试系统返回的用于响应所述接口调用请求的返回值,得到接口返回值对比结果,包括:对所述测试返回值和所述基准返回值进行字段对比,得到所述接口返回值对比结果。
根据本公开的一个或多个实施例,示例3提供了示例2的方法,所述待测试系统的接口为多个,所述接口测试规则中设定了多个接口之间的接口测试顺序,相应地,在所述第一接口为非所述接口测试顺序中的首个测试接口的情况下,所述获取用于调用所述待测试系统的第一接口的第一入参,包括:
在所述第一接口的前一接口已完成接口测试的情况下,将所述前一接口的测试返回值中的第二目标字段作为所述第一接口的所述第一入参。
根据本公开的一个或多个实施例,示例4提供了示例2的方法,所述第一目标字段为所述第一入参中的随机数字段、固定值字段、变量值字段中的至少一种。
根据本公开的一个或多个实施例,示例5提供了示例2的方法,所述测试返回值中包括接口状态码,在所述替换所述第一入参中的第一目标字段,得到第二入参之前,包括:
根据所述接口状态码确定所述待测试系统的接口是否处于正常状态;
所述替换所述第一入参中的第一目标字段,得到第二入参包括:
在确定所述待测试系统的接口处于正常状态的情况下,替换所述第一入参中的所述第一目标字段,得到所述第二入参。
根据本公开的一个或多个实施例,示例6提供了示例2的方法,所述接口测试配置文件还包括各接口的响应模型,所述对所述测试返回值和所述基准返回值进行字段对比,得到所述接口返回值对比结果包括:
在所述第一接口对应的所述响应模型中的返回参数不为空的情况下,对所述测试返回值和所述基准返回值中的与所述返回参数对应的字段进行对比,得到所述接口返回值对比结果;
在所述第一接口的所述返回参数为空的情况下,对所述测试返回值和所述基准返回值中的所有字段进行对比,得到所述接口返回值对比结果。
根据本公开的一个或多个实施例,示例7提供了示例2-6的方法,所述根据所述预设测试规则向所述基准系统和所述待测试系统发起落库数据查询请求包括:在根据所述接口返回值对比结果确定所述待测试系统的接口功能正确的情况下,基于所述预设测试规则中的数据库查询规则,分别根据所述测试返回值和所述基准返回值中的查询关键词查询所述数据库,得到与所述测试返回值对应的测试落库数据和与所述基准返回值对应的基准落库数据;所述对比所述基准系统和所述待测试系统返回的用于响应所述落库数据查询请求的返回值,得到接口落库数据对比结果,包括:对比所述测试落库数据和所述基准落库数据,得到所述接口落库数据对比结果。
根据本公开的一个或多个实施例,示例8提供了示例7的方法,所述数据库查询规则包括查询延迟时间、预设数据库查询语句;所述基于所述预设测试规则中的数据库查询规则,分别根据所述测试返回值和所述基准返回值中的查询关键词查询所述数据库,得到与所述测试返回值对应的测试落库数据和与所述基准返回值对应的基准落库数据,包括:在到达根据所述查询延迟时间确定的查询时间时,分别根据所述测试返回值和所述基准返回值中的查询关键词,通过所述预设数据库查询语句查询所述数据库,得到与所述测试返回值对应的测试落库数据和与所述基准返回值对应的基准落库数据。
根据本公开的一个或多个实施例,示例9提供了一种接口测试装置,获取模块,用于获取接口测试配置文件,所述接口测试配置文件包括用于对基准系统和待测试系统的接口返回值以及接口落库数据进行对比的预设测试规则,所述预设测试规则用于验证所述待测试系统的接口功能是否正确,以及验证所述待测试系统的接口返回值是否能够正确的落库,其中,所述待测试系统为所述基准系统升级后的系统;调用模块,用于根据所述预设测试规则向所述基准系统和所述待测试系统发起接口调用请求和落库数据查询请求,并对比所述基准系统和所述待测试系统返回的用于响应所述接口调用请求和所述落库数据查询请求的返回值,得到接口返回值对比结果以及接口落库数据对比结果;执行模块,用于根据所述接口返回值对比结果确定所述待测试系统的接口功能是否正确,根据所述接口落库数据对比结果确定所述待测试系统的接口返回值是否正确的落库。
根据本公开的一个或多个实施例,示例10提供了示例9的装置,调用模块包括:获取子模块,用于根据所述预设测试规则中的接口测试规则,获取用于调用所述待测试系统的第一接口的第一入参,并根据所述第一入参向所述第一接口发起接口调用请求,得到所述第一接口的测试返回值;替换子模块,用于替换所述第一入参中的第一目标字段,得到第二入参;调用子模块,用于根据所述第二入参向所述基准系统的第二接口发起接口调用请求,得到所述第二接口的基准返回值,其中,所述第一接口与所述第二接口的功能相同,所述待测试系统和所述基准系统使用同一数据库;对比子模块,用于对所述测试返回值和所述基准返回值进行字段对比,得到所述接口返回值对比结果。
根据本公开的一个或多个实施例,示例11提供了示例10的装置,所述待测试系统的接口为多个,所述接口测试规则中设定了多个接口之间的接口测试顺序,相应地,在所述第一接口为非所述接口测试顺序中的首个测试接口的情况下,所述获取子模块,用于在所述第一接口的前一接口已完成接口测试的情况下,将所述前一接口的测试返回值中的第二目标字段作为所述第一接口的所述第一入参。
根据本公开的一个或多个实施例,示例12提供了示例10的装置,所述第一目标字段为所述第一入参中的随机数字段、固定值字段、变量值字段中的至少一种。
根据本公开的一个或多个实施例,示例13提供了示例10的装置,所述测试返回值中包括接口状态码,所述调用模块还包括判断子模块,用于在所述替换所述第一入参中的第一目标字段,得到第二入参之前,根据所述接口状态码确定所述待测试系统的接口是否处于正常状态;相应地,所述替换子模块用于在确定所述待测试系统的接口处于正常状态的情况下,替换所述第一入参中的所述第一目标字段,得到所述第二入参。
根据本公开的一个或多个实施例,示例14提供了示例10的装置,所述接口测试配置文件还包括各接口的响应模型,相应地,所述对比子模块,用于在所述第一接口对应的所述响应模型中的返回参数不为空的情况下,对所述测试返回值和所述基准返回值中的与所述返回参数对应的字段进行对比,得到所述接口返回值对比结果;在所述第一接口的所述返回参数为空的情况下,对所述测试返回值和所述基准返回值中的所有字段进行对比,得到所述接口返回值对比结果。
根据本公开的一个或多个实施例,示例15提供了示例10-14的装置,所述调用模块包括:查询子模块,用于在根据所述接口返回值对比结果确定所述待测试系统的接口功能正确的情况下,基于所述预设测试规则中的数据库查询规则,分别根据所述测试返回值和所述基准返回值中的查询关键词查询所述数据库,得到与所述测试返回值对应的测试落库数据和与所述基准返回值对应的基准落库数据;相应地,所述对比子模块用于对比所述测试落库数据和所述基准落库数据,得到所述接口落库数据对比结果。
根据本公开的一个或多个实施例,示例16提供了示例15的装置,所述数据库查询规则包括查询延迟时间、预设数据库查询语句;相应地,所述查询子模块,用于在到达根据所述查询延迟时间确定的查询时间时,分别根据所述测试返回值和所述基准返回值中的查询关键词,通过所述预设数据库查询语句查询所述数据库,得到与所述测试返回值对应的测试落库数据和与所述基准返回值对应的基准落库数据。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
Claims (11)
1.一种接口测试方法,其特征在于,所述方法包括:
获取接口测试配置文件,所述接口测试配置文件包括用于对基准系统和待测试系统的接口返回值以及接口落库数据进行对比的预设测试规则,所述预设测试规则用于验证所述待测试系统的接口功能是否正确,以及验证所述待测试系统的接口返回值是否能够正确的落库,其中,所述待测试系统为所述基准系统升级后的系统;
根据所述预设测试规则向所述基准系统和所述待测试系统发起接口调用请求和落库数据查询请求,并对比所述基准系统和所述待测试系统返回的用于响应所述接口调用请求和所述落库数据查询请求的返回值,得到接口返回值对比结果以及接口落库数据对比结果;
根据所述接口返回值对比结果确定所述待测试系统的接口功能是否正确,根据所述接口落库数据对比结果确定所述待测试系统的接口返回值是否正确的落库。
2.根据权利要求1所述的方法,其特征在于,所述根据所述预设测试规则向所述基准系统和所述待测试系统发起接口调用请求,包括:
根据所述预设测试规则中的接口测试规则,获取用于调用所述待测试系统的第一接口的第一入参,并根据所述第一入参向所述第一接口发起接口调用请求,得到所述第一接口的测试返回值;
替换所述第一入参中的第一目标字段,得到第二入参;
根据所述第二入参向所述基准系统的第二接口发起接口调用请求,得到所述第二接口的基准返回值,其中,所述第一接口与所述第二接口的功能相同,所述待测试系统和所述基准系统使用同一数据库;
所述对比所述基准系统和所述待测试系统返回的用于响应所述接口调用请求的返回值,得到接口返回值对比结果,包括:
对所述测试返回值和所述基准返回值进行字段对比,得到所述接口返回值对比结果。
3.根据权利要求2所述的方法,其特征在于,所述待测试系统的接口为多个,所述接口测试规则中设定了多个接口之间的接口测试顺序,相应地,在所述第一接口为非所述接口测试顺序中的首个测试接口的情况下,所述获取用于调用所述待测试系统的第一接口的第一入参,包括:
在所述第一接口的前一接口已完成接口测试的情况下,将所述前一接口的测试返回值中的第二目标字段作为所述第一接口的所述第一入参。
4.根据权利要求2所述的方法,其特征在于,所述第一目标字段为所述第一入参中的随机数字段、固定值字段、变量值字段中的至少一种。
5.根据权利要求2所述的方法,其特征在于,所述测试返回值中包括接口状态码,在所述替换所述第一入参中的第一目标字段,得到第二入参之前,包括:
根据所述接口状态码确定所述待测试系统的接口是否处于正常状态;
所述替换所述第一入参中的第一目标字段,得到第二入参包括:
在确定所述待测试系统的接口处于正常状态的情况下,替换所述第一入参中的所述第一目标字段,得到所述第二入参。
6.根据权利要求2所述的方法,其特征在于,所述接口测试配置文件还包括各接口的响应模型,所述对所述测试返回值和所述基准返回值进行字段对比,得到所述接口返回值对比结果包括:
在所述第一接口对应的所述响应模型中的返回参数不为空的情况下,对所述测试返回值和所述基准返回值中的与所述返回参数对应的字段进行对比,得到所述接口返回值对比结果;
在所述第一接口的所述返回参数为空的情况下,对所述测试返回值和所述基准返回值中的所有字段进行对比,得到所述接口返回值对比结果。
7.根据权利要求2-6中任一项所述的方法,其特征在于,所述根据所述预设测试规则向所述基准系统和所述待测试系统发起落库数据查询请求包括:
在根据所述接口返回值对比结果确定所述待测试系统的接口功能正确的情况下,基于所述预设测试规则中的数据库查询规则,分别根据所述测试返回值和所述基准返回值中的查询关键词查询所述数据库,得到与所述测试返回值对应的测试落库数据和与所述基准返回值对应的基准落库数据;
所述对比所述基准系统和所述待测试系统返回的用于响应所述落库数据查询请求的返回值,得到接口落库数据对比结果,包括:
对比所述测试落库数据和所述基准落库数据,得到所述接口落库数据对比结果。
8.根据权利要求7所述的方法,其特征在于,所述数据库查询规则包括查询延迟时间、预设数据库查询语句;所述基于所述预设测试规则中的数据库查询规则,分别根据所述测试返回值和所述基准返回值中的查询关键词查询所述数据库,得到与所述测试返回值对应的测试落库数据和与所述基准返回值对应的基准落库数据,包括:
在到达根据所述查询延迟时间确定的查询时间时,分别根据所述测试返回值和所述基准返回值中的查询关键词,通过所述预设数据库查询语句查询所述数据库,得到与所述测试返回值对应的测试落库数据和与所述基准返回值对应的基准落库数据。
9.一种接口测试装置,其特征在于,包括:
获取模块,用于获取接口测试配置文件,所述接口测试配置文件包括用于对基准系统和待测试系统的接口返回值以及接口落库数据进行对比的预设测试规则,所述预设测试规则用于验证所述待测试系统的接口功能是否正确,以及验证所述待测试系统的接口返回值是否能够正确的落库,其中,所述待测试系统为所述基准系统升级后的系统;
调用模块,用于根据所述预设测试规则向所述基准系统和所述待测试系统发起接口调用请求和落库数据查询请求,并对比所述基准系统和所述待测试系统返回的用于响应所述接口调用请求和所述落库数据查询请求的返回值,得到接口返回值对比结果以及接口落库数据对比结果;
执行模块,用于根据所述接口返回值对比结果确定所述待测试系统的接口功能是否正确,根据所述接口落库数据对比结果确定所述待测试系统的接口返回值是否正确的落库。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,该程序被处理装置执行时实现权利要求1-8中任一项所述方法的步骤。
11.一种电子设备,其特征在于,包括:
存储装置,其上存储有计算机程序;
处理装置,用于执行所述存储装置中的所述计算机程序,以实现权利要求1-8中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110553937.1A CN115373972A (zh) | 2021-05-20 | 2021-05-20 | 接口测试方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110553937.1A CN115373972A (zh) | 2021-05-20 | 2021-05-20 | 接口测试方法、装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115373972A true CN115373972A (zh) | 2022-11-22 |
Family
ID=84058297
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110553937.1A Pending CN115373972A (zh) | 2021-05-20 | 2021-05-20 | 接口测试方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115373972A (zh) |
-
2021
- 2021-05-20 CN CN202110553937.1A patent/CN115373972A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111679990B (zh) | 测试数据生成方法、装置、可读介质及电子设备 | |
CN111581291A (zh) | 数据处理方法、装置、电子设备及可读介质 | |
CN110851139B (zh) | 用于检查代码的方法、装置和电子设备 | |
CN113485918B (zh) | 一种测试方法、装置、电子设备及存储介质 | |
CN112597047A (zh) | 测试方法、装置、电子设备和计算机可读介质 | |
CN111309304B (zh) | 一种生成idl文件的方法、装置、介质和电子设备 | |
CN112099982A (zh) | 一种崩溃信息定位方法、装置、介质和电子设备 | |
CN111628938A (zh) | 分支合并的方法、装置、电子设备及计算机存储介质 | |
CN115729824A (zh) | 脚本测试方法、装置、设备及存储介质 | |
CN115373972A (zh) | 接口测试方法、装置、存储介质及电子设备 | |
CN114116480A (zh) | 应用程序测试覆盖率的确定方法、装置、介质及设备 | |
CN111581431B (zh) | 基于动态评估的数据探查方法和装置 | |
CN113849416A (zh) | 测试方法、装置、存储介质及电子设备 | |
CN114428925A (zh) | 页面渲染方法、装置、电子设备和计算机可读介质 | |
CN113176937A (zh) | 任务处理方法、装置和电子设备 | |
CN111538717A (zh) | 数据处理的方法、装置、电子设备及计算机可读介质 | |
CN110489341B (zh) | 一种测试方法、装置、存储介质及电子设备 | |
CN111274150B (zh) | 服务实例访问方法、装置和电子设备 | |
CN114168485A (zh) | 测试方法、装置、设备及介质 | |
CN115344301A (zh) | 配置文件校验方法、装置、电子设备及存储介质 | |
CN113641587A (zh) | 操作界面的测试方法、装置、终端和存储介质 | |
CN116886531A (zh) | 业务处理方法、装置、介质及电子设备 | |
CN117493091A (zh) | 存储系统故障注入方法、装置、设备及存储介质 | |
CN116185881A (zh) | 源系统页面变化检测定位方法、装置、设备、存储介质 | |
CN114064501A (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 |