CN111694749A - 接口自动测试方法、装置、计算机设备及可读存储介质 - Google Patents
接口自动测试方法、装置、计算机设备及可读存储介质 Download PDFInfo
- Publication number
- CN111694749A CN111694749A CN202010590523.1A CN202010590523A CN111694749A CN 111694749 A CN111694749 A CN 111694749A CN 202010590523 A CN202010590523 A CN 202010590523A CN 111694749 A CN111694749 A CN 111694749A
- Authority
- CN
- China
- Prior art keywords
- test
- script
- interface
- data
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 419
- 238000013515 script Methods 0.000 claims abstract description 200
- 230000004044 response Effects 0.000 claims abstract description 137
- 238000013507 mapping Methods 0.000 claims abstract description 26
- 238000000034 method Methods 0.000 claims description 25
- 238000010998 test method Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 claims description 8
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 230000001960 triggered effect Effects 0.000 claims description 4
- 238000013473 artificial intelligence Methods 0.000 abstract description 2
- 230000000694 effects Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
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
本发明公开了接口自动测试方法、装置、计算机设备及可读存储介质,涉及人工智能,包括:识别接口文档中的请求体和响应体;判断请求体和响应体是否具有多级结构嵌套关系;若是,则将具有多级结构的请求体或响应体,转为具有嵌套关系的JSON格式请求体数据和响应体数据;若否,则将请求体或响应体转为JSON格式的请求体数据和响应体数据;将请求体数据和响应体数据映射到预设的脚本模板中获得测试脚本;根据测试脚本触发预设的测试任务,测试任务运行其中的执行脚本将测试脚本发送待测接口并运行,使待测接口根据测试脚本生成测试用例,并根据测试用例生成测试报告。本发明保证了获得的测试脚本的准确度和可用性,并且提高了测试用例生成效率和准确度。
Description
技术领域
本发明涉及人工智能的测试技术领域,尤其涉及一种接口自动测试方法、装置、计算机设备及可读存储介质。
背景技术
在进行接口测试时,经常会遇到比较复杂的接口,请求参数和响应参数数量多、结构复杂,因此,需要编写请求体和响应体较为复杂的测试脚本以对其进行测试。
在编写这种请求体和响应体较为复杂的测试脚本和测试用例时,往往会因请求体和响应体的复杂多样,造成测试脚本和测试用例编写工作量大生成效率低,以及很容易出现因测试脚本或测试用例遗漏部分请求体和响应体本,导致生成的测试脚本或测试用例无法进行正常的测试工作,造成测试完成度低下的情况。
发明内容
本发明的目的是提供一种接口自动测试方法、装置、计算机设备及可读存储介质,用于解决现有技术存在的测试脚本和测试用例编写工作量大生成效率低,以及因测试脚本或测试用例遗漏部分请求体和响应体本,导致生成的测试脚本或测试用例无法进行正常的测试工作,造成测试完成度低下的问题;本申请可应用于智慧城市场景中,从而推动智慧城市的建设。
为实现上述目的,本发明提供一种接口自动测试方法,包括:
识别接收到的接口文档中的请求体和响应体;判断所述请求体和响应体是否具有多级结构嵌套关系;若是,则通过格式化工具将具有多级结构的请求体或响应体,转为具有嵌套关系的JSON格式请求体数据和响应体数据;若否,则通过格式化工具将所述请求体或响应体转为JSON格式的请求体数据和响应体数据;
将所述请求体数据和响应体数据映射到预设的脚本模板中获得测试脚本;
根据所述测试脚本触发预设的测试任务,所述测试任务运行其中的执行脚本将所述测试脚本发送待测接口并运行,使所述待测接口根据所述测试脚本生成测试用例,并根据所述测试用例生成测试报告。
上述方案中,识别接收到的接口文档中的请求体和响应体之前,包括:
创建接口模板并将其发送至客户端;
接收所述客户端通过填写接口模板所形成的接口文档。
上述方案中,所述脚本模板包括固定部分和映射部分;
所述固定部分是用于指定所述脚本模板的性质和属性的信息,其在所述将请求体数据和响应体数据映射到预设的脚本模板中获得测试脚本过程中保持不变;
所述映射部分用于写入所述JSON格式数据,其在所述将请求体数据和响应体数据映射到预设的脚本模板中获得测试脚本过程中,用于接收所述请求体数据和响应体数据的映射,使所述脚本模板转为测试脚本。
上述方案中,识别接收到的接口文档中的请求体和响应体之前,还包括:
创建可触发的测试任务,在所述测试任务中设置用于执行测试脚本的执行脚本;
其中,所述可触发的测试任务的触发条件为接收到测试脚本。
上述方案中,根据所述测试脚本触发预设的测试任务,所述测试任务运行其中的执行脚本将所述测试脚本发送待测接口并运行,使所述待测接口根据所述测试脚本生成测试用例,并根据所述测试用例生成测试报告的步骤,包括:
根据测试脚本触发测试任务运行执行脚本并开始计时;
所述执行脚本将所述测试脚本发送待测接口,并从所述待测接口中获取与所述测试脚本中请求体数据和响应体数据对应的实体类,将所述实体类设为测试用例;
所述执行脚本在待测接口中运行所述测试用例获得运行结果;
将所述运行结果与所述测试用例中的输出数据进行比对,并判断所述测试结果与所述输出数据是否一致;若是,则生成内容包括运行成功信息的测试结果;若否,则生成内容包括运行失败信息和失败原因的测试结果;
当所有测试用例均测试完毕时则停止计时并记录执行时间,根据所述测试结果调用预设的测试框架生成测试报告;
将所述测试报告上传至区块链中。
上述方案中,采用TextNG作为所述测试框架;所述测试报告至少包括测试概况、失败详情、成功详情;其中,所述测试概况至少包括测试用例总数、测试成功信息数量、测试失败信息数量和执行时间;所述失败详情至少包括测试失败原因;所述成功详情至少包括测试成功请求头。
上述方案中,所述生成测试报告之后,还包括:
将所述测试报告发送所述客户端,其包括:提取所述测试任务中预设的邮箱地址,根据所述邮箱地址将所述测试报告发送至客户端。
为实现上述目的,本发明还提供一种接口自动测试装置,包括:
格式转换模块,用于识别接收到的接口文档中的请求体和响应体;判断所述请求体和响应体是否具有多级结构嵌套关系;若是,则通过格式化工具将具有多级结构的请求体或响应体,转为具有嵌套关系的JSON格式请求体数据和响应体数据;若否,则通过格式化工具将所述请求体或响应体转为JSON格式的请求体数据和响应体数据;
脚本生成模块,用于将所述请求体数据和响应体数据映射到预设的脚本模板中获得测试脚本;
接口测试模块,用于根据所述测试脚本触发预设的测试任务,所述测试任务运行其中的执行脚本将所述测试脚本发送待测接口并运行,使所述待测接口根据所述测试脚本生成测试用例,并根据所述测试用例生成测试报告。
为实现上述目的,本发明还提供一种计算机设备,其包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述计算机设备的处理器执行所述计算机程序时实现所述接口自动测试方法的步骤。
为实现上述目的,本发明还提供一种计算机可读存储介质,其包括至少一个存储介质,所述存储介质上存储有计算机程序,所述存储介质存储的所述计算机程序被处理器执行时实现所述接口自动测试方法的步骤。
本发明提供的接口自动测试方法、装置、计算机设备及可读存储介质,通过识别请求体和响应体的嵌套关系,并将请求体和响应体转为JSON格式,实现了对多种形式关系的请求体和响应体的识别,因此获得的JSON格式数据可以完整的保留原请求体和响应体的嵌套关系,进而保证了将JSON格式请求体数据和响应体数据映射到脚本模板所获得的测试脚本的准确度和可用性,解决了因测试脚本或测试用例遗漏部分请求体和响应体本,导致生成的测试脚本或测试用例无法进行正常的测试工作,造成测试完成度低下的问题;待测接口可直接读取测试脚本中的JSON格式请求体和响应体,并查询到与所述请求体和响应体对应的测试用例,以实现快速批量的生成针对所述测试目标的测试用例,极大的提高了测试用例生成效率和准确度;通过所述测试用例对接口进行测试生成测试报告,以高效快速的对接口进行测试,并及时获得该接口的测试结果,解决了测试脚本和测试用例编写工作量大生成效率低的问题。
附图说明
图1为本发明接口自动测试方法实施例一的流程图;
图2为本发明接口自动测试方法实施例二中接口自动测试方法的环境应用示意图;
图3为本发明接口自动测试方法实施例二的具体方法流程图;
图4为本发明接口自动测试方法实施例二中生成测试报告的流程图;
图5为本发明接口自动测试方法实施例三的程序模块示意图;
图6为本发明计算机设备实施例四中计算机设备的硬件结构示意图。
附图标记:
1、自动测试装置 2、服务器 3、网络 4、客户端 5、计算机设备 11、创建模块 12、输入模块 13、格式转换模块 14、脚本生成模块 15、任务创建模块 16、接口测试模块 17、输出模块 51、存储器 52、处理器
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供的接口自动测试方法、装置、计算机设备及可读存储介质,适用于测试技术领域,为提供一种基于格式转换模块、脚本生成模块和接口测试模块的接口自动测试方法。本发明通过识别接收到的接口文档中的请求体和响应体;判断所述请求体和响应体是否具有多级结构嵌套关系;若是,则通过格式化工具将具有多级结构的请求体或响应体,转为具有嵌套关系的JSON格式请求体数据和响应体数据;若否,则通过格式化工具将所述请求体或响应体转为JSON格式的请求体数据和响应体数据;将所述请求体数据和响应体数据映射到预设的脚本模板中获得测试脚本;根据所述测试脚本触发预设的测试任务,所述测试任务运行其中的执行脚本将所述测试脚本发送待测接口并运行,使所述待测接口根据所述测试脚本生成测试用例,并根据所述测试用例生成测试报告。
实施例一
请参阅图1,本实施例的一种接口自动测试方法,包括:
S103:识别接收到的接口文档中的请求体和响应体;判断所述请求体和响应体是否具有多级结构嵌套关系;若是,则通过格式化工具将具有多级结构的请求体或响应体,转为具有嵌套关系的JSON格式请求体数据和响应体数据;若否,则通过格式化工具将所述请求体或响应体转为JSON格式的请求体数据和响应体数据;
S104:将所述请求体数据和响应体数据映射到预设的脚本模板中获得测试脚本;
S106:根据所述测试脚本触发预设的测试任务,所述测试任务运行其中的执行脚本将所述测试脚本发送待测接口并运行,使所述待测接口根据所述测试脚本生成测试用例,并根据所述测试用例生成测试报告。
本发明提供的接口自动测试方法、装置、计算机设备及可读存储介质,通过识别请求体和响应体的嵌套关系,并将请求体和响应体转为JSON格式,实现了对多种形式关系的请求体和响应体的识别,因此获得的JSON格式数据可以完整的保留原请求体和响应体的嵌套关系,进而保证了将JSON格式请求体数据和响应体数据映射到脚本模板所获得的测试脚本的准确度和可用性,解决了因测试脚本或测试用例遗漏部分请求体和响应体本,导致生成的测试脚本或测试用例无法进行正常的测试工作,造成测试完成度低下的问题;待测接口可直接读取测试脚本中的JSON格式请求体和响应体,并查询到与所述请求体和响应体对应的测试用例,以实现快速批量的生成针对所述测试目标的测试用例,极大的提高了测试用例生成效率和准确度;通过所述测试用例对接口进行测试生成测试报告,以高效快速的对接口进行测试,并及时获得该接口的测试结果,解决了测试脚本和测试用例编写工作量大生成效率低的问题。
同时,由于在测试中,接口的请求体参数和响应体参数多为JSON格式的数据,而且能与接口端的实体类对应,因此,为使解析文档中的数据能够进行自动化测试,故将文档中请求体参数和响应体参数转换为JSON格式的请求体数据和响应体数据,以便于接口端在接收到所述数据时,可以直接将其转换为对应的实体类,以获得与请求体和响应体对应的测试用例。
为实现能够进行自动测试的测试脚本,通过将解析文档中的JSON格式映射到脚本模板中获得测试脚本,使测试脚本中具有内容为请求体,格式为JSON格式,且,用于进行接口测试并获得响应报文的测试数据,以及,内容为响应体,格式为JSON格式,且,用于与响应报文进行比对获得测试结果的比对数据。
为实现自动运行测试脚本以获得测试报告,将测试任务的触发条件设为接收到测试脚本之时即触发;测试脚本触发测试任务运行,使测试任务运行执行脚本,执行脚本将测试脚本发送待测接口,并从所述待测接口中获得与测试脚本中JSON格式的请求体和响应体提供对应的实体类作为测试用例,再于待测接口中运行所述测试用例获得测试结果并生成测试报告;因此,实现了批量获取测试用例及自动运行测试用例并获得测试报告的技术效果,提高了接口测试工作的效率。
本申请可应用于智慧城市场景中,从而推动智慧城市的建设。
实施例二:
本实施例为上述实施例一的一种具体应用场景,通过本实施例,能够更加清楚、具体地阐述本发明所提供的方法。
下面,以在运行有图像效果调整方法的服务器对图像进行图像效果调整为例,来对本实施例提供的方法进行具体说明。需要说明的是,本实施例只是示例性的,并不限制本发明实施例所保护的范围。
图2示意性示出了根据本申请实施例二的接口自动测试方法的环境应用示意图。
在示例性的实施例中,接口自动测试方法所在的服务器2通过网络3连接客户端4;所述服务器2可以通过一个或多个网络3提供服务,网络3可以包括各种网络设备,例如路由器,交换机,多路复用器,集线器,调制解调器,网桥,中继器,防火墙,代理设备和/或等等。网络3可以包括物理链路,例如同轴电缆链路,双绞线电缆链路,光纤链路,它们的组合和/或类似物。网络3可以包括无线链路,例如蜂窝链路,卫星链路,Wi-Fi链路和/或类似物;所述客户端4可为台式计算机、笔记本电脑等。
图3是本发明一个实施例提供的一种接口自动测试方法的具体方法流程图,该方法具体包括步骤S201至S207。
S201:创建接口模板并将其发送客户端。
本步骤中,所述接口模板采用的是excel文件,其中,所述接口模板至少包括:接口的请求地址项、协议类型项、URL项,请求/响应头项、请求/响应体项、参数类型项、参数实例项。
S202:接收客户端通过填写接口模板所形成的接口文档。
其中,所述接口文档至少包括根据所述接口模板填写的:接口的请求地址、协议类型、URL,请求/响应头、请求/响应体、参数类型、参数实例。
S203:识别接收到的接口文档中的请求体和响应体;判断所述请求体和响应体是否具有多级结构嵌套关系;若是,则通过格式化工具将具有多级结构的请求体或响应体,转为具有嵌套关系的JSON格式请求体数据和响应体数据;若否,则通过格式化工具将所述请求体或响应体转为JSON格式的请求体数据和响应体数据。
为识别出接口文档中请求体和响应体是否具有多级结构嵌套关系,以保证获得的JSON格式的请求体数据和响应体数据能够准确反映所述嵌套关系,
本步骤中,由于在测试中,接口的请求体参数和响应体参数多为JSON格式的数据,而且能与接口端的实体类对应,因此,为使解析文档中的数据能够进行自动化测试,故将文档中请求体参数和响应体参数转换为JSON格式的请求体数据和响应体数据,以便于接口端在接收到所述数据时,可以直接将其转换为对应的实体类,以获得与请求体和响应体对应的测试用例。
具体地,通过调用用于读取excel文件的读取接口,读取接口文档中的数据,识别所述数据中的请求体和响应体,并调用格式化工具将其转换为JSON格式数据。
于本实施例中,所述格式化工具为JSON格式化工具,所述JSON格式化工具是一款基于web的视图工具,可以在线编辑和格式化JSON数据,格式化后的JSON数据以树形结构展示。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式;JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。
需要说明的是:所述请求体将一个页面表单中的组件值通过param1=value1¶m2=value2的键值对形式编码成一个格式化串,它承载多个请求参数的数据。不但请求体可以传递请求参数,请求URL也可以通过类似于“/chapter15/user.html?param1=value1¶m2=value2”的方式传递请求参数。例如:POST请求通过请求体来传递数据,通过param1=value1¶m2=value2的键值对形式编码。GET请求通过URL地址参数来传递数据,也就是我们平时看到的URL地址里面“?”后面的所包含的键值对。所述响应体是服务器返回的HTML页面或者json数据。
示例性地,将具有多级结构的请求体或响应体,转为具有嵌套关系的JSON格式数据如下所示:
将如下的具有多级结构的请求体或响应体:
key1 value1
key2
key21 value21
key22 value22
key3 value3
转为如下的具有嵌套关系的JSON格式数据:
示例性地,将所述请求体或响应体转为JSON格式数据如下例所示:
将所述请求体或响应体如下:
key1 value1
key3 value3
转为如下的JSON格式数据:
{
key1:value1,
Key3:value3
}。
S204:将所述请求体数据和响应体数据映射到预设的脚本模板中获得测试脚本。
为实现能够进行自动测试的测试脚本,通过将解析文档中的JSON格式映射到脚本模板中获得测试脚本,使测试脚本中具有内容为请求体,格式为JSON格式,且,用于进行接口测试并获得响应报文的测试数据,以及,内容为响应体,格式为JSON格式,且,用于与响应报文进行比对获得测试结果的比对数据。
本步骤中,所述脚本模板包括固定部分和映射部分,其中,所述固定部分是用于指定所述脚本模板的性质和属性的信息,其在通过JSON格式数据映射到脚本模板获得测试脚本的过程中是保持不变的。所述映射部分用于写入所述JSON格式数据,其在通过JSON格式数据映射到脚本模板获得测试脚本的过程中,用于接收所述JSON格式数据的映射,使脚本模板转为测试脚本。
需要说明的是,所述脚本模板是一种用于制定测试脚本的统一格式文件,以便于对多个测试用例进行统一处理,获得能够对接口进行自动化测试的测试脚本;于本实施例中,采用freemarker.template支持的.ftl文件作为所述脚本模板。
S205:创建可触发的测试任务,在所述测试任务中设置用于执行测试脚本的执行脚本。
为实现测试脚本的自动测试,提供Jenkins作为托管平台,并在该托管平台中设置可触发的job(即所述测试任务),在job中设置ant脚本(即所述执行脚本),用于在job被触发时运行,以执行测试脚本,实现自动运行测试脚本的技术效果。
优选的,所述可触发的测试任务的触发条件为接收测试脚本。
S206:根据所述测试脚本触发预设的测试任务,所述测试任务运行其中的执行脚本将所述测试脚本发送待测接口并运行,使所述待测接口根据所述测试脚本生成测试用例,并根据所述测试用例生成测试报告。
为实现自动运行测试脚本以获得测试报告,将测试任务的触发条件设为接收到测试脚本之时即触发;测试脚本触发测试任务运行,使测试任务运行执行脚本,执行脚本将测试脚本发送待测接口,并从所述待测接口中获得与测试脚本中JSON格式的请求体和响应体提供对应的实体类作为测试用例,再于待测接口中运行所述测试用例获得测试结果并生成测试报告;因此,实现了批量获取测试用例及自动运行测试用例并获得测试报告的技术效果,提高了接口测试工作的效率。
在一个优选的实施例中,请参阅图4,根据所述测试脚本触发预设的测试任务,所述测试任务运行其中的执行脚本将所述测试脚本发送待测接口并运行,使所述待测接口根据所述测试脚本生成测试用例,并根据所述测试用例生成测试报告的步骤,包括:
S206-1:根据测试脚本触发测试任务运行执行脚本并开始计时。
S206-2:所述执行脚本将所述测试脚本发送待测接口,并从所述待测接口中获取与所述测试脚本中请求体数据和响应体数据对应的实体类,将所述实体类设为测试用例。
将根所述测试脚本中的请求体数据和响应体数据转换为对应的实体类以获得至少一个测试用例;
其中,由于请求体数据和响应体数据均为JSON格式的,因此通过将所述测试脚本发送至待测接口时,待测接口即可识别请求体数据和响应体数据,并可查找到同时与请求体数据和响应体数据对应的实体类,执行脚本获取所述实体类并将所述实体类定义为测试用例;所述测试用例至少包括与所述请求体数据对应的输入数据,与所述响应体数据对应的输出数据。
S206-3:所述执行脚本在待测接口中运行所述测试用例获得运行结果。
本步骤中,执行脚本将所述测试用例中的输入数据录入待测接口,并接收由所述待测接口运行所述输入数据所生成的运行结果。
S206-4:将所述测试结果与所述测试用例中的输出数据进行比对,并判断所述测试结果与所述输出数据是否一致;
若是,则生成内容包括运行成功信息的测试结果;
若否,则生成内容包括运行失败信息和失败原因的测试结果。
需要说明的是,待测接口在成功运行测试用例时,将生成运行成功的返回信息,而在运行测试用例失败时,将会返回运行失败的返回信息以及表达运行失败的原因。
S206-5:当所有测试用例均测试完毕时则停止计时并记录执行时间,根据所述测试结果调用预设的测试框架生成测试报告。
本步骤中,为使测试者能够获得全面准确的测试报告,采用TextNG作为所述测试框架。所述测试报告至少包括测试概况、失败详情、成功详情;其中,所述测试概况至少包括测试用例总数、测试成功信息数量、测试失败信息数量和执行时间;所述失败详情至少包括测试失败原因;所述成功详情至少包括测试成功请求头。
需要说明的是,所述TestNG是Java中的一个测试框架,是一个目前很流行实用的单元测试框架,有完善的用例管理模块,配合Maven能够很方便管理依赖第三方插件,其用于做功能、接口、单元、集成的自动化测试。
优选的,所述生产测试报告之后,还包括:
S206-6:将所述测试报告上传至区块链中。
需要说明的是:基于测试报告得到对应的摘要信息,具体来说,摘要信息由测试报告进行散列处理得到,比如利用sha256s算法处理得到。将摘要信息上传至区块链可保证其安全性和对用户的公正透明性。用户设备可以从区块链中下载得该摘要信息,以便查证测试报告是否被篡改。
本示例所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
S207:将所述测试报告发送所述客户端。
为使具有测试报告获取权限的测试者能够及时的获得测试报告,本申请在测试任务中预设邮箱地址;通过提取所述测试任务中预设的邮箱地址,根据所述邮箱地址将所述测试报告发送至客户端。
实施例三:
请参阅图5,本实施例的一种接口自动测试装置1,包括:
格式转换模块13,用于识别接收到的接口文档中的请求体和响应体;判断所述请求体和响应体是否具有多级结构嵌套关系;若是,则通过格式化工具将具有多级结构的请求体或响应体,转为具有嵌套关系的JSON格式请求体数据和响应体数据;若否,则通过格式化工具将所述请求体或响应体转为JSON格式的请求体数据和响应体数据;
脚本生成模块14,用于将所述请求体数据和响应体数据映射到预设的脚本模板中获得测试脚本;
接口测试模块16,用于根据所述测试脚本触发预设的测试任务,所述测试任务运行其中的执行脚本将所述测试脚本发送待测接口并运行,使所述待测接口根据所述测试脚本生成测试用例,并根据所述测试用例生成测试报告。
可选的,接口自动测试装置1还包括:
创建模块11:创建接口模板并将其发送客户端。
可选的,接口自动测试装置1还包括:
输入模块12:接收客户端通过填写接口模板所形成的接口文档。
可选的,接口自动测试装置1还包括:
任务创建模块15,用于创建可触发的测试任务,在所述测试任务中设置用于执行测试脚本的执行脚本。
可选的,接口自动测试装置1还包括:
输出模块17,用于将所述测试报告发送所述客户端。
本技术方案基于研发管理的测试技术领域,通过识别接收到的接口文档中的请求体和响应体;判断所述请求体和响应体是否具有多级结构嵌套关系;若是,则通过格式化工具将具有多级结构的请求体或响应体,转为具有嵌套关系的JSON格式请求体数据和响应体数据;若否,则通过格式化工具将所述请求体或响应体转为JSON格式的请求体数据和响应体数据;将所述请求体数据和响应体数据映射到预设的脚本模板中获得测试脚本;根据所述测试脚本触发预设的测试任务,所述测试任务运行其中的执行脚本将所述测试脚本发送待测接口并运行,使所述待测接口根据所述测试脚本生成测试用例,并根据所述测试用例生成测试报告,以构建用于对接口进行自动测试的自动化测试工具。
实施例四:
为实现上述目的,本发明还提供一种计算机设备5,实施例二的自动测试装置1的组成部分可分散于不同的计算机设备中,计算机设备可以是执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。本实施例的计算机设备5至少包括但不限于:可通过***总线相互通信连接的存储器51、处理器52,如图6所示。需要指出的是,图6仅示出了具有组件-的计算机设备,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器51(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器51可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,存储器51也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器51还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,存储器51通常用于存储安装于计算机设备的操作***和各类应用软件,例如实施例一的自动测试装置的程序代码等。此外,存储器51还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器52在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器52通常用于控制计算机设备的总体操作。本实施例中,处理器52用于运行存储器51中存储的程序代码或者处理数据,例如运行自动测试装置,以实现实施例一和实施例二的接口自动测试方法。
实施例五:
为实现上述目的,本发明还提供一种计算机可读存储***,其包括至少一个存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器52执行时实现相应功能。本实施例的计算机可读存储介质用于存储自动测试装置,被处理器52执行时实现实施例一和实施例二的接口自动测试方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种接口自动测试方法,其特征在于,包括:
识别接收到的接口文档中的请求体和响应体;判断所述请求体和响应体是否具有多级结构嵌套关系;若是,则通过格式化工具将具有多级结构的请求体或响应体,转为具有嵌套关系的JSON格式请求体数据和响应体数据;若否,则通过格式化工具将所述请求体或响应体转为JSON格式的请求体数据和响应体数据;
将所述请求体数据和响应体数据映射到预设的脚本模板中获得测试脚本;
根据所述测试脚本触发预设的测试任务,所述测试任务运行其中的执行脚本将所述测试脚本发送待测接口并运行,使所述待测接口根据所述测试脚本生成测试用例,并根据所述测试用例生成测试报告。
2.根据权利要求1所述的接口自动测试方法,其特征在于,识别接收到的接口文档中的请求体和响应体之前,包括:
创建接口模板并将其发送至客户端;
接收所述客户端通过填写接口模板所形成的接口文档。
3.根据权利要求1所述的接口自动测试方法,其特征在于,所述脚本模板包括固定部分和映射部分;
所述固定部分是用于指定所述脚本模板的性质和属性的信息,其在所述将请求体数据和响应体数据映射到预设的脚本模板中获得测试脚本过程中保持不变;
所述映射部分用于写入所述JSON格式数据,其在所述将请求体数据和响应体数据映射到预设的脚本模板中获得测试脚本过程中,用于接收所述请求体数据和响应体数据的映射,使所述脚本模板转为测试脚本。
4.根据权利要求1所述的接口自动测试方法,其特征在于,识别接收到的接口文档中的请求体和响应体之前,还包括:
创建可触发的测试任务,在所述测试任务中设置用于执行测试脚本的执行脚本;
其中,所述可触发的测试任务的触发条件为接收到测试脚本。
5.根据权利要求1所述的接口自动测试方法,其特征在于,根据所述测试脚本触发预设的测试任务,所述测试任务运行其中的执行脚本将所述测试脚本发送待测接口并运行,使所述待测接口根据所述测试脚本生成测试用例,并根据所述测试用例生成测试报告的步骤,包括:
根据测试脚本触发测试任务运行执行脚本并开始计时;
所述执行脚本将所述测试脚本发送待测接口,并从所述待测接口中获取与所述测试脚本中请求体数据和响应体数据对应的实体类,将所述实体类设为测试用例;
所述执行脚本在待测接口中运行所述测试用例获得运行结果;
将所述运行结果与所述测试用例中的输出数据进行比对,并判断所述测试结果与所述输出数据是否一致;若是,则生成内容包括运行成功信息的测试结果;若否,则生成内容包括运行失败信息和失败原因的测试结果;
当所有测试用例均测试完毕时则停止计时并记录执行时间,根据所述测试结果调用预设的测试框架生成测试报告;
将所述测试报告上传至区块链中。
6.根据权利要求5所述的接口自动测试方法,其特征在于,采用TextNG作为所述测试框架;所述测试报告至少包括测试概况、失败详情、成功详情;其中,所述测试概况至少包括测试用例总数、测试成功信息数量、测试失败信息数量和执行时间;所述失败详情至少包括测试失败原因;所述成功详情至少包括测试成功请求头。
7.根据权利要求1所述的接口自动测试方法,其特征在于,所述生成测试报告之后,还包括:
将所述测试报告发送所述客户端,其包括:提取所述测试任务中预设的邮箱地址,根据所述邮箱地址将所述测试报告发送至客户端。
8.一种接口自动测试装置,其特征在于,包括:
格式转换模块,用于识别接收到的接口文档中的请求体和响应体;判断所述请求体和响应体是否具有多级结构嵌套关系;若是,则通过格式化工具将具有多级结构的请求体或响应体,转为具有嵌套关系的JSON格式请求体数据和响应体数据;若否,则通过格式化工具将所述请求体或响应体转为JSON格式的请求体数据和响应体数据;
脚本生成模块,用于将所述请求体数据和响应体数据映射到预设的脚本模板中获得测试脚本;
根据所述测试脚本触发预设的测试任务,所述测试任务运行其中的执行脚本将所述测试脚本发送待测接口并运行,使所述待测接口根据所述测试脚本生成测试用例,并根据所述测试用例生成测试报告。
9.一种计算机设备,其包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述计算机设备的处理器执行所述计算机程序时实现权利要求1至7任一项所述接口自动测试方法的步骤。
10.一种计算机可读存储介质,其包括至少一个存储介质,所述存储介质上存储有计算机程序,其特征在于,所述存储介质存储的所述计算机程序被处理器执行时实现权利要求1至7任一项所述接口自动测试方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010590523.1A CN111694749A (zh) | 2020-06-24 | 2020-06-24 | 接口自动测试方法、装置、计算机设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010590523.1A CN111694749A (zh) | 2020-06-24 | 2020-06-24 | 接口自动测试方法、装置、计算机设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111694749A true CN111694749A (zh) | 2020-09-22 |
Family
ID=72484051
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010590523.1A Pending CN111694749A (zh) | 2020-06-24 | 2020-06-24 | 接口自动测试方法、装置、计算机设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111694749A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112131113A (zh) * | 2020-09-23 | 2020-12-25 | 北京达佳互联信息技术有限公司 | 用于自动测试特效的方法及电子设备 |
CN112231219A (zh) * | 2020-10-22 | 2021-01-15 | 中国平安人寿保险股份有限公司 | 自动化测试监控方法、装置、设备及存储介质 |
CN112346991A (zh) * | 2020-11-27 | 2021-02-09 | 新华三大数据技术有限公司 | 一种接口测试脚本的生成方法及装置 |
CN112667219A (zh) * | 2021-01-21 | 2021-04-16 | 中信银行股份有限公司 | 代码生成方法及装置、设备、计算机可读存储介质 |
CN112905467A (zh) * | 2021-02-19 | 2021-06-04 | 浙江诺诺网络科技有限公司 | 一种测试用例执行管理方法、装置、设备及存储介质 |
CN113360408A (zh) * | 2021-07-15 | 2021-09-07 | 中国工商银行股份有限公司 | 一种基于拖拽式机器学习平台的自动化测试方法和装置 |
CN113535548A (zh) * | 2021-06-21 | 2021-10-22 | 上汽通用五菱汽车股份有限公司 | 测试脚本生成方法、装置、设备及计算机可读存储介质 |
CN114328210A (zh) * | 2021-12-24 | 2022-04-12 | 中国联合网络通信集团有限公司 | 一种测试方法、装置及计算机可读存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102004659A (zh) * | 2009-08-31 | 2011-04-06 | 埃森哲环球服务有限公司 | 集成环境生成器 |
CN103019931A (zh) * | 2012-11-26 | 2013-04-03 | 华为技术有限公司 | Asn.1接口的检测处理方法和装置 |
CN104050078A (zh) * | 2013-03-14 | 2014-09-17 | 埃森哲环球服务有限公司 | 测试脚本生成*** |
CN107368412A (zh) * | 2017-07-03 | 2017-11-21 | 上海前隆信息科技有限公司 | 自动化测试方法/***、计算机可读存储介质及电子设备 |
CN108415832A (zh) * | 2018-02-07 | 2018-08-17 | 平安科技(深圳)有限公司 | 接口自动化测试方法、装置、设备及存储介质 |
US10223239B1 (en) * | 2016-09-30 | 2019-03-05 | EMC IP Holding Company LLC | Definition-driven test agent |
CN109474488A (zh) * | 2018-10-31 | 2019-03-15 | 中国银行股份有限公司 | 接口测试方法、装置及计算机设备 |
CN109558290A (zh) * | 2018-11-12 | 2019-04-02 | 平安科技(深圳)有限公司 | 服务器、接口自动化测试方法及存储介质 |
CN109634841A (zh) * | 2018-10-26 | 2019-04-16 | 平安科技(深圳)有限公司 | 电子装置、接口自动化测试方法及存储介质 |
-
2020
- 2020-06-24 CN CN202010590523.1A patent/CN111694749A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102004659A (zh) * | 2009-08-31 | 2011-04-06 | 埃森哲环球服务有限公司 | 集成环境生成器 |
CN103019931A (zh) * | 2012-11-26 | 2013-04-03 | 华为技术有限公司 | Asn.1接口的检测处理方法和装置 |
CN104050078A (zh) * | 2013-03-14 | 2014-09-17 | 埃森哲环球服务有限公司 | 测试脚本生成*** |
US10223239B1 (en) * | 2016-09-30 | 2019-03-05 | EMC IP Holding Company LLC | Definition-driven test agent |
CN107368412A (zh) * | 2017-07-03 | 2017-11-21 | 上海前隆信息科技有限公司 | 自动化测试方法/***、计算机可读存储介质及电子设备 |
CN108415832A (zh) * | 2018-02-07 | 2018-08-17 | 平安科技(深圳)有限公司 | 接口自动化测试方法、装置、设备及存储介质 |
CN109634841A (zh) * | 2018-10-26 | 2019-04-16 | 平安科技(深圳)有限公司 | 电子装置、接口自动化测试方法及存储介质 |
CN109474488A (zh) * | 2018-10-31 | 2019-03-15 | 中国银行股份有限公司 | 接口测试方法、装置及计算机设备 |
CN109558290A (zh) * | 2018-11-12 | 2019-04-02 | 平安科技(深圳)有限公司 | 服务器、接口自动化测试方法及存储介质 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112131113A (zh) * | 2020-09-23 | 2020-12-25 | 北京达佳互联信息技术有限公司 | 用于自动测试特效的方法及电子设备 |
CN112231219A (zh) * | 2020-10-22 | 2021-01-15 | 中国平安人寿保险股份有限公司 | 自动化测试监控方法、装置、设备及存储介质 |
CN112346991A (zh) * | 2020-11-27 | 2021-02-09 | 新华三大数据技术有限公司 | 一种接口测试脚本的生成方法及装置 |
CN112346991B (zh) * | 2020-11-27 | 2022-03-22 | 新华三大数据技术有限公司 | 一种接口测试脚本的生成方法及装置 |
CN112667219A (zh) * | 2021-01-21 | 2021-04-16 | 中信银行股份有限公司 | 代码生成方法及装置、设备、计算机可读存储介质 |
CN112905467A (zh) * | 2021-02-19 | 2021-06-04 | 浙江诺诺网络科技有限公司 | 一种测试用例执行管理方法、装置、设备及存储介质 |
CN113535548A (zh) * | 2021-06-21 | 2021-10-22 | 上汽通用五菱汽车股份有限公司 | 测试脚本生成方法、装置、设备及计算机可读存储介质 |
CN113535548B (zh) * | 2021-06-21 | 2023-01-03 | 上汽通用五菱汽车股份有限公司 | 测试脚本生成方法、装置、设备及计算机可读存储介质 |
CN113360408A (zh) * | 2021-07-15 | 2021-09-07 | 中国工商银行股份有限公司 | 一种基于拖拽式机器学习平台的自动化测试方法和装置 |
CN114328210A (zh) * | 2021-12-24 | 2022-04-12 | 中国联合网络通信集团有限公司 | 一种测试方法、装置及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111694749A (zh) | 接口自动测试方法、装置、计算机设备及可读存储介质 | |
CN107122297B (zh) | 用于测试接口的请求消息生成的方法及设备 | |
CN108415832B (zh) | 接口自动化测试方法、装置、设备及存储介质 | |
US10467316B2 (en) | Systems and methods for web analytics testing and web development | |
US8745641B1 (en) | Automatic verification and anomaly detection in a representational state transfer (REST) application programming interface | |
US9582399B2 (en) | Entropy weighted message matching for opaque service virtualization | |
US9965300B2 (en) | Message matching for opaque service virtualization | |
WO2018113596A1 (zh) | 应用程序审核操作权限处理方法、装置和存储介质 | |
WO2019072110A1 (zh) | 应用程序的生成方法、装置、***、设备和介质 | |
CN108628748B (zh) | 自动化测试管理方法和自动化测试管理*** | |
CN114500690B (zh) | 接口数据处理方法、装置、电子设备及存储介质 | |
CN111813701B (zh) | 基于http的接口测试方法、装置、计算机设备及存储介质 | |
CN110647471B (zh) | 接口测试用例生成方法、电子装置及存储介质 | |
CN112039900B (zh) | 网络安全风险检测方法、***、计算机设备和存储介质 | |
CN109902493B (zh) | 脚本的下发方法及服务器 | |
CN109614319B (zh) | 自动化测试方法、装置、电子设备及计算机可读介质 | |
CN113434175B (zh) | 数据处理方法、装置、存储介质及设备 | |
CN114185808A (zh) | 自动化测试方法、装置、电子设备及计算机可读存储介质 | |
US10754748B2 (en) | System and method for constructing extensible event log with javascript object notation (JSON) encoded payload data | |
CN111078529B (zh) | 客户端写入模块测试方法、装置、电子设备 | |
CN111327680A (zh) | 认证数据同步方法、装置、***、计算机设备和存储介质 | |
CN103167016A (zh) | 一种浏览器崩溃数据上传和处理的方法和装置 | |
CN111460436B (zh) | 一种基于区块链的非结构化数据操作方法和*** | |
CN117171800B (zh) | 一种基于零信任防护体系的敏感数据识别方法及装置 | |
CN114205276B (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 |