一种物联网平台接口测试方法、系统及计算机存储介质与流程

文档序号:23628738发布日期:2021-01-12 10:42阅读:102来源:国知局
一种物联网平台接口测试方法、系统及计算机存储介质与流程

本发明涉及计算机领域,尤其涉及一种物联网平台接口测试方法、系统及计算机存储介质。



背景技术:

目前广泛使用的软件接口自动化测试技术,按照被测试对象的类型,主要分为web(worldwideweb,全球广域网),移动端app(application,应用程序),桌面应用程序,专用的网络设备等;按照接口协议类型,主要分为http协议的rest接口,webservice接口,soup接口,物联网mqtt(messagequeuingtelemetrytransport,消息队列遥测传输)等等。针对这些协议和接口,已经被广泛使用的测试技术和平台,如qtp(quicktestprofessional),postman,soupui,selenium,appium,它们都是只针对某个类型的个别接口测试,如qtp针对的是web网页测试,postman针对的是http/srest接口,appium针对的是移动端的app,无法同时对一个系统的多个类型接口同时进行测试。

而且没有软件有专门测试物联网接口的模块,基本上都是个人开发,使用的开发语言各异,没有统一的标准。目前的自动化测试,测试开发和测试人员基本没有分工,所有人都必须熟悉底层接口技术和协议,都要编写底层封装模块和业务测试脚本,对人员的技术要求高,企业的用人成本就高。

因此,需要提供一种物联网平台接口测试方法、系统及计算机存储介质来解决现有技术的不足。



技术实现要素:

为了解决现有技术中的问题,本发明提供了一种物联网平台接口测试方法、系统及计算机存储介质,可以实现在一个测试平台上面同时对多个不同类型接口进行测试。

本申请提供了一种物联网平台接口测试方法,包括:

获取接口封装模块的输入输出的格式;

按照测试用例的步骤对不同接口进行测试;

接收被测接口返回的数据,并将所述数据统一格式;

将统一格式后的数据与预设结果进行匹配,得到测试用例的测试结果。

进一步地,所述获取接口封装模块的输入输出的格式,包括:

将不同类型的接口和接口对应的调用协议进行封装,得到各接口封装模块;

将各个类型接口的输入数据进行有效数据提取,并编码成统一格式;

根据编码后的统一格式,将所述各接口封装模块设置统一的输入输出格式。

进一步地,所述测试用例的执行规则包括:给所述测试用例打标签,并运行包括预设标签的测试用例,和/或通过正则表达式运行所述测试用例,和/或按照测试用例存放分类的文件夹来运行。

进一步地,所述按照测试用例的步骤对不同接口进行测试,包括:

按照测试用例的预设执行规则搜索各个执行用例的脚本文件,确定对不同接口进行测试的测试用例;

按照接口类型运行所述测试用例,对不同接口进行测试。

进一步地,所述按照接口类型运行所述测试用例,对不同接口进行测试,包括:

发送请求数据给各个被测接口,调用与所述请求数据具有相同协议的被测接口。

本发明还提供了一种物联网平台接口测试系统,包括:

获取模块,用于获取接口封装模块的输入输出的格式;

测试模块,用于按照测试用例的步骤对不同接口进行测试;

接收模块,用于接收被测接口返回的数据,并将所述数据统一格式;

匹配模块,用于将统一格式后的数据与预设结果进行匹配,得到测试用例的测试结果。

进一步地,所述获取模块包括:

封装子模块,用于将不同类型的接口和接口对应的调用协议进行封装,得到各接口封装模块;

提取子模块,用于将各个类型接口的输入数据进行有效数据提取,并编码成统一格式;

设置子模块,用于根据编码后的统一格式,将所述各接口封装模块设置统一的输入输出格式。

进一步地,所述测试模块包括:

确定子模块,用于按照测试用例的预设执行规则搜索各个执行用例的脚本文件,确定对不同接口进行测试的测试用例;

测试子模块,用于按照接口类型运行所述测试用例,对不同接口进行测试。

进一步地,所述测试子模块,用于,

发送请求数据给各个被测接口,调用与所述请求数据具有相同协议的被测接口。

本发明还提供了一种计算机存储介质,所述计算机存储介质上存储有物联网平台接口测试方法程序,所述物联网平台接口测试方法程序被处理器执行时实现上述任一所述的物联网平台接口测试方法的步骤。

本发明的技术方案与最接近的现有技术相比具有如下优点:

