CN114816993A - 一种全链路接口测试方法、***、介质及电子设备 - Google Patents

一种全链路接口测试方法、***、介质及电子设备 Download PDF

Info

Publication number
CN114816993A
CN114816993A CN202210280646.4A CN202210280646A CN114816993A CN 114816993 A CN114816993 A CN 114816993A CN 202210280646 A CN202210280646 A CN 202210280646A CN 114816993 A CN114816993 A CN 114816993A
Authority
CN
China
Prior art keywords
interface
test
assertion
result
data
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
Application number
CN202210280646.4A
Other languages
English (en)
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.)
Baianju Information Technology Shanghai Co ltd
Original Assignee
Baianju Information Technology Shanghai 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 Baianju Information Technology Shanghai Co ltd filed Critical Baianju Information Technology Shanghai Co ltd
Priority to CN202210280646.4A priority Critical patent/CN114816993A/zh
Publication of CN114816993A publication Critical patent/CN114816993A/zh
Pending legal-status Critical Current

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
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • 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

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)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本发明提供一种全链路接口测试方法、***、介质及电子设备。根据接口文档编写测试方法;基于所述测试方法生成数据驱动,将所述接口与对应输入参数、断言及断言预期结果进行绑定;读取测试数据,解析所述测试数据生成唯一测试用例标记并发起接口请求;接收并解析所述接口返回的响应断言并从所述唯一测试用例标记中获取接口断言和断言预期结果;解析所述接口响应断言获取接口响应结果,将所述接口响应结果与所述断言预期结果进行匹配,得到所述唯一测试用例标记接口测试结果;根据所述唯一测试用例标记接口测试结果,生成测试报告。本发明实现了无需频繁修改接口测试代码,具有提高测试效率的优势。

Description

一种全链路接口测试方法、***、介质及电子设备
技术领域
本发明涉及软件测试领域,特别是涉及一种全链路接口测试方法、***、介质及电子设备。
背景技术
在数字化浪潮背景下,随着互联网技术的发展,开发的软件项目越来越多,越来越多的技术(例如:大数据、云计算、微服务)被应用,而在软件项目工程中接口测试是一项非常重要的测试环节。接口测试一般用于多***间数据交互,或者拥有多个模块的应用***开发的测试。接口测试主要测试这些***对外部提供的接口,验证其正确性和稳定性。
目前做接口测试时,一个接口需要大量的测试用例才能测试全面,而进行接口测试时,一般是一条用例编写一个测试方法,这些测试方法中大部分代码基本相同,只有个别的接口入参不同。将接口测试数据写在测试代码中,通过测试代码实现请求数据及结果判定。以上现有技术会导致测试用例编写难度增大,测试数据可读性、可维护性差,难以实现数据驱动,从而导致接口测试效率低。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种全链路接口测试方法、***、介质及电子设备,用于解决现有技术中的以上问题。
为实现上述目的及其他相关目的,本发明提供一种全链路接口测试方法,所述方法包括:根据接口文档编写测试方法;基于所述测试方法生成数据驱动,将所述接口与对应输入参数、断言及断言预期结果进行绑定;读取测试数据,解析所述测试数据生成唯一测试用例标记并发起接口请求;接收并解析所述接口返回的响应断言并从所述唯一测试用例标记中获取接口断言和断言预期结果;解析所述接口响应断言获取接口响应结果,将所述接口响应结果与所述断言预期结果进行匹配,得到所述唯一测试用例标记接口测试结果;根据所述唯一测试用例标记接口测试结果,生成测试报告。
于本发明一实施例中,所述方法还包括:通过代码管理服务器或接口管理服务器获取所述接口文档;提取所述接口文档中接口信息,所述接口信息包括:接口名称、接口类、请求方法、接口地址、请求参数及所述参数说明、返回数据及所述数据说明;根据接口文档编写测试方法。定义测试方法的名称、接口输入参数以及响应数据、断言及断言预期结果。
于本发明一实施例中,所述方法还包括:接收需求变更请求后根据变更请求更新所述数据驱动,包括替换所述数据驱动中的测试场景名称、接口名称、环境地址、接口请求类型、输入参数、断言、断言对应的预期结果、及断言匹配方式。
于本发明一实施例中,所述方法还包括:通过数据驱动获取一条测试数据;读取并解析所述测试数据;根据所述测试数据解析结果生成唯一测试用例标记;依据所述唯一测试用例发送包含接口地址、输入参数的请求消息。
于本发明一实施例中,所述方法中还包括:接收并解析发送接口请求信息返回的响应断言;记录所述返回响应的返回时间;根据所述唯一测试用例标记获取接口响应断言和断言预期结果。
于本发明一实施例中,所述方法还包括:解析所述接口响应断言进行内容提取获取接口响应结果,所述内容包括:状态码、响应体、响应头;将所述接口响应结果与所述预期结果进行匹配,获得所述唯一测试用例标记接口测试结果,所述匹配方式包括:包含、相等以及正则匹配。
于本发明一实施例中,所述方法还包括:判断输入参数返回的响应结果是否与对应的响应断言相匹配,若匹配失败,则测试不通过,生成对应测试报告向测试人员发送告警;若匹配成功,则生成测试通过报告并返回测试通过消息。
为实现上述目的及其他相关目的,本发明提供全链路接口测试***,所述***包括:数据驱动模块,用于基于所述测试方法生成数据驱动,将所述接口与对应输入参数、断言及断言预期结果进行绑定;解析生成模块,用于读取测试数据,解析所述测试数据生成唯一测试用例标记;数据发送模块,用于发送携带输入参数的接口测试请求信息;数据校验模块,用于解析所述接口响应断言获取接口响应结果,将所述接口响应结果与所述断言预期结果进行匹配,得到所述唯一测试用例标记接口测试结果;测试报告生成模块,用于根据所述标记接口测试结果,生成测试结果。
为实现上述目的及其他相关目的,本发明提供一种计算机可读存储介质,其中存储有计算机程序,所述计算机程序被处理器加载执行时,实现所述的全链路接口测试方法。
为实现上述目的及其他相关目的,本发明提供一种电子设备,包括:处理器、存储器及通信接口;其中,所述存储器用于存储计算机程序;所述处理器用于加载执行所述计算机程序,以使所述电子设备执行所述的全链路接口测试方法;所述通信接口用于实现访问装置与其他设备之间的通信。
如上所述,本发明提供的一种全链路接口测试方法、***、介质及电子设备,针对在验证多***或多模块间数据交互接口正确性和稳定性的测试中存在的频繁修改测试代码导致的测试效率低下的问题,无需编写多个测试用例和测试方法,以及无需频繁修改代码,直接实现请求数据与结果判定,具有高维护性和提高测试效率的优点。
附图说明
图1显示为本发明一实施例中的全链路接口测试方法的流程示意图。
图2显示为本发明一实施例中的全链路接口测试***的模块示意图。
图3显示为本发明一实施例中的电子设备的结构示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
为了解决现有技术中频繁修改测试代码使得测试数据可读性、可维护性差,难以实现数据驱动,从而导致接口测试效率低效率低的问题,本发明提供一种全链路接口测试方法、***、介质及电子设备。
如图1所示,本实施例提供一种全链路接口测试方法,该方法包括如下步骤:
S11:根据接口文档编写测试方法模板。
具体地,预先通过代码管理服务器或接口管理服务器获取接口文档,例如从svn服务器、git服务器等代码管理服务器,或者直接从swagger、YApi等接口管理服务器获取接口文档。
进一步地,提取接口文档中接口信息,接口信息包括:接口名称、接口类、请求方法、接口地址、请求参数及参数说明、返回数据及数据说明。然后根据接口文档编写测试方法,包括定义测试方法的名称、接口输入参数以及响应数据、断言及断言预期结果。
S12:基于所述测试方法生成数据驱动,将所述接口与对应输入参数、断言及断言预期结果进行绑定。
具体地,依据S11编写的测试方法,建立数据驱动,并且将接口与对应的输入参数、断言及断言预期结果绑定,并将所有输入参数及其绑定的对应相关信息存储进数据库以作为测试数据驱动。例如,将接口与输入参数100、对应响应断言A和预期结果A绑定,输入参数200、对应断言B和预期结果B绑定。
优选地,在接收测试需求变更请求后,根据变更请求更新维护该数据驱动,更新维护方式包括将变更内容替换原数据驱动中的测试场景名称、接口名称、环境地址、接口请求类型、输入参数、断言及断言对应的预期结果、断言匹配方式,替换内容可以是其中之一,也可以是某几个或者全部。
S13:读取测试数据,解析所述测试数据生成唯一测试用例标记并发起接口请求。
具体地,在数据驱动中获取一条测试数据,对测试数据进行读取解析,生成唯一测试用例标记,依据该唯一测试用例中的册数数据信息生成包含接口地址、输入参数的接口请求消息,发送该请求并记录发送时间,发送时间可以用时间戳记录。
S14:接收并解析所述接口返回的响应断言并从所述唯一测试用例标记中获取接口断言和断言预期结果。
具体地,接收并解析在发送接口请求后从接口中返回的响应断言,记录返回时间,并从数据驱动中,根据该唯一测试用例标记的标记获取该接口输入参数的断言及该断言对应的预期结果。
进一步地,解析从接口中返回的响应断言,并从中提取响应内容,提取的内容可以是状态码、响应体、响应头。
S15:解析所述接口响应断言获取接口响应结果,将所述接口响应结果与所述断言预期结果进行匹配,得到所述唯一测试用例标记接口测试结果。
具体地,从响应断言中解析通过内容提取获取接口响应结果,通过包含、相等以及正则匹配将接口响应结果与所述预期结果进行匹配,获得该具有唯一标记的测试用例的接口测试结果。例如S12中案例,当通过输入参数100调用接口,返回的结果中包含A断言,则测试通过。当通过输入参数200调用接口,返回的结果中包含B断言,则测试不通过,不符合预期结果。
S16:根据所述唯一测试用例标记接口测试结果,生成测试报告。
具体地,当S15匹配结果为匹配成功时,则返回测试通过的消息,若匹配失败时,则向测试人员发送执行失败告警信息,形式包括邮件告警、飞书、电话、短信等通讯工具告警。
实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。基于这样的理解,本发明还提供一种计算机程序产品,包括一个或多个计算机指令。所述计算机指令可以存储在计算机可读存储介质中。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。
参阅图2,本实施例提供一种全链路接口测试***20,作为一款软件搭载于电子设备中,以在运行时执行前述方法实施例所述的全链路接口测试方法。由于本***实施例的技术原理与前述方法实施例的技术原理相似,因而不再对同样的技术细节做重复性赘述。
本实施例的全链路接口测试***20具体包括:数据驱动模块21、解析生成模块22、数据发送模块23、数据校验模块24、测试报告生成模块25。数据驱动模块21用于用于基于所述测试方法生成数据驱动,将所述接口与对应输入参数、断言及断言预期结果进行绑定;解析生成模块22用于读取测试数据,解析所述测试数据生成唯一测试用例标记;数据发送模块23用于发送携带输入参数的接口测试请求信息;数据校验模块24用于解析所述接口响应断言获取接口响应结果,将所述接口响应结果与所述断言预期结果进行匹配,得到所述唯一测试用例标记接口测试结果;测试报告生成模块25用于根据所述标记接口测试结果,生成测试报告,该模块还包括通知告警模块,用于向测试人员反馈测试结果。
本领域技术人员应当理解,图2实施例中的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个或多个物理实体上。且这些模块可以全部以软件通过处理元件调用的形式实现,也可以全部以硬件的形式实现,还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,数据校验模块24可以为单独设立的处理元件,也可以集成在某一个芯片中实现,此外,也可以以程序代码的形式存储于存储器中,由某一个处理元件调用并执行数据校验模块24的功能。其它模块的实现与之类似。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
参阅图3,本实施例提供一种电子设备,电子设备可以是便携式电脑、智能手机、平板电脑等设备。详细的,电子设备至少包括通过总线31连接的:存储器32、处理器33,通信接口34,其中,通信接口34用于用于实现数据访问装置与其他设备之间的通信其中,存储器32用于存储计算机程序,处理器33用于执行存储器32存储的计算机程序,以执行前述方法实施例中的全部或部分步骤。
上述提到的***总线可以是外设部件互连标准(Peripheral PomponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该***总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于实现数据库访问装置与其他设备(例如客户端、读写库和只读库)之间的通信。存储器可能包含随机存取存储器(Random Access Memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
综上所述,本发明提供的一种全链路接口测试方法、***、介质及电子设备,对各***以及模块直接的接口测试,基于测试方法生成数据驱动,直接获取测试结果,无需大量编写测试用例和测试方法,降低测试用例编写难度,对于测试数据提高可读性和可维护性,具有提高测试效率的优势。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

Claims (10)

1.一种全链路接口测试方法,其特征在于,包括:
根据接口文档编写测试方法;
基于所述测试方法生成数据驱动,将所述接口与对应输入参数、断言及断言预期结果进行绑定;
读取测试数据,解析所述测试数据生成唯一测试用例标记并发起接口请求;
接收并解析所述接口返回的响应断言并从所述唯一测试用例标记中获取接口断言和断言预期结果;
解析所述接口响应断言获取接口响应结果,将所述接口响应结果与所述断言预期结果进行匹配,得到所述唯一测试用例标记接口测试结果;
根据所述唯一测试用例标记接口测试结果,生成测试报告。
2.根据权利要求1所述的方法,其特征在于,还包括:
通过代码管理服务器或接口管理服务器获取所述接口文档;
提取所述接口文档中接口信息,所述接口信息包括:接口名称、接口类、请求方法、接口地址、请求参数及所述参数说明、返回数据及所述数据说明;
根据接口文档编写测试方法。定义测试方法的名称、接口输入参数以及响应数据、断言及断言预期结果。
3.根据权利要求1所述的方法,其特征在于,还包括:
接收需求变更请求后根据变更请求更新所述数据驱动,包括替换所述数据驱动中的测试场景名称、接口名称、环境地址、接口请求类型、输入参数、断言、断言对应的预期结果、及断言匹配方式。
4.根据权利要求1所述的方法,其特征在于,还包括:
通过数据驱动获取一条测试数据;
读取并解析所述测试数据;
根据所述测试数据解析结果生成唯一测试用例标记;
依据所述唯一测试用例发送包含接口地址、输入参数的接口请求消息。
5.根据权利要求1或4所述的方法,其特征在于,还包括:
接收并解析发送接口请求信息返回的响应断言;
记录所述返回响应的返回时间;
根据所述唯一测试用例标记获取接口响应断言和断言预期结果。
6.根据权利要求5所述的方法,其特征在于,还包括:
解析所述接口响应断言进行内容提取获取接口响应结果,所述内容包括:状态码、响应体、响应头;
将所述接口响应结果与所述预期结果进行匹配,获得所述唯一测试用例标记接口测试结果,所述匹配方式包括:包含、相等以及正则匹配。
7.根据权利要求1或6所述的方法,其特征在于,还包括:
判断输入参数返回的响应结果是否与对应的响应断言相匹配,若匹配失败,则测试不通过,生成对应测试报告向测试人员发送告警;若匹配成功,则生成测试通过报告并返回测试通过消息。
8.一种全链路接口测试***,其特征在于,所述***包括:
数据驱动模块,用于基于所述测试方法生成数据驱动,将所述接口与对应输入参数、断言及断言预期结果进行绑定;
解析生成模块,用于读取测试数据,解析所述测试数据生成唯一测试用例标记;
数据发送模块,用于发送携带输入参数的接口测试请求信息;
数据校验模块,用于解析所述接口响应断言获取接口响应结果,将所述接口响应结果与所述断言预期结果进行匹配,得到所述唯一测试用例标记接口测试结果;
测试报告生成模块,用于根据所述标记接口测试结果,生成测试报告。
9.一种计算机可读存储介质,其中存储有计算机程序,其特征在于,所述计算机程序被处理器加载执行时,实现如权利要求1至7中任一所述的全链路接口测试方法。
10.一种电子设备,其特征在于,包括:处理器、存储器及通信接口;其中,
所述存储器用于存储计算机程序;
所述处理器用于加载执行所述计算机程序,以使所述电子设备执行如权利要求1至7中任一所述的全链路接口测试方法;
所述通信接口用于实现访问装置与其他设备之间的通信。
CN202210280646.4A 2022-03-22 2022-03-22 一种全链路接口测试方法、***、介质及电子设备 Pending CN114816993A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210280646.4A CN114816993A (zh) 2022-03-22 2022-03-22 一种全链路接口测试方法、***、介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210280646.4A CN114816993A (zh) 2022-03-22 2022-03-22 一种全链路接口测试方法、***、介质及电子设备

Publications (1)

Publication Number Publication Date
CN114816993A true CN114816993A (zh) 2022-07-29

Family

ID=82530648

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210280646.4A Pending CN114816993A (zh) 2022-03-22 2022-03-22 一种全链路接口测试方法、***、介质及电子设备

Country Status (1)

Country Link
CN (1) CN114816993A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115809201A (zh) * 2022-12-23 2023-03-17 广州市保伦电子有限公司 一种基于二维表的接口测试控制方法、装置、设备及介质
CN117033234A (zh) * 2023-08-24 2023-11-10 广东保伦电子股份有限公司 一种接口测试方法、装置、设备及介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115809201A (zh) * 2022-12-23 2023-03-17 广州市保伦电子有限公司 一种基于二维表的接口测试控制方法、装置、设备及介质
CN115809201B (zh) * 2022-12-23 2023-10-20 广东保伦电子股份有限公司 一种基于二维表的接口测试控制方法、装置、设备及介质
CN117033234A (zh) * 2023-08-24 2023-11-10 广东保伦电子股份有限公司 一种接口测试方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
CN111428462B (zh) 通讯协议模板构建的方法及终端设备
CN114816993A (zh) 一种全链路接口测试方法、***、介质及电子设备
CN107526676B (zh) 一种跨***测试方法及装置
CN108415826B (zh) 应用的测试方法、终端设备及计算机可读存储介质
CN108460068B (zh) 报表导入导出的方法、装置、存储介质及终端
CN114116496A (zh) 自动化测试方法、装置、设备及介质
US20070245313A1 (en) Failure tagging
CN111597069B (zh) 程序处理方法、装置、电子设备和存储介质
CN110737631A (zh) 一种基于Flink引擎的数据解析方法及装置
CN110287700B (zh) 一种iOS应用安全分析方法及装置
CN106649110B (zh) 软件测试方法及***
CN114660437A (zh) 一种波形文件生成方法及装置
CN114528201A (zh) 异常代码定位方法、装置、设备及介质
CN114816772B (zh) 基于兼容层运行的应用的排错方法、排错***及计算设备
CN116860608A (zh) 一种接口测试方法、装置、计算设备及存储介质
CN114338850B (zh) 报文核对方法、装置、终端设备及计算机可读存储介质
CN113535580B (zh) 一种cts测试方法、装置及测试设备
CN113238940B (zh) 一种接口测试结果的比对方法、装置、设备和存储介质
CN114157439B (zh) 漏洞扫描方法、计算设备及记录介质
CN115080433A (zh) 基于流量回放的测试方法及装置
CN115061924A (zh) 自动化测试案例的生成方法、生成装置
KR101737575B1 (ko) 자동 생성된 sql 구문 기반의 데이터 검증 방법 및 장치
CN114756440B (zh) 智能卡的数据写入方法、装置、设备及存储介质
US11474816B2 (en) Code review using quantitative linguistics
CN117555813B (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