首页 / 专利库 / 专利权 / 权利要求 / 一种REST API接口的自动化测试方法、系统及设备

一种REST API接口的自动化测试方法、系统及设备

阅读:3发布:2021-03-16

专利汇可以提供一种REST API接口的自动化测试方法、系统及设备专利检索,专利查询,专利分析的服务。并且本 发明 提出的一种REST API 接口 的自动化测试方法、系统及设备,通过REST API接口调用 指定 接口查询信息,如查询池信息、卷信息等。查询结果会以JSON报文的形式返回,通过解析JSON报文得到各个字段的对应值。然后远程登陆存储主机,使用CLI命令查询对应信息,将CLI命令查询结果与JSON报文进行对比,如果CLI查询结果与JSON报文各字段对应,则测试通过。,下面是一种REST API接口的自动化测试方法、系统及设备专利的具体信息内容。

1.一种REST API接口的自动化测试方法,其特征在于,包括:
通过REST API接口调用指定接口查询预设信息;
以JSON报文的形式返回查询结果,并通过解析JSON报文得到各个字段的对应值;远程登陆至存储主机;
使用后台命令查询预设信息,并通过解析获取各个字段的对应值;
将后台命令查询结果与JSON报文进行对比,如果后台命令查询结果与JSON报文各字段对应,则测试通过。
2.根据权利要求1所述的REST API接口的自动化测试方法,其特征在于,所述查询预设信息包括:查询池信息或查询卷信息。
3.根据权利要求1所述的REST API接口的自动化测试方法,其特征在于,所述通过REST API接口调用指定接口查询预设信息包括:
启动REST程序;
调用REST API接口登录;
判断是否登录成功,若登录成功,则获取登录成功后返回的token值;若登录失败,则测试失败并记录错误信息。
4.根据权利要求3所述的REST API接口的自动化测试方法,其特征在于,所述以JSON报文的形式返回查询结果,并通过解析JSON报文得到各个字段的对应值包括:
使用获取的token值查询指定的REST API查询接口;
判断是否查询成功,若查询成功,则解析JSON报文并获取各个字段的对应值;若查询失败,则测试失败并记录错误信息。
5.根据权利要求1所述的REST API接口的自动化测试方法,其特征在于,所述使用后台命令查询预设信息,并通过解析获取各个字段的对应值包括:使用CIL命令查询预设状态信息;
解析查询结果,获取各字段对应值。
6.根据权利要求5所述的REST API接口的自动化测试方法,其特征在于,所述将后台命令查询结果与JSON报文进行对比,如果后台命令查询结果与JSON报文各字段对应,则测试通过包括:
将CIL命令行查询结果与REST API查询结果比对;
判断查询结果是否一致;
若是,则测试通过;若否,则测试失败,并记录不一致信息。
7.一种REST API接口的自动化测试系统,其特征在于,包括:
第一查询单元,用于通过REST API接口调用指定接口查询预设信息;
报文解析单元,用于以JSON报文的形式返回查询结果,并通过解析JSON报文得到各个字段的对应值;
远程登录单元,用于远程登陆至存储主机;
第二查询单元,用于使用后台命令查询预设信息,并通过解析获取各个字段的对应值;
查询结果比对判定单元,用于将后台命令查询结果与JSON报文进行对比,如果后台命令查询结果与JSON报文各字段对应,则测试通过。
8.一种REST API接口的自动化测试设备,其特征在于,包括:
存储器,用于存储计算机程序
处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述REST API接口的自动化测试方法步骤。

说明书全文

一种REST API接口的自动化测试方法、系统及设备

技术领域

[0001] 本发明涉及存储技术领域,更具体的说是涉及一种REST API接口的自动化测试方法、系统及设备。

背景技术

[0002] REST(Representational State Transfer)是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。
[0003] Rest API是一种基于REST(Representational State Transfer)标准的开放接口。第三方开发者能使用Rest API授权访问开放的存储资源,例如:告警查询、性能监控、资源分配等。
[0004] Rest API的特点:
[0005] 1.提供标准的集成方案,有利于第三方系统快速集成。
[0006] 2.接口需要授权使用,访问安全,支持HTTPS访问。
[0007] 3.采用JSON(JavaScript Object Notation)数据格式进行数据交互,格式简单,易于读写,相比XML占用的网络流量较小
[0008] REST API接口支持GET,POST,PUT,DELETE四种方法。
[0009] 1.GET请求主要用于查询存储资源对象。
[0010] 2.POST请求主要用于创建和初始化存储资源对象。
[0011] 3.PUT请求主要用于修改存储资源对象属性和对存储资源对象的特殊操作。
[0012] 4.DELETE主要用于删除存储资源对象。
[0013] 目前浪潮存储AS5500G5已经实现了对REST API接口的支持。为保证REST API接口可用,需要在存储AS5500G5上进行测试且为了提高测试效率,因此需要设计一种REST API接口的自动化测试方法。

发明内容

[0014] 针对以上问题,本发明的目的在于提供一种REST API接口的自动化测试方法、系统及设备。
[0015] 本发明为实现上述目的,通过以下技术方案实现:一种REST API接口的自动化测试方法,包括:
[0016] 通过REST API接口调用指定接口查询预设信息;
[0017] 以JSON报文的形式返回查询结果,并通过解析JSON报文得到各个字段的对应值;
[0018] 远程登陆至存储主机;
[0019] 使用后台命令查询预设信息,并通过解析获取各个字段的对应值;
[0020] 将后台命令查询结果与JSON报文进行对比,如果后台命令查询结果与JSON报文各字段对应,则测试通过。
[0021] 进一步,所述查询预设信息包括:查询池信息或查询卷信息。
[0022] 进一步,所述通过REST API接口调用指定接口查询预设信息包括:
[0023] 启动REST程序;
[0024] 调用REST API接口登录;
[0025] 判断是否登录成功,若登录成功,则获取登录成功后返回的token值;若登录失败,则测试失败并记录错误信息。
[0026] 进一步,所述以JSON报文的形式返回查询结果,并通过解析JSON报文得到各个字段的对应值包括:
[0027] 使用获取的token值查询指定的REST API查询接口;
[0028] 判断是否查询成功,若查询成功,则解析JSON报文并获取各个字段的对应值;
[0029] 若查询失败,则测试失败并记录错误信息。
[0030] 进一步,所述使用后台命令查询预设信息,并通过解析获取各个字段的对应值包括:
[0031] 使用CIL命令查询预设状态信息;
[0032] 解析查询结果,获取各字段对应值。
[0033] 进一步,所述将后台命令查询结果与JSON报文进行对比,如果后台命令查询结果与JSON报文各字段对应,则测试通过包括:
[0034] 将CIL命令行查询结果与REST API查询结果比对;
[0035] 判断查询结果是否一致;
[0036] 若是,则测试通过;若否,则测试失败,并记录不一致信息。
[0037] 相应的,本发明还公开了一种REST API接口的自动化测试系统,包括:
[0038] 第一查询单元,用于通过REST API接口调用指定接口查询预设信息;
[0039] 报文解析单元,用于以JSON报文的形式返回查询结果,并通过解析JSON报文得到各个字段的对应值;
[0040] 远程登录单元,用于远程登陆至存储主机;
[0041] 第二查询单元,用于使用后台命令查询预设信息,并通过解析获取各个字段的对应值;
[0042] 查询结果比对判定单元,用于将后台命令查询结果与JSON报文进行对比,如果后台命令查询结果与JSON报文各字段对应,则测试通过。
[0043] 相应的,本发明还公开了一种REST API接口的自动化测试设备,包括:
[0044] 存储器,用于存储计算机程序
[0045] 处理器,用于执行所述计算机程序时实现如上文任一项所述REST API接口的自动化测试方法步骤。
[0046] 对比现有技术,本发明有益效果在于:本发明提供了一种REST API接口的自动化测试方法、系统及设备,通过REST API接口调用指定接口查询信息,如查询池信息、卷信息等。查询结果会以JSON报文的形式返回,通过解析JSON报文得到各个字段的对应值。然后远程登陆存储主机,使用CLI命令查询对应信息,将CLI命令查询结果与JSON报文进行对比,如果CLI查询结果与JSON报文各字段对应,则测试通过。
[0047] 本发明的自动化测试过程通过python脚本实现,使用python中自带的包paramiko实现了通过程序远程登陆存储并执行命令,并使用正则表达式解析命令行返回的内容。通过requests包实现了调用Rest API接口并获取报文,并使用JSON函数对返回报文进行解析。同时程序在执行过程中,会将调用的接口、返回的报文、命令行输出、对比结果等内容记录在日志中,方便对测试结果进行记录,并对失败原因进行分析。
[0048] 由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。附图说明
[0049] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0050] 附图1是本发明的方法流程图
[0051] 附图2是本发明的系统结构图。

具体实施方式

[0052] 下面结合附图对本发明的具体实施方式做出说明。
[0053] 如图1所示的一种REST API接口的自动化测试方法,包括:
[0054] 启动REST程序。
[0055] 调用REST API接口登录,查询池信息或查询卷信息。
[0056] 判断是否登录成功,若登录成功,则获取登录成功后返回的token值;若登录失败,则测试失败并记录错误信息。
[0057] 使用获取的token值查询指定的REST API查询接口。
[0058] 判断是否查询成功,若查询成功,则解析JSON报文并获取各个字段的对应值;若查询失败,则测试失败并记录错误信息。
[0059] 远程登陆至存储主机。
[0060] 使用CIL命令查询预设状态信息。
[0061] 解析查询结果,获取各字段对应值。
[0062] 将CIL命令行查询结果与REST API查询结果比对。
[0063] 判断查询结果是否一致。
[0064] 若是,则测试通过;若否,则测试失败,并记录不一致信息。
[0065] 基于上述实施例提供的一种REST API接口的自动化测试方法,以查询指定的池信息为例:
[0066] 1.首先使用POST方法,登陆存储,使用的URI如下:
[0067] POST https://${IP_addr}:${PortID}/redfish/v1/SessionService/Sessions[0068] 返回的JSON报文如下,其中Id字段为token值:
[0069]
[0070]
[0071] 2.使用获取的token作为报文头,使用GET方法获取池信息使用的URI如下:
[0072] GET https://${IP_addr}:${PortID}/redfish/v1/StorageServices/Cluster_1/StoragePools/${POOL_ID}
[0073] 返回的JSON报文如下:
[0074]
[0075]
[0076]
[0077]
[0078] 3.远程连接至存储机器,使用命令行查询池信息,返回的结果如下:
[0079] [10:48:34]newinstall:~#lsmdisk-delim,0
[0080] id,0
[0081] name,mdisk0
[0082] status,online
[0083] mode,array
[0084] mdisk_grp_id,0
[0085] mdisk_grp_name,Pool0
[0086] capacity,558.4GB
[0087] quorum_index,
[0088] block_size,
[0089] controller_name,
[0090] ctrl_type,
[0091] ctrl_WWNN,
[0092] controller_id,
[0093] path_count,
[0094] max_path_count,
[0095] ctrl_LUN_#,
[0096] UID,
[0097] preferred_WWPN,
[0098] active_WWPN,
[0099] fast_write_state,empty
[0100] raid_status,initting
[0101] raid_level,raid10
[0102] redundancy,1
[0103] strip_size,256
[0104] spare_goal,0
[0105] spare_protection_min,0
[0106] balanced,exact
[0107] tier,tier_enterprise
[0108] slow_write_priority,latency
[0109] fabric_type,
[0110] site_id,
[0111] site_name,
[0112] in_tier_load,
[0113] encrypt,no
[0114] distributed,no
[0115] drive_class_id,
[0116] drive_count,2
[0117] stripe_width,2
[0118] rebuild_areas_total,
[0119] rebuild_areas_available,
[0120] rebuild_areas_goal,
[0121] dedupe,no
[0122] preferred_iscsi_port_id,
[0123] active_iscsi_port_id,
[0124] replacement_date,
[0125] 4.根据下表中的对应关系对比JSON报文与命令行结果是否一致:
[0126]
[0127]
[0128]
[0129]
[0130] 相应的,如图2所示,本发明还公开了一种REST API接口的自动化测试系统,包括:
[0131] 第一查询单元,用于通过REST API接口调用指定接口查询预设信息。
[0132] 报文解析单元,用于以JSON报文的形式返回查询结果,并通过解析JSON报文得到各个字段的对应值。
[0133] 远程登录单元,用于远程登陆至存储主机。
[0134] 第二查询单元,用于使用后台命令查询预设信息,并通过解析获取各个字段的对应值。
[0135] 查询结果比对判定单元,用于将后台命令查询结果与JSON报文进行对比,如果后台命令查询结果与JSON报文各字段对应,则测试通过。
[0136] 相应的,本发明还公开了一种REST API接口的自动化测试设备,包括:
[0137] 存储器,用于存储计算机程序;
[0138] 处理器,用于执行所述计算机程序时实现如上文任一项所述REST API接口的自动化测试方法步骤。
[0139] 本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如U盘、移动硬盘只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
[0140] 在本发明所提供的几个实施例中,应该理解到,所揭露的系统、系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0141] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0142] 另外,在本发明各个实施例中的各功能模可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。
[0143] 同理,在本发明各个实施例中的各处理单元可以集成在一个功能模块中,也可以是各个处理单元物理存在,也可以两个或两个以上处理单元集成在一个功能模块中。
[0144] 结合附图和具体实施例,对本发明作进一步说明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所限定的范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