本发明提供的技术方案首先获取接口封装模块的输入输出的格式,然后按照测试用例的步骤对不同接口进行测试,接收被测接口发挥的数据,并将返回的数据统一格式,最后将同一个时候的数据与预设结果进行匹配,得到测试用例的测试结果。本发明提供的技术方案通过将接口与接口对应的协议进行封装,然后按照测试用例的步骤对不同接口进行测试,实现在一个平台上对不同接口类型的测试。

附图说明

图1是本发明实施例中物联网平台接口测试方法流程图;

图2是本发明实施例中物联网平台接口测试系统示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所述,本公开提供了一种物联网平台接口测试方法,可以实现在一个测试平台上面同时对多个不同类型接口进行测试。该物联网平台接口测试方法可以包括以下步骤:

获取接口封装模块的输入输出的格式;

按照测试用例的步骤对不同接口进行测试;

接收被测接口返回的数据,并将所述数据统一格式;

将统一格式后的数据与预设结果进行匹配,得到测试用例的测试结果。

在本公开实施例中,首先获取接口封装模块的输入输出的格式,然后按照测试用例的步骤对不同接口进行测试,接收被测接口发挥的数据,并将返回的数据统一格式,最后将统一格式后的数据与预设结果进行匹配,得到测试用例的测试结果。本发明提供的技术方案通过将接口与接口对应的协议进行封装,然后按照测试用例的步骤对不同接口进行测试,实现在一个平台上对不同接口类型的测试。

进一步地,获取接口封装模块的输入输出的格式,具体包括:

将不同类型的接口和接口对应的调用协议进行封装,得到各接口封装模块;

将各个接口的输入数据进行有效数据提取,并编码成统一格式;

根据编码后的统一格式,将各接口封装模块设置统一的输入输出格式。

具体地,测试开发人员根据项目提供的接口文档,得到具体接口的描述信息,包括输入数据的格式和类型,接口的功能,接口的使用方法,输出的数据格式和类型。测试开发人员编写接口的封装模块,定义输入数据的统一格式,如常用的字典或者列表,将具体接口的调用方法以及过程封装起来,定义输出数据的统一格式,如返回码,描述信息等。不同类型的接口,输入数据和输出数据的格式都是统一的。所有模块提供统一的日志工具,统一的日志等级,日志格式,日志输出方式等,并且可以设置。对于一些常用的功能,测试开发人员可以根据功能的逻辑操作,再进行二次封装,提高代码的复用,减少上层测试人员的编码量。二次封装的功能可以是相同类型接口的,也可以不同类型接口同时进行操作,关注的是互相操作完成一个完整的功能。

进一步地,按照测试用例的步骤对不同接口进行测试,具体包括:

按照测试用例的预设执行规则搜索各个执行用例的脚本文件,确定对不同接口进行测试的测试用例;

按照接口类型运行所述测试用例,对不同接口进行测试。

其中,测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。

进一步地,按照接口类型运行测试用例,对不同接口进行测试,具体包括:

发送请求数据给各个被测接口,调用与请求数据具有相同协议的被测接口。

具体地,所有的测试用例脚本都可以按照业务系统测试进行分类分模块,具体的划分按实际情况,如物联网系统中可以分为app、web系统、设备等。测试用例的执行方法有多种,可以给脚本打标签,运行打了指定标签的测试用例,也可以通过正则表达式匹配测试用例文件名,还可以按照测试用例存放分类的文件夹来运行。用户运行测试的入口文件,程序自动按照指定的查找规则,搜索所有的脚本文件,找到所有符合规则的测试用例,然后按照顺序运行测试用例,运行过程中脚本自动发送请求数据到被测系统,平台根据测试用例调用的方法,自动调用相应协议的类型接口。

本公开的具体地原理如下:

测试开发人员根据项目提供的接口文档,得到具体接口的描述信息,包括输入数据的格式和类型,接口的功能,接口的使用方法,输出的数据格式和类型。测试开发人员编写接口的封装模块,定义输入数据的统一格式,如常用的字典或者列表,将具体接口的调用方法以及过程封装起来,定义输出数据的统一格式,如返回码,描述信息等。不同类型的接口,输入数据和输出数据的格式都是统一的。所有模块提供统一的日志工具,统一的日志等级,日志格式,日志输出方式等,并且可以设置。对于一些常用的功能,测试开发人员可以根据功能的逻辑操作,再进行二次封装,提高代码的复用,减少上层测试人员的编码量。二次封装的功能可以是相同类型接口的,也可以不同类型接口同时进行操作,关注的是互相操作完成一个完整的功能。

