CN114610635A - 接口测试用例生成方法、装置、计算机设备及存储介质 - Google Patents
接口测试用例生成方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN114610635A CN114610635A CN202210284297.3A CN202210284297A CN114610635A CN 114610635 A CN114610635 A CN 114610635A CN 202210284297 A CN202210284297 A CN 202210284297A CN 114610635 A CN114610635 A CN 114610635A
- Authority
- CN
- China
- Prior art keywords
- interface
- information
- test
- preset
- 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
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是本发明一实施例中计算机设备的一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的接口测试用例生成方法,该接口测试用例生成方法可应用如图1所示的应用环境中。具体地,该接口测试用例生成方法应用在接口测试用例生成系统中,该接口测试用例生成系统包括如图1所示的客户端和服务器,客户端与服务器通过网络进行通信,用于解决现有技术中生成基础测试用例效率较低以及准确性较低的问题。其中,客户端又称为用户端,是指与服务器相对应,为客户提供本地服务的程序。客户端可安装在但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备上。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。其中,服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
在一实施例中,如图2所示,提供一种接口测试用例生成方法,以该方法应用在图1中的服务器为例进行说明,包括如下步骤:
S10:自预设日志接口中获取接口请求信息,并对所述接口请求信息进行信息解析,得到接口基本信息以及接口参数信息。
可以理解地,本实施例中所指的预设日志接口为yapi接口,由于该预设日志接口中包括多个层级(如分组、项目、接口等层级),因此可以通过遍历该预设日志接口的所有文档信息的方法获取到接口请求信息。其中,接口请求信息中包括接口基本信息以及接口参数信息。接口基本信息用于表征该预设日志接口的基本信息,例如预设日志接口的接口名称、项目名称、模块名称、接口路径、请求方式等。接口参数信息中包含了该预设日志接口中的所有访问参数。
具体地,从预设日志接口中获取与该预设日志接口对应的接口文档,由于预设日志接口中包括多个层级(如分组、项目、接口等层级),因此需要对该接口文档进行遍历,从而获取到预设日志接口的接口层级的接口请求信息。在获取到接口请求信息之后,对该接口请求信息进行信息解析,如对接口请求信息进行实体识别亦或者实体抽取等,从而区分接口请求信息中的接口基本信息(如接口名称、接口路径、请求方式等),以及接口参数信息。
S20:根据所述接口基本信息生成测试项目信息并确定所述接口请求信息对应的接口请求方式。
可以理解地,在上述说明中指出接口基本信息可以包括如预设日志接口的接口名称、接口路径、请求方式等,因此可以根据接口基本信息中的项目名称信息、模块名称信息,采用预先设定的模板生成对应的项目信息以及模块信息,进一步地,根据接口基本信息中的接口名称、接口路径以及请求方式等信息生成对应的接口信息,进而根据项目信息、模块信息以及接口信息整合得到测试项目信息。
进一步地,由于接口基本信息中包括请求方式,因此可以对接口基本信息进行实体识别,从而确定接口基本信息中所包含的请求方式。例如,接口请求方式可以为post请求方式、get请求方式等。
S30:获取与所述接口请求方式对应的用例生成方法,并根据所述用例生成方法以及所述接口参数信息生成接口测试数据。
可以理解地,针对于不同的接口请求方式其需要解析的数据可能不同,进而导致最终生成基础测试用例的方法不同,也即不同的接口请求方式存在相应的用例生成方法。
进一步地,在根据所述接口基本信息生成测试项目信息并确定所述接口请求信息对应的接口请求方式之后,即可根据相应的用例生成方法针对接口参数信息进行接口测试数据的组装,例如将接口参数信息中的键和值一一对应组装,从而得到相应的接口测试数据;进一步地,由于每一个不同的预设日志接口均存在对应的接口规范,该接口规范定义了该预设日志接口的返回码以及返回信息,因此在确定与预设日志接口相对应的接口测试数据之后,即可根据接口测试数据的类型调整接口规范中所定义的返回码以及返回信息,从而得到测试断言信息。可以理解地,测试断言信息用于对基础测试用例被执行之后的结果进行评判,以确定该预设日志接口对应的测试内容是否符合预期标准。
S40:获取测试用例模板,并根据所述测试项目信息、所述接口测试数据以及所述测试断言信息,对所述测试用例模板进行信息填充,生成基础测试用例。
具体地,在确定与接口请求信息相对应的测试项目信息、接口测试数据和测试断言信息之后,即可通过调用接口自动化平台(接口自动化平台中存储若干基础用例模板)的方式,从该接口自动化平台中获取相对应的基础用例模板,并根据测试项目信息、接口测试数据和测试断言信息,对基础用例模板进行信息填充,从而得到完整的基础测试用例。
进一步地,在通过用例生成方法根据接口参数信息生成接口测试数据的过程中,可能批量生成不同类型的接口测试数据,以及与测试数据相对应的测试断言信息,进而预设日志接口会存在多个对应的基础测试用例。因此,在根据测试项目信息、接口测试数据以及测试断言信息生成基础测试用例之后,将该基础测试用例加入至该预设日志接口对应的测试用例集中,该测试用例集用于存储与该预设日志接口所对应的所有基础测试用例,从而可以通过多线程调用的方式批量执行测试用例集中的所有基础测试用例,最终通过终端界面的方式展示所有基础测试用例对应的接口测试结果。其中,接口测试结果中包括一次基础测试用例执行的总数,断言成功的基础测试用例的总数,以及断言失败的基础测试用例的总数。进而测试人员可以根据该接口测试结果对预设日志接口进行调整,从而逐渐提高断言成功的基础测试用例的总数,从而提高了接口测试的效率以及准确率。
在本实施例中,通过预设日志接口的接口文档直接获取到相应的接口请求信息,并且可以根据接口请求信息所对应的接口请求方式生成不同的接口测试数据,从而满足不同的测试需求,提高了接口测试的全面性以及准确性。进一步地,还可以根据预设日志接口的预设接口规范定义不同接口测试数据的测试断言信息,为后续执行基础测试用例时提供准确的校验数据,从而使得测试人员可以直接获取接口测试结果,以根据接口测试结果对预设日志接口进行调整,提高了接口测试的效率以及准确率。
在一实施例中,步骤S30中,也即所述根据所述用例生成方法以及所述接口参数信息生成接口测试数据,包括:
在所述接口请求信息对应的接口请求方式为预设请求方式时,确定所述接口参数信息的接口参数格式是否为预设参数格式。
可以理解地,本实施例中的预设请求方式指的是post请求方式。在接口请求方式为预设请求方式时,该预设请求方式所对应的接口参数信息的接口参数格式主要分为json格式以及form格式。本实施例中所指示的预设参数格式是指json格式。
在所述接口参数信息的接口参数格式为预设参数格式时,自所述接口参数信息中获取请求体参数信息。
具体地,在根据接口基本信息确定接口请求信息对应的接口请求方式为预设参数格式时,确定接口参数信息的接口参数格式是否为预设参数格式,并在接口参数信息的接口参数格式是预设参数格式时,从接口参数信息中获取请求体参数信息,例如可以通过接口参数信息中解析出请求体参数信息。
可以理解地,针对于一个预设日志接口的接口请求信息中包括请求行、请求头以及请求体。请求行中包括如请求方法、请求URL等信息;请求头中包括如属性名和属性值等信息,可以根据该属性名和属性值获取对应的客户端的信息;请求体中包括多个接口参数信息,当接口参数格式是预设参数格式时,该接口参数信息中的数据层级较为复杂,嵌套着多层json和array的请求体参数信息,因此需要单独获取接口参数信息中的请求体参数信息(上述说明中指出本实施例中的预设日志接口为yapi接口,从而可以通过预设日志接口的维护入参的形式获取到接口参数信息中的请求体参数信息)。
对所述请求体参数信息进行解析,以获取所述请求体参数信息中所包含的所有第一请求键参数。
具体地,在自接口参数信息中获取请求体参数信息之后,对请求体参数信息进行解析,例如可以通过如ObjectMapper对象转化方法,也即通过行遍历的方法逐行读取请求体参数信息,并从每一行中请求体参数信息中查询是否包括键值信息,以在查询到包括键值信息时,从该键值信息中提取出对应的请求键参数作为第一请求键参数。
根据所述第一请求键参数以及所述接口参数信息生成所述接口测试数据。
具体地,在对所述请求体参数信息进行解析,以获取所述请求体参数信息中所包含的所有第一请求键参数之后,即可根据第一请求键参数以及接口参数信息采用不同的接口测试数据生成方法,生成接口测试数据。例如当接口测试类型为必填类以及非必填类时,则可以对第一请求键参数以及接口参数信息进行遍历,从而生成节点为空测试数据和值为空不同类型的测试数据;示例性地,假设一个接口参数信息为{"a":"123","b":"456"},假设a节点为空,该接口参数信息转换为{"b":"456"};假设a节点值为空,该接口参数信息转换为{"a":"","b":"456"}。
在一实施例中,步骤S30中,也即所述根据所述用例生成方法以及所述接口参数信息生成接口测试数据,还包括:
在所述接口请求信息对应的接口请求方式不为预设请求方式,和/或所述接口参数信息的接口参数格式不为预设参数格式,对所述接口参数信息进行解析,以获取所述接口参数信息中所有第二请求键参数以及所有请求值参数。
可以理解地,在接口请求信息对应的接口请求方式不是预设请求方式时,例如为get请求方式,或者接口请求方式是预设请求方式,但是接口参数信息的接口参数格式不是预设参数格式时,例如接口请求方式为post请求方式,但接口参数格式为form参数格式时,此时该接口参数信息中不存在多个复杂的层级关系,进而可以直接对接口参数信息进行解析,从而获取到接口参数信息中所有的第二请求键参数以及所有请求值参数。
对所有所述第二请求键参数以及所有所述请求值参数进行参数组装,得到请求组装参数。
具体地,在对所述接口参数信息进行解析,以获取所述接口参数信息中所有第二请求键参数以及所有请求值参数之后,即可对所有第二请求键参数以及所有请求值参数进行参数组装,也即使得第二请求键参数和请求值参数之间构成key-value的对应关系,从而形成多个请求组装参数。
根据所述请求组装参数以及所述接口参数信息生成所述接口测试数据。
具体地,在对所有所述第二请求键参数以及所有所述请求值参数进行参数组装,得到请求组装参数之后,即可根据请求组装参数以及接口参数信息采用不同的接口测试数据生成方法,生成接口测试数据。
在本实施例中,针对不同的接口请求方式以及不同的接口参数格式,采用相对应的测试用例生成方法,从而实现针对不同的参数采用不同的参数解析方式以及参数组装方法,提高了接口测试数据生成的准确性以及全面性,进而提高了基础测试用例生成的准确性。
在一实施例中,步骤S30中,也即所述根据所述用例生成方法以及所述接口参数信息生成接口测试数据,还包括:
获取测试用例类型;所述测试用例类型包括填写测试用例、数据类型测试用例以及字段长度测试用例。
可以理解地,填写测试用例中包括必填测试用例和非必填测试用例;数据类型测试用例中包括目标数据类型,以及除目标数据类型之外的其它数据类型,也即除目标数据类型之外的所有数据类型归为一类;字段长度测试用例即为通过参数信息中字段长度进行拓展分类。
通过所述用例生成方法对所述接口参数信息进行解析,得到所述接口参数信息中的所有接口参数组。
可以理解地,在上述说明中指出不同的接口请求方式需要获取的参数信息不同(例如在接口请求方式为预设请求方式时需要获取请求体参数信息,不是预设请求方式时不需要获取请求体参数信息,而是直接解析出接口参数信息中的第二请求键参数以及请求值参数),因此针对不同的接口请求方式所对应的接口参数信息,可以采用与该接口请求方式对应的用例生成方法对接口参数信息进行解析,从而遍历以及重新组装后得到接口参数组。示例性地,{"a":"123","b":"456"}即可以为一个接口参数组。
在所述测试用例类型为填写测试用例时,对所述接口参数组进行空值组装,得到第一测试数据。
可以理解地,在上述说明中指出填写测试用例中包括必填测试用例和非必填测试用例,例如非必填测试用例时可以指定接口参数组中某个参数值为空,亦或者某个参数为空,从而形成参数为空或者参数值为空的不同的测试用例。示例性地,假设一个接口参数信息为{"a":"123","b":"456"},假设a节点为空,该接口参数信息转换为{"b":"456"};假设a节点值为空,该接口参数信息转换为{"a":"","b":"456"}。
在所述测试用例类型为数据类型测试用例时,获取目标接口数据类型,并根据所述目标接口数据类型对所述接口参数组进行参数分类处理,得到第二测试数据。
示例性地,数据类型可以包括如string、integer、boolean等,进而可以预先指定其中一种数据类型作为目标接口数据类型,则除该目标数据类型之外的其它数据类型均为非目标接口数据类型,进而可以根据该目标接口数据类型以及非目标接口数据类型对接口参数组进行分类处理,从而得到两个不同种类的测试数据。
在所述测试用例类型为字段长度测试用例时,获取所述接口参数组的参数字段长度,并采用边界拓展方法对所述参数字段长度进行字段长度拓展,得到第三测试数据。
可以理解地,参数字段长度即为接口参数组中所包含的参数的字段长度。边界拓展方法即为增加参数的字段长度或者减少参数的字段长度。示例性地,假设一个接口参数组中的最大参数字段长度为10,最小参数字段长度为5,则采用边界拓展方法(T+1,T,T-1,T为最大参数字段长度,或者最小参数字段长度)可以将最大参数字段长度拓展为9,10,11,最小参数字段长度为4,5,6,从而得到第三测试数据。
将所述第一测试数据、第二测试数据以及第三测试数据,记录为所述接口测试数据。
具体地,针对不同测试类型,生成对应的第一测试数据、第二测试数据以及第三测试数据之后,即可将所有第一测试数据、第二测试数据以及第三测试数据,记录为所述接口测试数据。
在一实施例中,步骤S40中,也即所述根据所述预设接口规范确定与所述接口测试数据对应的测试断言信息,包括:
对所述预设接口规范进行解析,以获取所述预设接口规范中的接口返回码以及接口返回信息。
可以理解地,针对于不同的预设日志接口,其均存在一个相对应的预设接口规范,该预设接口规范可以通过如测试人员等人为设定的。预设接口规范中包括接口返回码以及接口返回信息,接口返回码和接口返回信息均可以通过测试人员自定义设定。其中,接口返回码为表征接口测试状态的序列码,一个接口返回码与一个接口测试状态一一对应关联,示例性地,200作为返回码时可以表示接口测试成功。接口返回信息用于提示接口测试发生错误。
获取预设类型信息数据库;所述预设类型信息数据库中包括至少一个预设测试类型;一个所述预设测试类型对应一个预设规范信息组;一个所述预设规范信息组中包括一个预设规范码以及一个预设规范信息。
可以理解地,在针对不同的数据类型时,其对应的测试断言对应的预期值是不一样的,因此在设定基础测试用例时需要针对每一项不同的接口测试数据的数据类型设定相对应的预设规范码以及预设规范信息,该预设规范码或者预设规范信息可以提前从历史接口测试中进行选取。预设测试类型可以包括如必填项和非必填项测试、字段数据类型测试或者字段长度测试等。一个预设测试类型对应于一个预设规范信息组,且一个预设规范信息组中包括一个预设规范码以及一个预设规范信息。其中,预设规范码与上述接口返回码的作用相同,用于表征接口测试状态的序列码;预设规范信息与上述的预设规范信息作用相同,也即用于提示接口测试发生错误。
确定与所述接口测试数据对应的接口测试类型,并将所述预设类型信息数据库中与所述接口测试类型相匹配的预设测试类型记录为目标测试类型。
可以理解地,在上述说明中指出根据不同的参数信息可以设置不同的测试类型,因此可以直接获取到与每个接口测试数据对应的接口测试类型,例如上述说明中指出的必填项和非必填项测试、字段数据类型测试或者字段长度测试等,进而将该接口测试类型与预设测试类型进行匹配,以从预设类型信息数据库中查询到与接口测试类型匹配的预设测试类型,并将该与接口测试类型匹配的预设测试类型记录为目标测试类型。
根据所述目标测试类型对应的预设规范码以及预设规范信息,对所述接口返回码以及接口返回信息进行调整,得到所述测试断言信息。
具体地,在确定与所述接口测试数据对应的接口测试类型,并将所述预设类型信息数据库中与所述接口测试类型相匹配的预设测试类型记录为目标测试类型之后,即可根据目标测试类型对应的预设规范码以及预设规范信息对接口返回码和接口返回信息进行调整,如预设规范码可以为一个范围(例如预设规范码表征成功时,可以选取200-299中任意一个值),从而使得接口返回码符合预设规范码的限定,以及接口返回信息符合预设规范信息的限定,得到测试断言信息。
在一实施例中,步骤S50之后,也即所述根据所述测试项目信息、所述接口测试数据以及所述测试断言信息生成基础测试用例,包括:
实时检测所述预设日志接口,以确定所述预设日志接口是否发生变更。
可以理解地,随着时间的推移预设日志接口可能会发生变更,在预设日志接口发生变更时,需要及时更新与该预设日志接口对应的基础测试用例,从而使得对该预设日志接口的接口测试的准确率较高。
在确定所述预设日志接口发生变更时,获取所述预设日志接口的更新请求信息,并对所述更新请求信息进行信息解析,得到更新基本信息以及更新参数信息。
可以理解地,更新请求信息中包括更新基本信息以及更新参数信息。更新基本信息用于表征该预设日志接口的基本信息,例如预设日志接口的接口名称、项目名称、模块名称、接口路径、请求方式等。更新参数信息中包含了该预设日志接口中的所有访问参数。
根据所述更新基本信息生成更新项目信息并确定所述更新请求信息对应的更新请求方式。
可以理解地,在上述说明中指出更新基本信息可以包括如预设日志接口的接口名称、接口路径、请求方式等,因此可以根据更新基本信息中的项目名称信息、模块名称信息,采用预先设定的模板生成对应的项目信息以及模块信息,进一步地,根据更新基本信息中的接口名称、接口路径以及请求方式等信息生成对应的接口信息,进而根据项目信息、模块信息以及接口信息整合得到测试项目信息。
获取与所述更新请求方式对应的用例生成方法,并根据所述用例生成方法以及所述更新参数信息生成更新测试数据。
根据所述预设接口规范确定与所述更新测试数据对应的更新断言信息。
根据所述更新项目信息、所述更新测试数据以及所述更新断言信息,对所述测试用例模板进行信息填充,生成更新测试用例。
具体地,在实时检测所述预设日志接口,确定所述预设日志接口中的接口请求信息是否存在更新之后,若确定预设日志接口发生变更,则从预设日志接口中获取更新后的日志文档,从而对日志文档进行解析,获取到更新请求信息,该更新请求信息与上述接口请求信息不同,进而根据所述更新请求信息中的基本信息生成更新项目信息并确定所述更新请求信息对应的接口请求方式;获取与所述接口请求方式对应的用例生成方法,并通过所述用例生成方法根据所述更新请求信息中的参数信息生成更新测试数据;获取与所述预设日志接口对应的预设接口规范,并根据所述预设接口规范确定与所述更新测试数据对应的更新断言信息;根据所述更新项目信息、所述更新测试数据以及所述更新断言信息生成更新测试用例。如此,即可通过实时检测预设日志接口是否发生变更的方法来确定基础测试用例是否需要进行更新替换,从而对基础测试用例进行快速更新,提高了基础测试用例生成的准确性。进一步地,具体生成更新测试用例的方法可以参照上述生成基础测试用例的步骤的示例,在此不再赘述。
在一实施例中,所述实时检测所述预设日志接口,以确定所述预设日志接口是否发生变更,包括:
获取监控执行脚本,并读取所述监控执行脚本,以生成与所述监控执行脚本对应的数据监控程序。
可以理解地,监控执行脚本即为服务器可以识别的具有相应监控规则的可执行程序。数据监控程序即为监控执行脚本中所包含的可执行程序。
具体地,在上述步骤S10中即为获取到接口请求信息,进而可以根据设定与该接口请求信息相对应的配置规则(例如字段检测、字段长度检测等),从而根据该配置规则对接口请求信息进行监控配置,得到相应的配置信息,进而根据该配置信息生成监控执行脚本,如此该监控执行脚本即融合了接口请求信息以及与该接口请求信息相对应的配置规则。进一步地,在生成监控执行脚本之后,即可对该监控执行脚本进行读取,并生成一条与该监控执行脚本对应的元数据,以读取该元数据,自动生成对应的数据监控程序。
执行所述数据监控程序,以对所述预设日志接口的日志文档进行数据监控,得到数据监控结果;所述数据监控结果关联数据监控时间。
具体地,在获取监控执行脚本,并读取所述监控执行脚本,以生成与所述监控执行脚本对应的数据监控程序之后,执行该数据监控程序,从而通过该数据监控程序对预设日志接口进行数据监控,如对预设日志接口输出的日志文档进行数据监控,若数据监控程序检测到预设日志接口输出的日志文档存在更新,例如字段内容不同,或者字段长度不同等,即可确认预设日志接口发生变更,从而得到数据监控结果。其中,数据监控结果包括表征预设日志接口发生变更的结果,或者表征预设日志接口未发生变更的结果。进一步地,数据监控时间关联数据监控时间,该数据监控时间即为对预设日志接口进行数据监控的时间。
在所述数据监控结果表征所述预设日志接口的日志文档存在更新时,获取与所述预设日志接口对应的历史监控时间。
可以理解地,历史监控时间即为预设日志接口上一次发生变更的时间,该历史监控时间可以存储在数据库中,进而可以直接从该数据库中直接获取该历史监控时间,若在该历史监控时间之后预设日志接口发生变更,则该历史监控时间会进行更新;若在该历史监控时间之后预设日志接口未发生变更,则该历史监控时间不会变换。
将所述数据监控时间与所述历史监控时间进行比较,并在所述数据监控时间大于所述历史监控时间时,确定所述预设日志接口发生变更。
具体地,在数据监控结果表征预设日志接口发生变更时,即可获取与预设日志接口对应的历史监控时间,并将该历史监控时间与数据监控时间进行比较,若数据监控时间大于历史监控时间,表征数据监控时间晚于历史监控时间,也即表征预设日志接口发生变更;若数据监控时间小于或等于历史监控时间,表征预设日志接口未发生变更,或者时间记录发生错误,重新对预设日志接口进行监控。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种接口测试用例生成装置,该接口测试用例生成装置与上述实施例中接口测试用例生成方法一一对应。如图3所示,该接口测试用例生成装置包括信息解析模块10、请求方式确定模块20、数据生成模块30、断言生成模块40和测试用例生成模块50。各功能模块详细说明如下:
信息解析模块10,用于自预设日志接口中获取接口请求信息,并对所述接口请求信息进行信息解析,得到接口基本信息以及接口参数信息;
请求方式确定模块20,用于根据所述接口基本信息生成测试项目信息并确定所述接口请求信息对应的接口请求方式;
数据生成模块30,用于获取与所述接口请求方式对应的用例生成方法,并根据所述用例生成方法以及所述接口参数信息生成接口测试数据;
断言生成模块40,用于获取与所述预设日志接口对应的预设接口规范,并根据所述预设接口规范确定与所述接口测试数据对应的测试断言信息;
测试用例生成模块50,用于获取测试用例模板,并根据所述测试项目信息、所述接口测试数据以及所述测试断言信息,对所述测试用例模板进行信息填充,生成基础测试用例。
优选地,数据生成模块30包括:
参数格式确定单元,用于在所述接口请求信息对应的接口请求方式为预设请求方式时,确定所述接口参数信息的接口参数格式是否为预设参数格式;
请求体参数获取单元,用于在所述接口参数信息的接口参数格式为预设参数格式时,自所述接口参数信息中获取请求体参数信息;
第一参数解析单元,用于对所述请求体参数信息进行解析,以获取所述请求体参数信息中所包含的所有第一请求键参数;
第一数据生成单元,用于根据所述第一请求键参数以及所述接口参数信息生成所述接口测试数据。
优选地,数据生成模块30还包括:
第二参数解析单元,用于在所述接口请求信息对应的接口请求方式不为预设请求方式,和/或所述接口参数信息的接口参数格式不为预设参数格式,对所述接口参数信息进行解析,以获取所述接口参数信息中所有第二请求键参数以及所有请求值参数;
参数组装单元,用于对所有所述第二请求键参数以及所有所述请求值参数进行参数组装,得到请求组装参数;
第二数据生成单元,用于根据所述请求组装参数以及所述接口参数信息生成所述接口测试数据。
优选地,断言生成模块40包括:
规范解析单元,用于对所述预设接口规范进行解析,以获取所述预设接口规范中的接口返回码以及接口返回信息;
信息获取单元,用于获取预设类型信息数据库;所述预设类型信息数据库中包括至少一个预设测试类型;一个所述预设测试类型对应一个预设规范信息组;一个所述预设规范信息组中包括一个预设规范码以及一个预设规范信息;
测试类型确定单元,用于确定与所述接口测试数据对应的接口测试类型,并将所述预设类型信息数据库中与所述接口测试类型相匹配的预设测试类型记录为目标测试类型;
信息调整单元,用于根据所述目标测试类型对应的预设规范码以及预设规范信息,对所述接口返回码以及接口返回信息进行调整,得到所述测试断言信息。
优选地,接口测试用例生成装置还包括:
更新检测模块,用于实时检测所述预设日志接口,以确定所述预设日志接口是否发生变更;
测试用例更新模块,用于在确定所述预设日志接口发生变更时,获取所述预设日志接口的更新请求信息,并对所述更新请求信息进行信息解析,得到更新基本信息以及更新参数信息;
更新请求方式确定模块,用于根据所述更新基本信息生成更新项目信息并确定所述更新请求信息对应的更新请求方式;
更新数据生成模块,用于获取与所述更新请求方式对应的用例生成方法,并根据所述用例生成方法以及所述更新参数信息生成更新测试数据;
更新断言生成模块,用于根据所述预设接口规范确定与所述更新测试数据对应的更新断言信息;
测试用例更新模块,用于根据所述更新项目信息、所述更新测试数据以及所述更新断言信息,对所述测试用例模板进行信息填充,生成更新测试用例。
优选地,更新检测模块50包括:
监控脚本获取单元,用于获取监控执行脚本,并读取所述监控执行脚本,以生成与所述监控执行脚本对应的数据监控程序;
数据监控单元,用于执行所述数据监控程序,以对所述预设日志接口的日志文档进行数据监控,得到数据监控结果;所述数据监控结果关联数据监控时间;
监控时间获取单元,用于在所述数据监控结果表征所述预设日志接口的日志文档存在更新时,获取与所述预设日志接口对应的历史监控时间;
监控时间比较单元,用于将所述数据监控时间与所述历史监控时间进行比较,并在所述数据监控时间大于所述历史监控时间时,确定所述预设日志接口发生变更。
关于接口测试用例生成装置的具体限定可以参见上文中对于接口测试用例生成方法的限定,在此不再赘述。上述接口测试用例生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储上述实施例中接口测试用例生成方法所使用到的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种接口测试用例生成方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中的接口测试用例生成方法。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中的接口测试用例生成方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种接口测试用例生成方法,其特征在于,包括:
自预设日志接口中获取接口请求信息,并对所述接口请求信息进行信息解析,得到接口基本信息以及接口参数信息;
根据所述接口基本信息生成测试项目信息并确定所述接口请求信息对应的接口请求方式;
获取与所述接口请求方式对应的用例生成方法,并根据所述用例生成方法以及所述接口参数信息生成接口测试数据;
获取与所述预设日志接口对应的预设接口规范,并根据所述预设接口规范确定与所述接口测试数据对应的测试断言信息;
获取测试用例模板,并根据所述测试项目信息、所述接口测试数据以及所述测试断言信息,对所述测试用例模板进行信息填充,生成基础测试用例。
2.如权利要求1所述的接口测试用例生成方法,其特征在于,所述根据所述用例生成方法以及所述接口参数信息生成接口测试数据,包括:
在所述接口请求信息对应的接口请求方式为预设请求方式时,确定所述接口参数信息的接口参数格式是否为预设参数格式;
在所述接口参数信息的接口参数格式为预设参数格式时,自所述接口参数信息中获取请求体参数信息;
对所述请求体参数信息进行解析,以获取所述请求体参数信息中所包含的所有第一请求键参数;
根据所述第一请求键参数以及所述接口参数信息生成所述接口测试数据。
3.如权利要求2所述的接口测试用例生成方法,其特征在于,所述根据所述用例生成方法以及所述接口参数信息生成接口测试数据,还包括:
在所述接口请求信息对应的接口请求方式不为预设请求方式,和/或所述接口参数信息的接口参数格式不为预设参数格式,对所述接口参数信息进行解析,以获取所述接口参数信息中所有第二请求键参数以及所有请求值参数;
对所有所述第二请求键参数以及所有所述请求值参数进行参数组装,得到请求组装参数;
根据所述请求组装参数以及所述接口参数信息生成所述接口测试数据。
4.如权利要求1所述的接口测试用例生成方法,其特征在于,所述根据所述用例生成方法以及所述接口参数信息生成接口测试数据,包括:
获取测试用例类型;所述测试用例类型包括填写测试用例、数据类型测试用例以及字段长度测试用例;
通过所述用例生成方法对所述接口参数信息进行解析,得到所述接口参数信息中的所有接口参数组;
在所述测试用例类型为填写测试用例时,对所述接口参数组进行空值组装,得到第一测试数据;
在所述测试用例类型为数据类型测试用例时,获取目标接口数据类型,并根据所述目标接口数据类型对所述接口参数组进行参数分类处理,得到第二测试数据;
在所述测试用例类型为字段长度测试用例时,获取所述接口参数组的参数字段长度,并采用边界拓展方法对所述参数字段长度进行字段长度拓展,得到第三测试数据;
将所述第一测试数据、第二测试数据以及第三测试数据,记录为所述接口测试数据。
5.如权利要求1所述的接口测试用例生成方法,其特征在于,所述根据所述预设接口规范确定与所述接口测试数据对应的测试断言信息,包括:
对所述预设接口规范进行解析,以获取所述预设接口规范中的接口返回码以及接口返回信息;
获取预设类型信息数据库;所述预设类型信息数据库中包括至少一个预设测试类型;一个所述预设测试类型对应一个预设规范信息组;一个所述预设规范信息组中包括一个预设规范码以及一个预设规范信息;
确定与所述接口测试数据对应的接口测试类型,并将所述预设类型信息数据库中与所述接口测试类型相匹配的预设测试类型记录为目标测试类型;
根据所述目标测试类型对应的预设规范码以及预设规范信息,对所述接口返回码以及接口返回信息进行调整,得到所述测试断言信息。
6.如权利要求1所述的接口测试用例生成方法,其特征在于,所述根据所述测试项目信息、所述接口测试数据以及所述测试断言信息生成基础测试用例之后,还包括:
实时检测所述预设日志接口,以确定所述预设日志接口是否发生变更;
在确定所述预设日志接口发生变更时,获取所述预设日志接口的更新请求信息,并对所述更新请求信息进行信息解析,得到更新基本信息以及更新参数信息;
根据所述更新基本信息生成更新项目信息并确定所述更新请求信息对应的更新请求方式;
获取与所述更新请求方式对应的用例生成方法,并根据所述用例生成方法以及所述更新参数信息生成更新测试数据;
根据所述预设接口规范确定与所述更新测试数据对应的更新断言信息;
根据所述更新项目信息、所述更新测试数据以及所述更新断言信息,对所述测试用例模板进行信息填充,生成更新测试用例。
7.如权利要求6所述的接口测试用例生成方法,其特征在于,所述实时检测所述预设日志接口,以确定所述预设日志接口是否发生变更,包括:
获取监控执行脚本,并读取所述监控执行脚本,以生成与所述监控执行脚本对应的数据监控程序;
执行所述数据监控程序,以对所述预设日志接口的日志文档进行数据监控,得到数据监控结果;所述数据监控结果关联数据监控时间;
在所述数据监控结果表征所述预设日志接口的日志文档存在更新时,获取与所述预设日志接口对应的历史监控时间;
将所述数据监控时间与所述历史监控时间进行比较,并在所述数据监控时间大于所述历史监控时间时,确定所述预设日志接口发生变更。
8.一种接口测试用例生成装置,其特征在于,包括:
信息解析模块,用于自预设日志接口中获取接口请求信息,并对所述接口请求信息进行信息解析,得到接口基本信息以及接口参数信息;
请求方式确定模块,用于根据所述接口基本信息生成测试项目信息并确定所述接口请求信息对应的接口请求方式;
数据生成模块,用于获取与所述接口请求方式对应的用例生成方法,并根据所述用例生成方法以及所述接口参数信息生成接口测试数据;
断言生成模块,用于获取与所述预设日志接口对应的预设接口规范,并根据所述预设接口规范确定与所述接口测试数据对应的测试断言信息;
测试用例生成模块,用于获取测试用例模板,并根据所述测试项目信息、所述接口测试数据以及所述测试断言信息,对所述测试用例模板进行信息填充,生成基础测试用例。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述接口测试用例生成方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述接口测试用例生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210284297.3A CN114610635A (zh) | 2022-03-22 | 2022-03-22 | 接口测试用例生成方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210284297.3A CN114610635A (zh) | 2022-03-22 | 2022-03-22 | 接口测试用例生成方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114610635A true CN114610635A (zh) | 2022-06-10 |
Family
ID=81865790
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210284297.3A Pending CN114610635A (zh) | 2022-03-22 | 2022-03-22 | 接口测试用例生成方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114610635A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115695267A (zh) * | 2022-10-28 | 2023-02-03 | 北京鼎泰智源科技有限公司 | 一种面向数据接口的测试和验证方法及装置 |
CN116756046A (zh) * | 2023-08-16 | 2023-09-15 | 湖南长银五八消费金融股份有限公司 | 一种接口自动化测试方法、装置、设备及存储介质 |
CN117009249A (zh) * | 2023-09-15 | 2023-11-07 | 天津赛象科技股份有限公司 | 自动生成接口用例和代码的测试方法、系统及介质 |
-
2022
- 2022-03-22 CN CN202210284297.3A patent/CN114610635A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115695267A (zh) * | 2022-10-28 | 2023-02-03 | 北京鼎泰智源科技有限公司 | 一种面向数据接口的测试和验证方法及装置 |
CN115695267B (zh) * | 2022-10-28 | 2024-05-03 | 北京鼎泰智源科技有限公司 | 一种面向数据接口的测试和验证方法及装置 |
CN116756046A (zh) * | 2023-08-16 | 2023-09-15 | 湖南长银五八消费金融股份有限公司 | 一种接口自动化测试方法、装置、设备及存储介质 |
CN116756046B (zh) * | 2023-08-16 | 2023-11-03 | 湖南长银五八消费金融股份有限公司 | 一种接口自动化测试方法、装置、设备及存储介质 |
CN117009249A (zh) * | 2023-09-15 | 2023-11-07 | 天津赛象科技股份有限公司 | 自动生成接口用例和代码的测试方法、系统及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110399293B (zh) | 系统测试方法、装置、计算机设备和存储介质 | |
US10769228B2 (en) | Systems and methods for web analytics testing and web development | |
CN109446068B (zh) | 接口测试方法、装置、计算机设备和存储介质 | |
CN110209652B (zh) | 数据表迁移方法、装置、计算机设备和存储介质 | |
CN114610635A (zh) | 接口测试用例生成方法、装置、计算机设备及存储介质 | |
CN110941546A (zh) | Web页面用例的自动化测试方法、装置、设备及存储介质 | |
CN111563051B (zh) | 基于爬虫的数据核验方法、装置、计算机设备及存储介质 | |
CN108628748B (zh) | 自动化测试管理方法和自动化测试管理系统 | |
CN111090788B (zh) | json文件的比对方法、装置、存储介质及计算机设备 | |
CN110990362A (zh) | 日志查询处理方法、装置、计算机设备和存储介质 | |
CN111026647B (zh) | 代码覆盖率的获取方法、装置、计算机设备和存储介质 | |
WO2020232883A1 (zh) | 脚本缺陷扫描方法、装置、计算机设备和存储介质 | |
CN114116496A (zh) | 自动化测试方法、装置、设备及介质 | |
CN108399125B (zh) | 自动化测试方法、装置、计算机设备和存储介质 | |
CN113505078B (zh) | 配置文件更新方法、装置、设备及存储介质 | |
CN113360300A (zh) | 接口调用链路生成方法、装置、设备及可读存储介质 | |
CN112612706A (zh) | 自动化测试方法、计算机设备及存储介质 | |
CN117391306A (zh) | 国土空间规划成果审查方法、装置、设备以及存储介质 | |
CN110177006B (zh) | 基于接口预测模型的节点测试方法及装置 | |
CN112711574A (zh) | 数据库安全性检测方法、装置、电子设备及介质 | |
CN115705297A (zh) | 代码调用检测方法、装置、计算机设备以及存储介质 | |
CN111191235A (zh) | 可疑文件分析方法、装置和计算机可读存储介质 | |
CN114356405B (zh) | 开源组件函数的匹配方法、装置、计算机设备和存储介质 | |
CN117909393A (zh) | 接口参数映射获取方法、装置、设备、介质和程序产品 | |
CN117033196A (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 |