CN114238085A - 接口测试方法、装置、计算机设备、存储介质 - Google Patents
接口测试方法、装置、计算机设备、存储介质 Download PDFInfo
- Publication number
- CN114238085A CN114238085A CN202111452001.6A CN202111452001A CN114238085A CN 114238085 A CN114238085 A CN 114238085A CN 202111452001 A CN202111452001 A CN 202111452001A CN 114238085 A CN114238085 A CN 114238085A
- Authority
- CN
- China
- Prior art keywords
- assertion
- interface
- value
- test
- request
- 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/3684—Test management for test design, e.g. generating new test cases
-
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开涉及一种接口测试方法、装置、计算机设备、存储介质,所述方法包括:从数据库中读取接口测试脚本的接口请求信息,构建得到第一测试请求;发送所述第一测试请求,获取返回值;从所述数据库中获取断言预期值,从所述返回值中获取断言实际值,判断所述断言预期值与所述断言实际值是否相同,在所述断言预期值与所述断言实际值不相同的情况下,根据所述断言实际值更新所述数据库;获取所述返回值中的占位符对应值,并根据所述占位符对应值更新所述数据库;重复上述步骤,直至执行完毕所述接口测试脚本。本公开通过实时更新数据库,有助于后续导出完整的不含占位符的请求数据,为其他测试活动提供测试数据。
Description
技术领域
本公开涉及接口测试领域,特别是涉及一种接口测试方法、装置、计算机设备、存储介质。
背景技术
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。在软件工程领域,分层测试的“金字塔”模型中,接口测试属于第二层服务集成测试范畴。相比UI层(主要是WEB或APP)自动化测试而言,接口自动化测试收益更大,且容易实现,维护成本低,是开展自动化测试的首选。
在传统技术中,接口测试过程中往往无法将测试的请求数据导出作为测试资源,为其他测试活动提供测试数据,并且大多测试脚本中会使用占位符来获取其他请求响应结果中的数据,直接导出会包含占位符,无法正确组成请求数据。
发明内容
基于此,有必要针对上述技术问题,提供一种接口测试方法、装置、计算机设备、存储介质和计算机程序产品。
第一方面,本公开提供了一种接口测试方法。所述方法包括:
从数据库中读取接口测试脚本的接口请求信息,根据所述接口请求信息中的占位符从所述数据库中获取占位符替换值,将所述接口请求信息中的占位符替换为所述占位符替换值之后构建得到第一测试请求;
发送所述第一测试请求,获取返回值;
从所述数据库中获取断言预期值,从所述返回值中获取断言实际值,判断所述断言预期值与所述断言实际值是否相同,在所述断言预期值与所述断言实际值不相同的情况下,根据所述断言实际值更新所述数据库;
获取所述返回值中的占位符对应值,并根据所述占位符对应值更新所述数据库;
重复上述步骤,直至执行完毕所述接口测试脚本。
在其中一个实施例中,所述从数据库中读取接口测试脚本的接口请求信息之前包括:
录入所述接口测试脚本,将所述接口测试脚本的测试信息存储至所述数据库;所述测试信息包括接口请求信息、接口断言信息、接口占位符信息;
接收客户端发起执行所述接口测试脚本的执行请求。
在其中一个实施例中,所述录入所述接口测试脚本,将所述接口测试脚本的测试信息存储至所述数据库包括:
将所述测试信息中的接口请求信息存储至第一数据表,所述接口请求信息包括请求协议、请求方式、请求头、请求地址;
将所述测试信息中的接口断言信息存储至第二数据表,接口断言信息包括断言取值表达式、断言表达式、断言实际值、断言预期值;
将所述测试信息中的接口占位符信息存储至第三数据表,所述接口占位符信息包括占位符关键字、占位符取值表达式和占位符替换值。
在其中一个实施例中,所述执行完毕所述接口测试脚本之后还包括:
接收客户端导出所述第一测试请求的导出请求;所述第一测试请求对应的接口测试脚本为已执行完毕状态;
从更新过的数据库中读取接口测试脚本的接口请求信息,根据所述接口请求信息中的占位符从所述数据库中获取占位符替换值,将所述接口请求信息中的占位符替换为所述占位符替换值,构建第二测试请求;重复构建第二测试请求的步骤,直至构建出所有的第二测试请求;
将所述第二测试请求返回至客户端。
在其中一个实施例中,所述构建第二测试请求的步骤还包括:
在根据所述接口请求信息中的占位符从所述数据库中获取占位符替换值获取失败的情况下,跳转执行其他第一测试请求的导出请求。
在其中一个实施例中,所述从所述数据库中获取断言预期值,从所述返回值中获取断言实际值,判断所述断言预期值与所述断言实际值是否相同,在所述断言预期值与所述断言实际值不相同的情况下,根据所述断言实际值更新所述数据库包括:
根据断言取值表达式从所述数据库的接口断言信息中获取断言预期值;
根据所述断言取值表达式从所述返回值中获取断言实际值;
判断所述断言预期值与所述断言实际值是否相同,在所述断言预期值与所述断言实际值不相同的情况下,根据所述断言实际值替换所述数据库中对应的断言预期值。
第二方面,本公开还提供了一种接口测试装置。所述装置包括:
第一测试请求模块,用于从数据库中读取接口测试脚本的接口请求信息,根据所述接口请求信息中的占位符从所述数据库中获取占位符替换值,将所述接口请求信息中的占位符替换为所述占位符替换值之后构建得到第一测试请求;
发送模块,用于发送所述第一测试请求,获取返回值;
断言更新模块,用于从所述数据库中获取断言预期值,从所述返回值中获取断言实际值,判断所述断言预期值与所述断言实际值是否相同,在所述断言预期值与所述断言实际值不相同的情况下,根据所述断言实际值更新所述数据库;
占位符更新模块,用于获取所述返回值中的占位符对应值,并根据所述占位符对应值更新所述数据库。
在其中一个实施例中,所述装置还包括:
录入模块,用于录入所述接口测试脚本,将所述接口测试脚本的测试信息存储至所述数据库;所述测试信息包括接口请求信息、接口断言信息、接口占位符信息;
客户端交互模块,用于接收客户端发起执行所述接口测试脚本的执行请求。
在其中一个实施例中,所述录入模块包括:
第一数据单元,用于将所述测试信息中的接口请求信息存储至第一数据表,所述接口请求信息包括请求协议、请求方式、请求头、请求地址;
第二数据单元,用于将所述测试信息中的接口断言信息存储至第二数据表,接口断言信息包括断言取值表达式、断言表达式、断言实际值、断言预期值;
第三数据单元,用于将所述测试信息中的接口占位符信息存储至第三数据表,所述接口占位符信息包括占位符关键字、占位符取值表达式和占位符替换值。
在其中一个实施例中,所述客户端交互模块还用于接收客户端导出所述第一测试请求的导出请求;所述第一测试请求对应的接口测试脚本为已执行完毕状态;
所述装置还包括第二测试请求模块,用于从更新过的数据库中读取接口测试脚本的接口请求信息,根据所述接口请求信息中的占位符从所述数据库中获取占位符替换值,将所述接口请求信息中的占位符替换为所述占位符替换值,构建第二测试请求;重复构建第二测试请求的步骤,直至构建出所有的第二测试请求;
所述客户端交互模块还用于将所述第二测试请求返回至客户端。
在其中一个实施例中,所述断言更新模块包括:
断言预期单元,用于根据断言取值表达式从所述数据库的接口断言信息中获取断言预期值;
断言实际单元,用于根据所述断言取值表达式从所述返回值中获取断言实际值;
断言更新单元,用于判断所述断言预期值与所述断言实际值是否相同,在所述断言预期值与所述断言实际值不相同的情况下,根据所述断言实际值替换所述数据库中对应的断言预期值。
第三方面,本公开还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述接口测试方法的步骤。
第四方面,本公开还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述接口测试方法的步骤。
第五方面,本公开还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述接口测试方法的步骤。
上述接口测试方法、装置、计算机设备、存储介质和计算机程序产品,至少包括以下有益效果:
本公开通过数据库预先存储接口请求信息,在执行测试脚本时,实时更新数据库,有助于后续导出完整的不含占位符的请求数据,为其他测试活动提供测试数据。
附图说明
为了更清楚地说明本公开实施例或传统技术中的技术方案,下面将对实施例或传统技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中接口测试方法的应用环境图;
图2为一个实施例中接口测试方法的流程示意图;
图3为一个实施例中构建第一测试请求的步骤的流程示意图;
图4为一个实施例中读取接口测试脚本的接口请求信息之前步骤的流程示意图;
图5为一个实施例中录入接口测试脚本步骤的流程示意图;
图6为一个实施例中导出第二测试请求步骤的流程示意图;
图7为一个实施例中构建第二测试请求步骤的流程示意图;
图8为一个实施例中接口测试装置的结构框图;
图9为一个实施例中接口测试装置的另一结构框图;
图10为一个实施例中录入模块的结构框图;
图11为一个实施例中接口测试装置的另一结构框图;
图12为一个实施例中断言更新模块的结构框图;
图13为一个实施例中计算机设备的内部结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
除非另有定义,本文所使用的所有的技术和科学术语与属于本公开的技术领域的技术人员通常理解的含义相同。本文中在本公开的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本公开。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。例如若使用到第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
在此使用时,单数形式的“一”、“一个”和“所述/该”也可以包括复数形式,除非上下文清楚指出另外的方式。还应当理解的是,术语“包括/包含”或“具有”等指定所陈述的特征、整体、步骤、操作、组件、部分或它们的组合的存在,但是不排除存在或添加一个或更多个其他特征、整体、步骤、操作、组件、部分或它们的组合的可能性。同时,在本说明书中,术语“和/或”包括相关所列项目的任何及所有组合。
本申请实施例提供的接口测试方法,可以应用于如图1所示的应用环境中。其中,客户端102通过网络与服务器104进行通信。数据库可以存储服务器104需要处理的数据。数据库可以集成在服务器104上,也可以放在云上或其他网络服务器上。其中,客户端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,也可以是其他服务器。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。服务器104用于提供接口自动化测试服务,在接收到客户端102的测试请求后,执行接口测试脚本,并将测试请求数据返回至客户端102。
在本公开的一些实施例中,如图2所示,提供了一种接口测试方法,以该方法应用于图1中的服务器104为例进行说明,包括以下步骤:
步骤S10:从数据库中读取接口测试脚本的接口请求信息,根据所述接口请求信息中的占位符从所述数据库中获取占位符替换值,将所述接口请求信息中的占位符替换为所述占位符替换值之后构建得到第一测试请求。
具体地,数据库中预先存储有接口测试脚本,通过读取接口测试脚本,获取接口请求信息。参考图3的流程示意图,在读取接口请求信息过程中,判断当前语句中是否包含占位符,在包含占位符的情况下,获取占位符的关键值(key),并根据占位符的在数据库中查询其占位符的占位符替换值,用查询到的占位符替换值替换当前语句中的占位符,最后将各部分接口请求信息组成完整的第一测试请求。在当前语句中不包含占位符的情况下,可以顺序读取下一语句或者处于读取完毕节点直接导出第一测试请求。此时第一测试请求中不含占位符。其中,接口测试脚本可以是指使用特定的描述性语言和格式编写的用于完整实现接口自动化测试、自动执行及邮件发送测试报告功能的可执行文件。接口请求信息可以是指接口测试脚本中的包含接口请求的信息。
步骤S20:发送所述第一测试请求,获取返回值。
具体地,接口测试主要用于外部系统与系统之间以及内部各个子系统之间的交互点,定义特定的交互点,然后通过这些交互点来,通过一些特殊的规则也就是协议,来进行数据之间的交互。通过执行接口测试脚本,向被测系统发送第一测试请求,获得测试的返回值。
步骤S30:从所述数据库中获取断言预期值,从所述返回值中获取断言实际值,判断所述断言预期值与所述断言实际值是否相同,在所述断言预期值与所述断言实际值不相同的情况下,根据所述断言实际值更新所述数据库。
具体地,从数据库中查询断言预期值,再从返回值中读取断言实际值,将对应的断言预期值与断言实际值进行对比判断。当断言实际值与断言预期值不同时,根据返回值中的断言实际值对数据库中的断言预期值进行更新,同时记录下两者不同时的数据信息。
步骤S40:获取所述返回值中的占位符对应值,并根据所述占位符对应值更新所述数据库。
具体地,从返回值中读取占位符对应值,将获取的占位符对应值与数据库中对应的占位符进行替换,更新数据库。
步骤S50:重复上述步骤,直至执行完毕所述接口测试脚本。
具体地,重复上述步骤S10至步骤S40,直至执行完所有的接口测试脚本。
上述接口测试方法中,通过数据库预先存储接口请求信息,在执行测试脚本时,实时更新数据库,有助于后续导出完整的不含占位符的请求数据,为其他测试活动提供测试数据。
在本公开的一些实施例中,如图4所示,所述从数据库中读取接口测试脚本的接口请求信息之前包括:
步骤A10:录入所述接口测试脚本,将所述接口测试脚本的测试信息存储至所述数据库;所述测试信息包括接口请求信息、接口断言信息、接口占位符信息。
具体地,在执行接口测试脚本之前,预先将接口测试脚本的测试信息录入到数据库中。其中,测试信息包括与接口请求相关的接口请求信息、与断言相关的接口断言信息、与占位符相关的接口占位符信息。
步骤A20:接收客户端发起执行所述接口测试脚本的执行请求。
具体地,客户端可以通过人机交互接收用户的指令,在接收用户的指令后触发向服务器端发起执行所述接口测试脚本的执行请求。服务器端在接收到客户端的执行请求后,执行接口测试脚本进行接口测试。
本实施例通过预先在数据库中录入接口测试脚本的测试信息,可以在后续测试中提供测试信息,并不断更新,并将更新后的数据库及时参与到测试中,提高了接口测试的准确性,并且有助于提高请求数据导出效率。
在本公开的一些实施例中,如图5所示,上述步骤A10包括:
步骤A12:将所述测试信息中的接口请求信息存储至第一数据表,所述接口请求信息包括请求协议、请求方式、请求头、请求地址。
具体地,在数据库中建立三个数据表,将与接口请求相关的接口请求信息存储至第一数据表,第一数据表用来存储包括且不限于接口测试请求的请求协议、请求方法、请求头、请求地址和请求参数。
步骤A14:将所述测试信息中的接口断言信息存储至第二数据表,接口断言信息包括断言取值表达式、断言表达式、断言实际值、断言预期值。
具体地,第二数据表用来存储与断言相关的接口断言信息,例如包括且不限于断言取值表达式、断言表达式、断言实际值、断言预期值。
步骤A16:将所述测试信息中的接口占位符信息存储至第三数据表,所述接口占位符信息包括占位符关键字、占位符取值表达式和占位符替换值。
具体地,第三数据表用来存储与占位符相关的接口占位符信息,例如包括且不限于占位符关键字、占位符取值表达式和占位符替换值。
本实施例通过对测试信息的关键信息进行分别存储,以数据表的形式分别对接口请求信息、接口断言信息、接口占位符信息进行存储,大大提供了数据查询效率。
在本公开的一些实施例中,如图6所示,所述执行完毕所述接口测试脚本之后还包括:
步骤B10:接收客户端导出所述第一测试请求的导出请求;所述第一测试请求对应的接口测试脚本为已执行完毕状态。
具体地,在接口测试脚本执行完毕后,接收客户端发送的导出第一测试请求的导出请求。
步骤B20:从更新过的数据库中读取接口测试脚本的接口请求信息,根据所述接口请求信息中的占位符从所述数据库中获取占位符替换值,将所述接口请求信息中的占位符替换为所述占位符替换值,构建第二测试请求;重复构建第二测试请求的步骤,直至构建出所有的第二测试请求。
具体地,接口测试脚本的执行过程伴随着数据库的更新,在导出第一测试请求时,从更新过的数据库中读取接口测试脚本的接口请求信息。读取过程参考上述步骤S10中的读取步骤。从数据库中将各部分请求数据组成完整请求,当遇到占位符时,根据占位符的关键值查询对应的占位符替换值,直至将所有占位符替换完毕组装获得第二测试请求。
步骤B30:将所述第二测试请求返回至客户端。
具体地,在组装完毕第二测试请求后,响应客户端发送的导出请求,将第二测试请求返回至客户端。
本实施例在导出第二测试请求时,响应客户端的导出请求,根据更新过的数据库中各部分接口请求信息,构建完整的不包含占位符的第二测试请求并返回至客户端,保证了导出的测试请求数据的完整性,有助于后续的测试结果分析。
在本公开的一些实施例中,所述构建第二测试请求的步骤还包括:
在根据所述接口请求信息中的占位符从所述数据库中获取占位符替换值获取失败的情况下,跳转执行其他第一测试请求的导出请求。
具体地,在导出第二测试请求时,是按照时序对第一测试请求依次导出,在对某一第一测试请求导出失败时,自动跳转导出下一个第一测试请求,避免由于一个测试请求导出失败造成无法组装第二测试请求。
本实施例通过监控第一测试请求的导出状态,及时对第一测试请求导出失败作出响应,通过跳转导出其他第一测试请求保证整体的第二测试请求的组装完整性。
在本公开的一些实施例中,如图7所示,上述步骤S30包括:
步骤S32:根据断言取值表达式从所述数据库的接口断言信息中获取断言预期值。
具体地,断言取值表达式存储在数据库中,使用断言数据的jsonpath断言取值表达式从数据库中获取断言预期值。
步骤S34:根据所述断言取值表达式从所述返回值中获取断言实际值。
具体地,使用断言数据的jsonpath断言取值表达式从返回值中获取断言预期值。
步骤S36:判断所述断言预期值与所述断言实际值是否相同,在所述断言预期值与所述断言实际值不相同的情况下,根据所述断言实际值替换所述数据库中对应的断言预期值。
具体地,判断断言实际值是否与断言预期值相同,如果判断不相同,则用断言实际值替换数据库中的断言预期值,更新数据库中的断言预期值。
本实施例通过断言取值表达式获取断言实际值和断言预期值,提高了数具获取效率,同时对断言预期值的更新保证了数据库中数据的及时性。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本公开实施例还提供了一种用于实现上述所涉及的接口测试方法的接口测试装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个接口测试装置实施例中的具体限定可以参见上文中对于接口测试方法的限定,在此不再赘述。
所述装置可以包括使用了本说明书实施例所述方法的系统(包括分布式系统)、软件(应用)、模块、组件、服务器、客户端等并结合必要的实施硬件的装置。基于同一创新构思,本公开实施例提供的一个或多个实施例中的装置如下面的实施例所述。由于装置解决问题的实现方案与方法相似,因此本说明书实施例具体的装置的实施可以参见前述方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
在本公开的一些实施例中,如图8所示,提供了一种接口测试装置,所述装置Z00可以包括:
第一测试请求模块Z10,用于从数据库中读取接口测试脚本的接口请求信息,根据所述接口请求信息中的占位符从所述数据库中获取占位符替换值,将所述接口请求信息中的占位符替换为所述占位符替换值之后构建得到第一测试请求;
发送模块Z20,用于发送所述第一测试请求,获取返回值;
断言更新模块Z30,用于从所述数据库中获取断言预期值,从所述返回值中获取断言实际值,判断所述断言预期值与所述断言实际值是否相同,在所述断言预期值与所述断言实际值不相同的情况下,根据所述断言实际值更新所述数据库;
占位符更新模块Z40,用于获取所述返回值中的占位符对应值,并根据所述占位符对应值更新所述数据库。
在本公开的一些实施例中,如图9所示,所述装置Z00还包括:
录入模块Z50,用于录入所述接口测试脚本,将所述接口测试脚本的测试信息存储至所述数据库;所述测试信息包括接口请求信息、接口断言信息、接口占位符信息;
客户端交互模块Z60,用于接收客户端发起执行所述接口测试脚本的执行请求。
在本公开的一些实施例中,如图10所示,所述录入模块Z50包括:
第一数据单元Z52,用于将所述测试信息中的接口请求信息存储至第一数据表,所述接口请求信息包括请求协议、请求方式、请求头、请求地址;
第二数据单元Z54,用于将所述测试信息中的接口断言信息存储至第二数据表,接口断言信息包括断言取值表达式、断言表达式、断言实际值、断言预期值;
第三数据单元Z56,用于将所述测试信息中的接口占位符信息存储至第三数据表,所述接口占位符信息包括占位符关键字、占位符取值表达式和占位符替换值。
在本公开的一些实施例中,如图11所示,所述客户端交互模块Z60还用于接收客户端导出所述第一测试请求的导出请求;所述第一测试请求对应的接口测试脚本为已执行完毕状态;
所述装置Z00还包括第二测试请求模块Z70,用于从更新过的数据库中读取接口测试脚本的接口请求信息,根据所述接口请求信息中的占位符从所述数据库中获取占位符替换值,将所述接口请求信息中的占位符替换为所述占位符替换值,构建第二测试请求;重复构建第二测试请求的步骤,直至构建出所有的第二测试请求;
所述客户端交互模块Z60还用于将所述第二测试请求返回至客户端。
在本公开的一些实施例中,如图12所示,所述断言更新模块Z30包括:
断言预期单元Z32,用于根据断言取值表达式从所述数据库的接口断言信息中获取断言预期值;
断言实际单元Z34,用于根据所述断言取值表达式从所述返回值中获取断言实际值;
断言更新单元Z36,用于判断所述断言预期值与所述断言实际值是否相同,在所述断言预期值与所述断言实际值不相同的情况下,根据所述断言实际值替换所述数据库中对应的断言预期值。
上述接口测试装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。需要说明的是,本公开实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
基于前述接口测试方法的实施例描述,在本公开提供的另一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图13所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种接口测试方法。
本领域技术人员可以理解,图中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
基于前述接口测试方法的实施例描述,在本公开提供的另一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各方法实施例中的步骤。
基于前述接口测试方法的实施例描述,在本公开提供的另一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
在本说明书的描述中,参考术语“有些实施例”、“其他实施例”、“理想实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特征包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性描述不一定指的是相同的实施例或示例。
可以理解的是,本说明书中上述方法的各个实施例均采用递进的方式描述,各个实施例之间相同/相似的部分互相参见即可,每个实施例重点说明的都是与其它实施例的不同之处。相关之处参见其他方法实施例的描述说明即可。
上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本公开的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本公开构思的前提下,还可以做出若干变形和改进,这些都属于本公开的保护范围。因此,本公开专利的保护范围应以所附权利要求为准。
Claims (14)
1.一种接口测试方法,其特征在于,所述方法包括:
从数据库中读取接口测试脚本的接口请求信息,根据所述接口请求信息中的占位符从所述数据库中获取占位符替换值,将所述接口请求信息中的占位符替换为所述占位符替换值之后构建得到第一测试请求;
发送所述第一测试请求,获取返回值;
从所述数据库中获取断言预期值,从所述返回值中获取断言实际值,判断所述断言预期值与所述断言实际值是否相同,在所述断言预期值与所述断言实际值不相同的情况下,根据所述断言实际值更新所述数据库;
获取所述返回值中的占位符对应值,并根据所述占位符对应值更新所述数据库;
重复上述步骤,直至执行完毕所述接口测试脚本。
2.根据权利要求1所述的方法,其特征在于,所述从数据库中读取接口测试脚本的接口请求信息之前包括:
录入所述接口测试脚本,将所述接口测试脚本的测试信息存储至所述数据库;所述测试信息包括接口请求信息、接口断言信息、接口占位符信息;
接收客户端发起执行所述接口测试脚本的执行请求。
3.根据权利要求2所述的方法,其特征在于,所述录入所述接口测试脚本,将所述接口测试脚本的测试信息存储至所述数据库包括:
将所述测试信息中的接口请求信息存储至第一数据表,所述接口请求信息包括请求协议、请求方式、请求头、请求地址;
将所述测试信息中的接口断言信息存储至第二数据表,接口断言信息包括断言取值表达式、断言表达式、断言实际值、断言预期值;
将所述测试信息中的接口占位符信息存储至第三数据表,所述接口占位符信息包括占位符关键字、占位符取值表达式和占位符替换值。
4.根据权利要求1所述的方法,其特征在于,所述执行完毕所述接口测试脚本之后还包括:
接收客户端导出所述第一测试请求的导出请求;所述第一测试请求对应的接口测试脚本为已执行完毕状态;
从更新过的数据库中读取接口测试脚本的接口请求信息,根据所述接口请求信息中的占位符从所述数据库中获取占位符替换值,将所述接口请求信息中的占位符替换为所述占位符替换值,构建第二测试请求;重复构建第二测试请求的步骤,直至构建出所有的第二测试请求;
将所述第二测试请求返回至客户端。
5.根据权利要求4所述的方法,其特征在于,所述构建第二测试请求的步骤还包括:
在根据所述接口请求信息中的占位符从所述数据库中获取占位符替换值获取失败的情况下,跳转执行其他第一测试请求的导出请求。
6.根据权利要求1所述的方法,其特征在于,所述从所述数据库中获取断言预期值,从所述返回值中获取断言实际值,判断所述断言预期值与所述断言实际值是否相同,在所述断言预期值与所述断言实际值不相同的情况下,根据所述断言实际值更新所述数据库包括:
根据断言取值表达式从所述数据库的接口断言信息中获取断言预期值;
根据所述断言取值表达式从所述返回值中获取断言实际值;
判断所述断言预期值与所述断言实际值是否相同,在所述断言预期值与所述断言实际值不相同的情况下,根据所述断言实际值替换所述数据库中对应的断言预期值。
7.一种接口测试装置,其特征在于,所述装置包括:
第一测试请求模块,用于从数据库中读取接口测试脚本的接口请求信息,根据所述接口请求信息中的占位符从所述数据库中获取占位符替换值,将所述接口请求信息中的占位符替换为所述占位符替换值之后构建得到第一测试请求;
发送模块,用于发送所述第一测试请求,获取返回值;
断言更新模块,用于从所述数据库中获取断言预期值,从所述返回值中获取断言实际值,判断所述断言预期值与所述断言实际值是否相同,在所述断言预期值与所述断言实际值不相同的情况下,根据所述断言实际值更新所述数据库;
占位符更新模块,用于获取所述返回值中的占位符对应值,并根据所述占位符对应值更新所述数据库。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
录入模块,用于录入所述接口测试脚本,将所述接口测试脚本的测试信息存储至所述数据库;所述测试信息包括接口请求信息、接口断言信息、接口占位符信息;
客户端交互模块,用于接收客户端发起执行所述接口测试脚本的执行请求。
9.根据权利要求8所述的装置,其特征在于,所述录入模块包括:
第一数据单元,用于将所述测试信息中的接口请求信息存储至第一数据表,所述接口请求信息包括请求协议、请求方式、请求头、请求地址;
第二数据单元,用于将所述测试信息中的接口断言信息存储至第二数据表,接口断言信息包括断言取值表达式、断言表达式、断言实际值、断言预期值;
第三数据单元,用于将所述测试信息中的接口占位符信息存储至第三数据表,所述接口占位符信息包括占位符关键字、占位符取值表达式和占位符替换值。
10.根据权利要求7所述的装置,其特征在于,所述客户端交互模块还用于接收客户端导出所述第一测试请求的导出请求;所述第一测试请求对应的接口测试脚本为已执行完毕状态;
所述装置还包括第二测试请求模块,用于从更新过的数据库中读取接口测试脚本的接口请求信息,根据所述接口请求信息中的占位符从所述数据库中获取占位符替换值,将所述接口请求信息中的占位符替换为所述占位符替换值,构建第二测试请求;重复构建第二测试请求的步骤,直至构建出所有的第二测试请求;
所述客户端交互模块还用于将所述第二测试请求返回至客户端。
11.根据权利要求7所述的装置,其特征在于,所述断言更新模块包括:
断言预期单元,用于根据断言取值表达式从所述数据库的接口断言信息中获取断言预期值;
断言实际单元,用于根据所述断言取值表达式从所述返回值中获取断言实际值;
断言更新单元,用于判断所述断言预期值与所述断言实际值是否相同,在所述断言预期值与所述断言实际值不相同的情况下,根据所述断言实际值替换所述数据库中对应的断言预期值。
12.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
14.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111452001.6A CN114238085A (zh) | 2021-11-30 | 2021-11-30 | 接口测试方法、装置、计算机设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111452001.6A CN114238085A (zh) | 2021-11-30 | 2021-11-30 | 接口测试方法、装置、计算机设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114238085A true CN114238085A (zh) | 2022-03-25 |
Family
ID=80752611
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111452001.6A Pending CN114238085A (zh) | 2021-11-30 | 2021-11-30 | 接口测试方法、装置、计算机设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114238085A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114676062A (zh) * | 2022-04-06 | 2022-06-28 | 北京百度网讯科技有限公司 | 用于接口的差异数据测试方法及装置、电子设备和介质 |
CN116680203A (zh) * | 2023-08-02 | 2023-09-01 | 北京白龙马云行科技有限公司 | 面向多租户的SaaS平台的测试方法、装置、设备和介质 |
-
2021
- 2021-11-30 CN CN202111452001.6A patent/CN114238085A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114676062A (zh) * | 2022-04-06 | 2022-06-28 | 北京百度网讯科技有限公司 | 用于接口的差异数据测试方法及装置、电子设备和介质 |
CN116680203A (zh) * | 2023-08-02 | 2023-09-01 | 北京白龙马云行科技有限公司 | 面向多租户的SaaS平台的测试方法、装置、设备和介质 |
CN116680203B (zh) * | 2023-08-02 | 2024-05-03 | 北京白龙马云行科技有限公司 | 面向多租户的SaaS平台的测试方法、装置、设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10956479B2 (en) | System for linking diverse data systems | |
US10963800B2 (en) | Service layer augmentation of response to semantically-informed query of arbitrary external data sources | |
US8150674B2 (en) | Automated testing platform for event driven systems | |
US9356966B2 (en) | System and method to provide management of test data at various lifecycle stages | |
CN114238085A (zh) | 接口测试方法、装置、计算机设备、存储介质 | |
CN114791846B (zh) | 一种针对云原生混沌工程实验实现可观测性的方法 | |
CN114385620A (zh) | 数据处理方法、装置、设备及可读存储介质 | |
US20200012643A1 (en) | Method for managing and executing decoders and transformations using linked data and a service layer | |
CN114691506A (zh) | 压力测试方法、装置、设备、介质和程序产品 | |
CN115329011A (zh) | 数据模型的构建方法、数据查询的方法、装置及存储介质 | |
Mordinyi et al. | Evaluation of NoSQL graph databases for querying and versioning of engineering data in multi-disciplinary engineering environments | |
CN116644250A (zh) | 页面检测方法、装置、计算机设备和存储介质 | |
CN116911867A (zh) | 问题处理方法、装置、计算机设备和存储介质 | |
US9230011B1 (en) | Index-based querying of archived data sets | |
CN114462859A (zh) | 工作流处理方法、装置、计算机设备和存储介质 | |
US7703106B2 (en) | Discovering and monitoring process executions | |
CN112231377A (zh) | 数据映射方法、系统、装置、服务器和存储介质 | |
US20230385181A1 (en) | Re-usable web-objects for use with automation tools | |
US11561982B2 (en) | Intelligent and automatic exception handling | |
CN116880927A (zh) | 规则管理方法、装置、计算机设备和存储介质 | |
CN117076292A (zh) | 一种网页测试方法、装置、计算机设备、存储介质 | |
US20230094137A1 (en) | Generating and visualizing a data structure of a management model of an application server | |
CN114328965A (zh) | 知识图谱更新方法、装置及计算机设备 | |
CN113987322A (zh) | 指标数据查询方法、装置、计算机设备和计算机程序产品 | |
CN117785674A (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 |