测试人员根据接口文档编写测试用例,从测试开发人员那里得到接口封装模块输入输出数据的规范说明,按照测试用例步骤,通过脚本编码,实现测试用例。测试人员不需要熟悉具体接口的调用方法,不需要熟悉接口的操作过程,更加不需要熟悉底层接口协议的原理,他只需要知道提供的模块输入数据的格式类型,输入特定数据后,得到期望的格式化数据结果就可以了。测试人员的测试用例编码调用是:app登录-下订单-app查询订单-web系统查询订单-物联网设备mqtt接收订单。每一个步骤就是一个方法的调用,每一个步骤都会有结果进行判断,这样测试人员就只需要更多地关注具体业务系统的业务流程,关注点在于怎么测试系统,而不是怎么去编写脚本。对测试人员的编码能力,技术能力的要求就相对低一点。

其中,所有的测试用例脚本都可以按照业务系统测试进行分类分模块,具体的划分按实际情况,如物联网系统中可以分为app、web系统、设备等。测试用例的执行方法有多种,可以给脚本打标签,运行打了指定标签的测试用例,也可以通过正则表达式匹配测试用例文件名,还可以按照测试用例存放分类的文件夹来运行。用户运行测试的入口文件,程序自动按照指定的查找规则,搜索所有的脚本文件,找到所有符合规则的测试用例,然后按照顺序运行测试用例,运行过程中脚本自动发送请求数据到被测系统,平台根据测试用例调用的方法,自动调用相应协议的类型接口,然后接收被测系统接口返回的数据并且统一格式化,再与期望的结果进行匹配,最终得出测试用例的测试结果。

测试用例执行过程中,会根据配置自动把测试过程中的操作过程以及数据输出到控制台或者日志文件,或者两者同时输出,在测试步骤中还可以调用截图方法,对屏幕进行截图保存。每一个测试用例的结果都会保存到临时的文本文件或者xml文件。在所有测试用例都运行完后,通过测试报告生成工具,将生成的结果文件统一格式化,输出一份html的测试报告,测试报告的内容包括表格、图形化展示、结果分类、测试数据的超链接、测试日志的超链接等,可用于向上级汇报或者对外展示。

在本公开另一实施例中,还提供了一种物联网平台接口测试系统,该物联网平台接口测试系统可以包括以下模块:获取模块、测试模块、接收模块和匹配模块。

该获取模块被配置为获取接口封装模块的输入输出的格式。

该测试模块被配置为按照测试用例的步骤对不同接口进行测试。

该接收模块被配置为接收被测接口返回的数据,并将所述数据统一格式。

该匹配模块被配置为将统一格式后的数据与预设结果进行匹配,得到测试用例的测试结果。

进一步地,获取模块包括:封装子模块、提取子模块和设置子模块。

该封装子模块被配置为将不同类型的接口和接口对应的调用协议进行封装,得到各接口封装模块。

该提取子模块被配置为将各个类型接口的输入数据进行有效数据提取,并编码成统一格式。

该设置子模块被配置为根据编码后的统一格式,将所述各接口封装模块设置统一的输入输出格式。

进一步地,测试模块包括:确定子模块和测试子模块。

该确定子模块被配置为按照测试用例的预设执行规则搜索各个执行用例的脚本文件,确定对不同接口进行测设的测试用例。

测试子模块被配置为按照接口类型运行所述测试用例,对不同接口进行测设。

进一步地,测试子模块,具体用于,

发送请求数据给各个被测接口,调用与所述请求数据具有相同协议的被测接口。

在本公开另一实施例中,还提供了一种计算机存储介质,该计算机存储介质上存储有物联网平台接口测试方法程序,上述物联网平台接口测试方法程序被处理器执行时实现下述任一所述的物联网平台接口测试方法的步骤。

获取接口封装模块的输入输出的格式;

按照测试用例的步骤对不同接口进行测试;

接收被测接口返回的数据,并将所述数据统一格式;

将统一格式后的数据与预设结果进行匹配,得到测试用例的测试结果。

需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。

可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(applicationspecificintegratedcircuits,asic)、数字信号处理器(digitalsignalprocessing,dsp)、数字信号处理设备(dspdevice,dspd)、可编程逻辑设备(programmablelogicdevice,pld)、现场可编程门阵列(field-programmablegatearray,fpga)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。

对于软件实现,可通过执行本文所述功能的单元来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1