CN111813701B - 基于http的接口测试方法、装置、计算机设备及存储介质 - Google Patents
基于http的接口测试方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN111813701B CN111813701B CN202010937685.8A CN202010937685A CN111813701B CN 111813701 B CN111813701 B CN 111813701B CN 202010937685 A CN202010937685 A CN 202010937685A CN 111813701 B CN111813701 B CN 111813701B
- Authority
- CN
- China
- Prior art keywords
- interface
- test
- result
- http
- assertion
- 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.)
- Active
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
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Artificial Intelligence (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请涉及软件测试技术领域,揭露一种基于HTTP的接口测试方法、装置、计算机设备及存储介质,其中方法包括:接收并读取测试用例的测试数据,并通过一致性的解析方式,对测试数据进行解析,然后匹配测试数据与接口对应的请求参数,发起http接口请求,再接收并解析http接口请求的返回请求响应,并从返回请求响应中获取接口响应断言和断言预期结果,通过解析接口响应断言,得到接口响应结果,并将接口响应结果与断言预期结果进行匹配计算,得到标记接口测试结果,最后根据标记接口测试结果,生成测试结果。本申请还涉及区块链技术,测试数据存储于区块链中。本申请通过对接口断言的设计,提高接口测试的效率。
Description
技术领域
本申请涉及软件测试领域,尤其涉及基于HTTP的接口测试方法、装置、计算机设备及存储介质。
背景技术
随着互联网技术的发展,开发的软件项目工程也越来越多,在软件项目工程中接口测试是一项非常重要的测试环节。接口测试主要测试这些软件项目工程(或者理解为软件系统)对外部提供的接口,以验证这些接口的正确性和稳定性。接口测试的重点是要检查数据的交换,具体是通过向服务器传递接口的测试参数,再接收服务器返回的返回结果,通过验证该返回结果的正确性,以完成对接口测试。
在进行HTTP接口测试时,为了支持数据驱动测试,需要对数据进行格式化定义和解析处理;然而如何将需要测试的请求数据及结果判定配置与不同业务的HTTP接口进行统一的数据格式定义和处理,是接口测试框架建设面临的一个难题。现有的方法是将接口测试数据写在测试代码中,通过测试代码实现请求数据及结果判定配置适应不同业务的HTTP接口。但是通过测试代码来实现,这会导致测试用例编写难度增大,测试数据可读性、可维护性差,难以实现数据驱动,从而导致接口测试效率低。现亟需一种接口测试方法,以提高接口测试的效率。
发明内容
本申请实施例的目的在于提出一种基于HTTP的接口测试方法,以提高接口测试的效率。
为了解决上述技术问题,本申请实施例提供一种基于HTTP的接口测试方法,包括:
接收并读取测试用例的测试数据;
通过一致性的解析方式,对所述测试数据进行解析;
匹配所述测试数据与接口对应的请求参数,发起http接口请求;
接收并解析http接口请求的返回请求响应,并从所述返回请求响应中获取接口响应断言和断言预期结果;
通过解析所述接口响应断言,得到接口响应结果,并将所述接口响应结果与所述断言预期结果进行匹配计算,得到标记接口测试结果;
根据所述标记接口测试结果,生成测试结果。
进一步的,所述通过解析所述接口响应断言,得到接口响应结果,并将所述接口响应结果与所述断言预期结果进行匹配计算,得到标记接口测试结果包括:
获取并解析接口预期结果配置数据,得到断言规则列表,并判断断言规则列表遍历是否完成,得到判断结果;
若所述判断结果为否,则根据内容提取符提取http接口的对应内容;
解析断言规则,并通过接口内容,得到匹配内容;
将所述对应内容和所述匹配内容进行匹配符号对应的计算判断,得到所述接口响应结果;
判断所述接口响应结果是否符合所述断言预期结果,得到所述标记接口测试结果。
进一步的,所述将所述对应内容和所述匹配内容进行匹配符号对应的计算判断,得到所述接口响应结果包括:
通过正则匹配的方式,将所述对应内容和所述匹配内容进行匹配计算,得到匹配计算结果;
若所述匹配计算结果为匹配结果的数量大于零,则通过所述内容提取符提取所述http接口进行返回,得到接口响应结果。
进一步的,所述若所述判断结果为否,则根据内容提取符提取http接口的对应内容包括:
若所述判断结果为否,则获取所述内容提取符和匹配符号;
通过所述内容提取符提取http接口的对应内容,所述对应内容包括状态码、接口响应体、接口响应头。
进一步的,在所述接收并读取测试用例的测试数据之前,所述方法还包括:
获取应用程序的数据包和应用协议类型;
对所述数据包进行解析得到所述应用程序的接口数据,根据所述应用协议类型将所述接口数据转换为预设数据格式;
根据所述预设数据格式的接口数据生成测试用例。
进一步的,所述根据所述预设数据格式的接口数据生成测试用例包括:
接收接口选择指令;
查找与所述接口选择指令中的接口标识相对应的预设数据格式接口数据;
获取所述预设数据格式接口数据中的接口请求参数,根据所述接口请求参数生成测试组件,并将生成的所述测试组件进行展示;
接收测试组件选择指令,将所述测试组件选择指令中的测试组件进行组装,生成测试用例。
进一步的,在所述匹配所述测试数据与接口对应的请求参数,发起http接口请求之前,所述方法还包括:获取接口的标记信息和测试用例的标记信息。
为了解决上述技术问题,本申请实施例提供一种基于HTTP的接口测试装置,包括:
测试数据获取模块,用于接收并读取测试用例的测试数据;
测试数据解析模块,用于通过一致性的解析方式,对所述测试数据进行解析;
接口请求发起模块,用于匹配所述测试数据与接口对应的请求参数,发起http接口请求;
断言结果获取模块,用于接收并解析http接口请求的返回请求响应,并从所述返回请求响应中获取接口响应断言和断言预期结果;
接口测试结果模块,用于通过解析所述接口响应断言,得到接口响应结果,并将所述接口响应结果与所述断言预期结果进行匹配计算,得到标记接口测试结果;
测试结果生成模块,用于根据所述标记接口测试结果,生成测试结果。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种计算机设备,包括,一个或多个处理器;存储器,用于存储一个或多个程序,使得一个或多个处理器实现上述任意一项所述的基于HTTP的接口测试方案。
为解决上述技术问题,本发明采用的一个技术方案是:一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的基于HTTP的接口测试方案。
以上方案中的一种基于HTTP的接口测试方法,通过接收并读取测试用例的测试数据,并对测试数据进行解析,以及匹配测试数据与接口对应的请求参数,然后发起http接口请求,再获取接口响应断言和断言预期结果,通过解析接口响应断言,得到接口响应结果,并将接口响应结果与断言预期结果进行匹配计算,得到标记接口测试结果,最后通过标记接口测试结果,生成测试结果,将要测试的请求数据及结果判定配置进行处理,实现请求数据和结果判断配置与不同业务的HTTP接口进行统一处理,从而提高接口测试的效率。
附图说明
为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的基于HTTP的接口测试方法的应用环境示意图;
图2根据本申请实施例提供的基于HTTP的接口测试方法的一实现流程图;
图3是本申请实施例提供的基于HTTP的接口测试方法中步骤S5的一实现流程图;
图4是本申请实施例提供的基于HTTP的接口测试方法中步骤S1之前的一实现流程图;
图5是本申请实施例提供的基于HTTP的接口测试方法中步骤S03的一实现流程图;
图6是本申请实施例提供的基于HTTP的接口测试装置示意图;
图7是本申请实施例提供的计算机设备的示意图。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
下面结合附图和实施方式对本发明进行详细说明。
请参阅图1,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、搜索类应用、即时通信工具等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器。
需要说明的是,本申请实施例所提供的一种基于HTTP的接口测试方法一般由服务器执行,相应地,一种基于HTTP的接口测试装置一般设置于服务器中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
请参阅图2,图2示出了基于HTTP的接口测试方法的一种具体实施方式。
需注意的是,若有实质上相同的结果,本发明的方法并不以图2所示的流程顺序为限,该方法包括如下步骤:
S1:接收并读取测试用例的测试数据。
具体的,在进行接口测试时,接口测试端会返回测试用例的测试数据,服务器通过接收和读取该测试用例的测试数据,从而进行接口的测试。
其中,测试用例(Test Case)是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。其内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,最终形成文档。简单地认为,测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,用于核实是否满足某个特定软件需求。在本方案中,通过接收并读取测试用例的测试数据,进行接口的测试。
S2:通过一致性的解析方式,对测试数据进行解析。
具体的,对测试数据进行解析是为了能够将测试数据与接口对应的请求参数进行匹配。
其中,一致性的解析方式为通过相同的解析方式,对接口的测试数据进行解析。
进一步的,提供一种解析方式:对于一个接口测试假设封装为如下的测试方法:
例如测试数据为:http_interfaceX_test(param1,param2,…,paramn)。
首先获取该测试方法关联的接口标识http_interfaceX,获取方法举例:通过方法名称约定(如方法名称包含接口标识前缀,举例http_interfaceX_xx包括包含接口标识前缀http_interfaceX)。
进一步的,另一种解析方式为:通过接口测试方法注解上的属性值获取接口标识,从而达到解析接口测试数据的目的。
S3:匹配测试数据与接口对应的请求参数,发起http接口请求。
具体的,测试数据与接口对应的请求参数都有标记信息,通过匹配标记信息,当测试数据的标记信息与请求参数的标记相匹配,则发起http接口请求。
其中,请求参数为接口测试时,由接口对应提供的参数,如post请求参数。
S4:接收并解析http接口请求的返回请求响应,并从返回请求响应中获取接口响应断言和断言预期结果。
具体的,通过接收并解析http接口请求的返回请求响应,并从返回请求响应中,获取接口响应断言,实现获取接口响应断言和断言预期结果,通过该断言预期结果与后续步骤得到的接口响应结果,进行比较,能够获取接口测试的结果。
其中,断言是编程术语,表示为一些布尔表达式,在程序中的某个特定点该表达式值为真,可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新启用断言。在本方案中,通过动态参数化的断言设计,可以提高断言的灵活性,从而满足不同的断言需求,解决接口测试框架建设时的问题。
其中,断言预期结果为接口测试中,断言设计中的预期结果,用于和接口测试最后得到的接口进行对比,从而得到测试结果。
其中,接口响应断言为接口测试数据中返回的数据,包含有接口测试的响应内容和接口测试结果等。
S5:通过解析接口响应断言,得到接口响应结果,并将接口响应结果与断言预期结果进行匹配计算,得到标记接口测试结果。
具体的,通过解析接口响应断言,并通过内容提取符和匹配符号,获取接口响应结果,再通过将接口响应结果与断言预期结果进行匹配计算,获得标记接口测试结果。步骤S5的详细实现过程可参考步骤S51至步骤S55的描述,为避免重复,此处不再累赘。
其中,接口测试结果为通过解析接口响应断言,而获得的结果,该结果包括测试最终得到的断言结果。
S6:根据标记接口测试结果,生成测试结果。
具体的,根据标记接口测试结果,判断断言预期结果和断言生成的结果是否一致,从而生成测试结果。
例如,在一个接口测试中,断言设置的断言预期结果为20,在接口测试过程中,断言生成的结果也是为20,这获取到的标记接口测试结果为断言预期结果和断言生成的结果一致,即标记接口测试结果为一致,则该接口测试结果为符合预期结果。
在本方案中,通过接收并读取测试用例的测试数据,并对测试数据进行解析,以及匹配测试数据与接口对应的请求参数,然后发起http接口请求,再获取接口响应断言和断言预期结果,通过解析接口响应断言,得到接口响应结果,并将接口响应结果与断言预期结果进行匹配计算,得到标记接口测试结果,最后通过标记接口测试结果,生成测试结果,将要测试的请求数据及结果判定配置进行处理,实现请求数据和结果判断配置与不同业务的HTTP接口进行统一处理,从而提高接口测试的效率。
请参阅图3,图3示出了步骤S5的一种具体实施方式,步骤S5中通过解析接口响应断言,得到接口响应结果,并将接口响应结果与断言预期结果进行匹配计算,得到标记接口测试结果的具体实现过程,详叙如下:
S51:获取并解析接口预期结果配置数据,得到断言规则列表,并判断断言规则列表遍历是否完成,得到判断结果。
具体的,断言规则列表包含内容提取符号,匹配符号,被匹配内容,例如规则${code}${equals} 200。其中,${code}为内容提取符号,代表提取http接口返回状态码;${equals}为匹配符号,代表结果断言引擎将使用相等匹配;200代表被匹配内容为200。因此这条断言规则的逻辑含义是断言该接口返回状态码为200。
S52:若判断结果为否,则根据内容提取符提取http接口的对应内容。
具体的,当判断结果为否,即未完成对断言规则列表的遍历完成,说明接口测试的部分内容未能够实现提取,则需要内容提取符提取http接口的对应内容,即通过内容提取符提取http接口的状态码、接口响应体和接口响应头。
其中,对应内容为通过内容提取符提取http接口的内容,包括接口状态码、结果响应码和接口响应体等等。
进一步的,内容提取符号定义包括${code}、${text}、${header.item}等3种。
其中,${code}在断言引擎中会提取http接口的状态码(status code)参与断言运算;${text}在断言引擎中会提取http接口响应体(body)参与断言运算;${header.item}在断言引擎中会提取http接口响应头(header)中ite具体项(item)参与断言运算,例如${header.Cookie}代表提取http接口响应头中的Cookie参与断言运算判断。
S53:解析断言规则,并通过接口内容,得到匹配内容。
具体的,通过解析断言规则,获取匹配符号,并通过接口内容,匹配得到匹配内容。
其中,匹配内容为通过匹配符号,匹配提取接口的相关内容,包括提取接口内容所包含的被匹配内容。
优选地,本实施例中定义的匹配符号包括${equals}、${notequals}、${contain}、${notcontain}、${reg}五种。
其中,${equals}代表参与断言运算时使用相等匹配;${contain}代表参与断言运算时使用包含匹配;${notcontain}代表参与断言运算时使用不包含匹配;${reg}代表参与断言运算时使用正则表达式匹配。
S54:将对应内容和匹配内容进行匹配符号对应的计算判断,得到接口响应结果。
具体的,通过将将对应内容和匹配内容进行匹配符号对应的计算判断,判断其中的匹配结果如何,并通过匹配结果的数量,最终得到接口响应结果。
进一步的,接口响应结果可能产生结果有对应内容与匹配内容存在完全相同的内容,部分相同内容或者完全不同的内容,根据产生的匹配结果,得到最终的接口响应结果。
S55:判断接口响应结果是否符合断言预期结果,得到标记接口测试结果。
具体的,若接口响应结果符合断言预期结果,则标记接口测试结果为接口测试符合预期结果;若接口响应结果不符合断言预期结果,则标记接口测试结果为接口测试不符合预期结果。
本实施例中,通过获取并解析接口预期结果配置数据,得到断言规则列表,并判断断言规则列表遍历是否完成,得到判断结果,若判断结果为否,则根据内容提取符提取http接口的对应内容,解析断言规则,并通过接口内容,得到匹配内容,将对应内容和匹配内容进行匹配符号对应的计算判断,得到接口响应结果,判断接口响应结果是否符合断言预期结果,得到标记接口测试结果,实现接口断言内容的获取与预期结果的对比,有利于获取得到标记接口结果,有效提高接口测试的效率。
进一步的,步骤S54包括:
通过正则匹配的方式,将对应内容和匹配内容进行匹配计算,得到匹配计算结果。
具体的,通过匹配符号${reg}正则表达式的匹配,将对应内容和匹配内容进行匹配计算,得到匹配计算结果。
若匹配计算结果为匹配结果的数量大于零,则通过内容提取符提取http接口进行返回,得到接口响应结果。
具体的,匹配计算结果为匹配结果的数量大于零,则说明对应内容和匹配内容存在着相应匹配的内容,则通过内容提取符提取http接口进行返回,得到接口响应结果。
本实施例中,通过内容提取符提取http接口进行返回,得到接口响应结果,若匹配计算结果为匹配结果的数量大于零,则通过内容提取符提取http接口进行返回,得到接口响应结果,实现获取接口相应结果,为后续获取测试结果做好基础,有利于提高接口测试的效率。
进一步的,步骤S52包括:
若判断结果为否,则获取内容提取符和匹配符号。
具体的,通过获取到的内容提取符和匹配符号,为后续步骤获取对应内容和匹配内容。
通过内容提取符提取http接口的对应内容,对应内容包括状态码、接口响应体、接口响应头。
具体的,通过内容提取符提取http接口返回的内容,该对应内容用以与匹配内容进行匹配计算。
本实施例中,若判断结果为否,则获取内容提取符和匹配符号,通过内容提取符提取http接口的对应内容,对应内容包括状态码、接口响应体、接口响应头,实现对应内容的精准获取,为后续将对应内容和匹配内容做匹配计算提供基础,进而实现提高接口测试效率。
请参阅图4,图4示出了在步骤S1之前的一种具体实施方式,包括:
S01:获取应用程序的数据包和应用协议类型。
具体的,应用程序的数据包中包含所有与应用程序测试相关的数据,具体包括接口数据、JAVA类、配置文件和保障测试正常运行的数据等,数据包一般为压缩数据包,如Jar包(JavaArchive,Java归档文件),War包(WebArchive file,网络应用程序文件)等。应用协议类型包括但不限于http协议、dubbo协议、webservice协议、socket协议、rest请求协议和protocolbuffer协议等。
S02:对数据包进行解析得到应用程序的接口数据,根据应用协议类型将接口数据转换为预设数据格式。
具体的,根据获取到的应用协议类型对接口数据的数据格式进行转换,将接口数据中的接口参数转换为统一的预设数据格式,如JSON字符串格式等。
S03:根据预设数据格式的接口数据生成测试用例。
具体的,服务器将接口数据转换为预设数据格式之后,根据经过数据格式装的接口数据获取接口测试用例,当服务器获取测试用例的创建指令后,根据创建指令后和接口数据的编写结果生成接口测试用例。
本实施例中,通过获取应用程序的数据包和应用协议类型,对数据包进行解析得到应用程序的接口数据,根据应用协议类型将接口数据转换为预设数据格式,根据预设数据格式的接口数据生成测试用例,使得接口测试以统一的格式进行测试,进而提高接口测试的效率。
请参阅图5,图5示出了步骤S03的一种具体实施方式,步骤S03中根据预设数据格式的接口数据生成测试用例的具体实现过程,详叙如下:
S031:接收接口选择指令。
其中,接口选择指令用于识别某一格式的接口数据。
S032:查找与接口选择指令中的接口标识相对应的预设数据格式接口数据。
具体的,通过查找与接口选择指令中的接口标识相对应的预设数据格式接口数据,进而选择预设格式的接口数据。
S033:获取预设数据格式接口数据中的接口请求参数,根据接口请求参数生成测试组件,并将生成的测试组件进行展示。
具体的,服务器获取接口数据中的接口请求参数,并根据获取的接口请求参数和预设接口请求数据的参数排列规则生成测试代码、并构成测试组件,测试组件为组成测试用例中的一个测试步骤,将测试组件进行组合之后可以生成测试用例。
S034:接收测试组件选择指令,将测试组件选择指令中的测试组件进行组装,生成测试用例。
需要说明的是,在很多情况下,一个测试组件也可以视为一个测试用例。
优选的,在一个实施例中,测试组件以应用程序标识、接口标识和序列号的顺序进行命名,由此从测试组件的名称中可以得到组件所要测试的具体接口的信息。服务器对生成的测试组件以列表的形式进行展示。
本实施例中,通过接收接口选择指令,查找与接口选择指令中的接口标识相对应的预设数据格式接口数据,获取预设数据格式接口数据中的接口请求参数,根据接口请求参数生成测试组件,并将生成的测试组件进行展示,接收测试组件选择指令,将测试组件选择指令中的测试组件进行组装,生成测试用例,实现获取测试用例,为接口测试提高基础,进而提高接口测试的效率。
进一步的,在步骤S3之前,该基于HTTP的接口测试方法还包括:
获取接口的标记信息和测试用例的标记信息。
具体的,通过获取接口的标记信息和测试用例的标记信息,匹配两者的标记信息,进而将测试数据准备到接口对应的请求参数上,从而实现发起http接口请求。
本实施例中,通过获取接口的标记信息和测试用例的标记信息,将测试数据准备到接口对应的请求参数上,为后续解析断言响应结果提供基础,进而有利于提高接口测试效率。
需要强调的是,为进一步保证上述测试数据的私密和安全性,上述测试数据还可以存储于一区块链的节点中。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
请参考图6,作为对上述图6所示方法的实现,本申请提供了一种基于HTTP的接口测试装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图6所示,本实施例的基于HTTP的接口测试装置包括:测试数据获取模块71、测试数据解析模块72、接口请求发起模块73、断言结果获取模块74、接口测试结果模块75及测试结果生成模块76,其中:
测试数据获取模块71,用于接收并读取测试用例的测试数据;
测试数据解析模块72,用于通过一致性的解析方式,对测试数据进行解析;
接口请求发起模块73,用于匹配测试数据与接口对应的请求参数,发起http接口请求;
断言结果获取模块74,用于接收并解析http接口请求的返回请求响应,并从返回请求响应中获取接口响应断言和断言预期结果;
接口测试结果模块75,用于通过解析接口响应断言,得到接口响应结果,并将接口响应结果与断言预期结果进行匹配计算,得到标记接口测试结果;
测试结果生成模块76,用于根据标记接口测试结果,生成测试结果。
进一步的,接口测试结果模块75包括:
判断结果获取单元,用于获取并解析接口预期结果配置数据,得到断言规则列表,并判断断言规则列表遍历是否完成,得到判断结果;
对应内容获取单元,用于若判断结果为否,则根据内容提取符提取http接口的对应内容;
匹配内容获取单元,用于解析断言规则,并通过接口内容,得到匹配内容;
接口响应结果单元,用于将对应内容和匹配内容进行匹配符号对应的计算判断,得到接口响应结果;
接口测试结果单元,用于判断接口响应结果是否符合断言预期结果,得到接口测试结果。
进一步的,接口响应结果单元包括:
匹配计算结果子单元,用于通过正则匹配的方式,对对应内容和匹配内容进行匹配计算,得到匹配计算结果;
结果响应结果子单元,用于若匹配计算结果为匹配结果的数量大于零,则通过内容提取符提取http接口进行返回,得到接口响应结果。
进一步的,对应内容获取单元包括:
符号获取子单元,用于若判断结果为否,则获取内容提取符和匹配符号;
对应内容提取子单元,用于通过内容提取符提取http接口的对应内容,对应内容包括状态码、接口响应体、接口响应头。
进一步的,在测试数据获取模块71之前,该基于HTTP的接口测试装置还包括:
应用程序数据获取模块,用于获取应用程序的数据包和应用协议类型;
预设数据格式模块,用于对数据包进行解析得到应用程序的接口数据,根据应用协议类型将接口数据转换为预设数据格式;
测试用例生成模块,用于根据预设数据格式的接口数据生成测试用例。
进一步的,测试用例生成模块包括:
接口选择指令单元,用于接收接口选择指令;
接口数据查找单元,用于查找与接口选择指令中的接口标识相对应的预设数据格式接口数据;
测试组件生成单元,用于获取预设数据格式接口数据中的接口请求参数,根据接口请求参数生成测试组件,并将生成的测试组件进行展示;
测试组件组装单元,用于接收测试组件选择指令,将测试组件选择指令中的测试组件进行组装,生成测试用例。
进一步的,在断言结果获取模块74之前,该基于HTTP的接口测试装置还包括:
标记信息模块,用于获取接口的标记信息和测试用例的标记信息。
需要强调的是,为进一步保证上述测试数据的私密和安全性,上述测试数据还可以存储于一区块链的节点中。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图7,图7为本实施例计算机设备基本结构框图。
计算机设备8包括通过系统总线相互通信连接存储器81、处理器82、网络接口83。需要指出的是,图中仅示出了具有三种组件存储器81、处理器82、网络接口83的计算机设备8,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器 (Digital Signal Processor,DSP)、嵌入式设备等。
计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
存储器81至少包括一种类型的可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器81可以是计算机设备8的内部存储单元,例如该计算机设备8的硬盘或内存。在另一些实施例中,存储器81也可以是计算机设备8的外部存储设备,例如该计算机设备8上配备的插接式硬盘,智能存储卡(SmartMedia Card, SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash Card)等。当然,存储器81还可以既包括计算机设备8的内部存储单元也包括其外部存储设备。本实施例中,存储器81通常用于存储安装于计算机设备8的操作系统和各类应用软件,例如基于HTTP的接口测试方法的程序代码等。此外,存储器81还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器82在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器82通常用于控制计算机设备8的总体操作。本实施例中,处理器82用于运行存储器81中存储的程序代码或者处理数据,例如运行一种基于HTTP的接口测试方法的程序代码。
网络接口83可包括无线网络接口或有线网络接口,该网络接口83通常用于在计算机设备8与其他电子设备之间建立通信连接。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,计算机可读存储介质存储有服务器维护程序,服务器维护程序可被至少一个处理器执行,以使至少一个处理器执行如上述的一种基于HTTP的接口测试方法的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例的方法。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。
Claims (10)
1.一种基于HTTP的接口测试方法,其特征在于,包括:
接收并读取测试用例的测试数据;
通过一致性的解析方式,对所述测试数据进行解析;
匹配所述测试数据与接口对应的请求参数,发起http接口请求,其中,获取测试数据和接口对应的请求参数的标记信息,当测试数据的标记信息与请求参数的标记信息匹配时,发起所述http接口请求;
接收并解析http接口请求的返回请求响应,并从所述返回请求响应中获取接口响应断言和断言预期结果;
通过解析所述接口响应断言,得到接口响应结果,并将所述接口响应结果与所述断言预期结果进行匹配计算,得到标记接口测试结果;
根据所述标记接口测试结果,生成测试结果。
2.根据权利要求1所述的基于HTTP的接口测试方法,其特征在于,所述通过解析所述接口响应断言,得到接口响应结果,并将所述接口响应结果与所述断言预期结果进行匹配计算,得到标记接口测试结果包括:
获取并解析接口预期结果配置数据,得到断言规则列表,并判断断言规则列表遍历是否完成,得到判断结果;
若所述判断结果为否,则根据内容提取符提取http接口的对应内容;
解析断言规则,并通过接口内容,得到匹配内容;
将所述对应内容和所述匹配内容进行匹配符号对应的计算判断,得到所述接口响应结果;
判断所述接口响应结果是否符合所述断言预期结果,得到所述标记接口测试结果。
3.根据权利要求2所述的基于HTTP的接口测试方法,其特征在于,所述将所述对应内容和所述匹配内容进行匹配符号对应的计算判断,得到所述接口响应结果包括:
通过正则匹配的方式,将所述对应内容和所述匹配内容进行匹配计算,得到匹配计算结果;
若所述匹配计算结果为匹配结果的数量大于零,则通过所述内容提取符提取所述http接口进行返回,得到所述接口响应结果。
4.根据权利要求2所述的基于HTTP的接口测试方法,其特征在于,所述若所述判断结果为否,则根据内容提取符提取http接口的对应内容包括:
若所述判断结果为否,则获取所述内容提取符和匹配符号;
通过所述内容提取符提取http接口的对应内容,所述对应内容包括状态码、接口响应体、接口响应头。
5.根据权利要求1所述的基于HTTP的接口测试方法,其特征在于,在所述接收并读取测试用例的测试数据之前,所述方法还包括:
获取应用程序的数据包和应用协议类型;
对所述数据包进行解析得到所述应用程序的接口数据,根据所述应用协议类型将所述接口数据转换为预设数据格式;
根据所述预设数据格式的接口数据生成测试用例。
6.根据权利要求5所述的基于HTTP的接口测试方法,其特征在于,所述根据所述预设数据格式的接口数据生成测试用例包括:
接收接口选择指令;
查找与所述接口选择指令中的接口标识相对应的预设数据格式接口数据;
获取所述预设数据格式接口数据中的接口请求参数,根据所述接口请求参数生成测试组件,并将生成的所述测试组件进行展示;
接收测试组件选择指令,将所述测试组件选择指令中的测试组件进行组装,生成测试用例。
7.根据权利要求1至6任一项所述的基于HTTP的接口测试方法,其特征在于,在所述匹配所述测试数据与接口对应的请求参数,发起http接口请求之前,所述方法还包括:
获取接口的标记信息和测试用例的标记信息。
8.一种基于HTTP的接口测试装置,其特征在于,包括:
测试数据获取模块,用于接收并读取测试用例的测试数据;
测试数据解析模块,用于通过一致性的解析方式,对所述测试数据进行解析;
接口请求发起模块,用于匹配所述测试数据与接口对应的请求参数,发起http接口请求,其中,获取测试数据和接口对应的请求参数的标记信息,当测试数据的标记信息与请求参数的标记信息匹配时,发起所述http接口请求;
断言结果获取模块,用于接收并解析http接口请求的返回请求响应,并从所述返回请求响应中获取接口响应断言和断言预期结果;
接口测试结果模块,用于通过解析所述接口响应断言,得到接口响应结果,并将所述接口响应结果与所述断言预期结果进行匹配计算,得到标记接口测试结果;
测试结果生成模块,用于根据所述标记接口测试结果,生成测试结果。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述的基于HTTP的接口测试方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的基于HTTP的接口测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010937685.8A CN111813701B (zh) | 2020-09-09 | 2020-09-09 | 基于http的接口测试方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010937685.8A CN111813701B (zh) | 2020-09-09 | 2020-09-09 | 基于http的接口测试方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111813701A CN111813701A (zh) | 2020-10-23 |
CN111813701B true CN111813701B (zh) | 2020-12-25 |
Family
ID=72860159
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010937685.8A Active CN111813701B (zh) | 2020-09-09 | 2020-09-09 | 基于http的接口测试方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111813701B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112367220B (zh) * | 2020-10-27 | 2022-11-29 | 深圳市优必选科技股份有限公司 | 一种接口测试方法、装置、存储介质及电子设备 |
CN112306785A (zh) * | 2020-10-30 | 2021-02-02 | 南方电网科学研究院有限责任公司 | 一种微服务应用接口测试方法、装置、系统、设备和介质 |
CN112565031B (zh) * | 2020-11-30 | 2023-05-05 | 福州汇思博信息技术有限公司 | 一种ppp连接的参数配置方法与终端 |
CN113821443B (zh) * | 2021-09-30 | 2023-06-16 | 腾讯科技(深圳)有限公司 | 应用程序的功能检测方法、装置、设备及存储介质 |
CN115102759B (zh) * | 2022-06-21 | 2023-09-12 | 南京质子链科技有限公司 | 一种基于区块链的接口回溯系统 |
CN117453577B (zh) * | 2023-12-25 | 2024-03-22 | 湖南兴盛优选网络科技有限公司 | 基于流量录制生成接口自动化用例的方法、装置和计算机设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107908541A (zh) * | 2017-07-26 | 2018-04-13 | 平安壹钱包电子商务有限公司 | 接口测试方法、装置、计算机设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9058429B2 (en) * | 2009-11-06 | 2015-06-16 | Toby Biddle | Usability testing tool |
CN107908545A (zh) * | 2017-09-26 | 2018-04-13 | 深圳市牛鼎丰科技有限公司 | 接口测试方法、装置、计算机设备及存储介质 |
-
2020
- 2020-09-09 CN CN202010937685.8A patent/CN111813701B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107908541A (zh) * | 2017-07-26 | 2018-04-13 | 平安壹钱包电子商务有限公司 | 接口测试方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111813701A (zh) | 2020-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111813701B (zh) | 基于http的接口测试方法、装置、计算机设备及存储介质 | |
EP3534263A1 (en) | Systems and methods for web analytics testing and web development | |
CN109787974B (zh) | 报文数据流生成方法、装置、计算机设备和存储介质 | |
CN112597020A (zh) | 接口测试方法、装置、计算机设备及存储介质 | |
CN111694749A (zh) | 接口自动测试方法、装置、计算机设备及可读存储介质 | |
CN112631924A (zh) | 自动化测试方法、装置、计算机设备及存储介质 | |
KR102226463B1 (ko) | 프로세스자동화프로그램과 연동되는 ui/ux솔루션제공서버, 이를 포함하는 프로세스자동화시스템, 이를 이용한 프로세스자동화방법, 및 이를 실행하기 위한 컴퓨터 프로그램 | |
CN112181835A (zh) | 自动化测试方法、装置、计算机设备及存储介质 | |
CN112817935A (zh) | 基于字段类型的数据处理方法、装置、设备及存储介质 | |
CN112328486A (zh) | 接口自动化测试方法、装置、计算机设备及存储介质 | |
CN115794437A (zh) | 微服务的调用方法、装置、计算机设备及存储介质 | |
CN114185808A (zh) | 自动化测试方法、装置、电子设备及计算机可读存储介质 | |
CN113434400A (zh) | 测试用例的执行方法、装置、计算机设备及存储介质 | |
CN112286815A (zh) | 一种接口测试脚本的生成方法及其相关设备 | |
CN113938408A (zh) | 一种数据流量测试方法、装置、服务器及存储介质 | |
CN113709181A (zh) | 基于浏览器插件的网站登录方法、装置、设备及存储介质 | |
CN110287089B (zh) | 一种基于中间格式及smt技术的微内核ipc验证方法 | |
CN110727576A (zh) | 一种web页面测试方法、装置、设备及存储介质 | |
CN114968822A (zh) | 接口测试方法、装置、计算机设备及存储介质 | |
CN115470152A (zh) | 测试代码生成方法、测试代码生成装置以及存储介质 | |
CN115904317A (zh) | 一种前后端接口统一调用方法、装置、设备及存储介质 | |
CN112799956B (zh) | 资产识别能力测试方法、装置及系统装置 | |
CN114745681A (zh) | 富媒体信息展示方法、设备及计算机存储介质 | |
CN114637672A (zh) | 自动化数据测试方法、装置、计算机设备及存储介质 | |
CN115695504B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |