CN111104313A - 一种rest api接口的自动化测试方法、系统及设备 - Google Patents

一种rest api接口的自动化测试方法、系统及设备 Download PDF

Info

Publication number
CN111104313A
CN111104313A CN201911151438.9A CN201911151438A CN111104313A CN 111104313 A CN111104313 A CN 111104313A CN 201911151438 A CN201911151438 A CN 201911151438A CN 111104313 A CN111104313 A CN 111104313A
Authority
CN
China
Prior art keywords
rest api
query
query result
interface
information
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.)
Granted
Application number
CN201911151438.9A
Other languages
English (en)
Other versions
CN111104313B (zh
Inventor
高月峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN201911151438.9A priority Critical patent/CN111104313B/zh
Publication of CN111104313A publication Critical patent/CN111104313A/zh
Application granted granted Critical
Publication of CN111104313B publication Critical patent/CN111104313B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases

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

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

Description

一种REST API接口的自动化测试方法、系统及设备
技术领域
本发明涉及存储技术领域,更具体的说是涉及一种REST API接口的自动化测试方法、系统及设备。
背景技术
REST(Representational State Transfer)是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。
Rest API是一种基于REST(Representational State Transfer)标准的开放接口。第三方开发者能使用Rest API授权访问开放的存储资源,例如:告警查询、性能监控、资源分配等。
Rest API的特点:
1.提供标准的集成方案,有利于第三方系统快速集成。
2.接口需要授权使用,访问安全,支持HTTPS访问。
3.采用JSON(JavaScript Object Notation)数据格式进行数据交互,格式简单,易于读写,相比XML占用的网络流量较小
REST API接口支持GET,POST,PUT,DELETE四种方法。
1.GET请求主要用于查询存储资源对象。
2.POST请求主要用于创建和初始化存储资源对象。
3.PUT请求主要用于修改存储资源对象属性和对存储资源对象的特殊操作。
4.DELETE主要用于删除存储资源对象。
目前浪潮存储AS5500G5已经实现了对REST API接口的支持。为保证REST API接口可用,需要在存储AS5500G5上进行测试且为了提高测试效率,因此需要设计一种REST API接口的自动化测试方法。
发明内容
针对以上问题,本发明的目的在于提供一种REST API接口的自动化测试方法、系统及设备。
本发明为实现上述目的,通过以下技术方案实现:一种REST API接口的自动化测试方法,包括:
通过REST API接口调用指定接口查询预设信息;
以JSON报文的形式返回查询结果,并通过解析JSON报文得到各个字段的对应值;
远程登陆至存储主机;
使用后台命令查询预设信息,并通过解析获取各个字段的对应值;
将后台命令查询结果与JSON报文进行对比,如果后台命令查询结果与JSON报文各字段对应,则测试通过。
进一步,所述查询预设信息包括:查询池信息或查询卷信息。
进一步,所述通过REST API接口调用指定接口查询预设信息包括:
启动REST程序;
调用REST API接口登录;
判断是否登录成功,若登录成功,则获取登录成功后返回的token值;若登录失败,则测试失败并记录错误信息。
进一步,所述以JSON报文的形式返回查询结果,并通过解析JSON报文得到各个字段的对应值包括:
使用获取的token值查询指定的REST API查询接口;
判断是否查询成功,若查询成功,则解析JSON报文并获取各个字段的对应值;
若查询失败,则测试失败并记录错误信息。
进一步,所述使用后台命令查询预设信息,并通过解析获取各个字段的对应值包括:
使用CIL命令查询预设状态信息;
解析查询结果,获取各字段对应值。
进一步,所述将后台命令查询结果与JSON报文进行对比,如果后台命令查询结果与JSON报文各字段对应,则测试通过包括:
将CIL命令行查询结果与REST API查询结果比对;
判断查询结果是否一致;
若是,则测试通过;若否,则测试失败,并记录不一致信息。
相应的,本发明还公开了一种REST API接口的自动化测试系统,包括:
第一查询单元,用于通过REST API接口调用指定接口查询预设信息;
报文解析单元,用于以JSON报文的形式返回查询结果,并通过解析JSON报文得到各个字段的对应值;
远程登录单元,用于远程登陆至存储主机;
第二查询单元,用于使用后台命令查询预设信息,并通过解析获取各个字段的对应值;
查询结果比对判定单元,用于将后台命令查询结果与JSON报文进行对比,如果后台命令查询结果与JSON报文各字段对应,则测试通过。
相应的,本发明还公开了一种REST API接口的自动化测试设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上文任一项所述REST API接口的自动化测试方法步骤。
对比现有技术,本发明有益效果在于:本发明提供了一种REST API接口的自动化测试方法、系统及设备,通过REST API接口调用指定接口查询信息,如查询池信息、卷信息等。查询结果会以JSON报文的形式返回,通过解析JSON报文得到各个字段的对应值。然后远程登陆存储主机,使用CLI命令查询对应信息,将CLI命令查询结果与JSON报文进行对比,如果CLI查询结果与JSON报文各字段对应,则测试通过。
本发明的自动化测试过程通过python脚本实现,使用python中自带的包paramiko实现了通过程序远程登陆存储并执行命令,并使用正则表达式解析命令行返回的内容。通过requests包实现了调用Rest API接口并获取报文,并使用JSON函数对返回报文进行解析。同时程序在执行过程中,会将调用的接口、返回的报文、命令行输出、对比结果等内容记录在日志中,方便对测试结果进行记录,并对失败原因进行分析。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
附图1是本发明的方法流程图。
附图2是本发明的系统结构图。
具体实施方式
下面结合附图对本发明的具体实施方式做出说明。
如图1所示的一种REST API接口的自动化测试方法,包括:
启动REST程序。
调用REST API接口登录,查询池信息或查询卷信息。
判断是否登录成功,若登录成功,则获取登录成功后返回的token值;若登录失败,则测试失败并记录错误信息。
使用获取的token值查询指定的REST API查询接口。
判断是否查询成功,若查询成功,则解析JSON报文并获取各个字段的对应值;若查询失败,则测试失败并记录错误信息。
远程登陆至存储主机。
使用CIL命令查询预设状态信息。
解析查询结果,获取各字段对应值。
将CIL命令行查询结果与REST API查询结果比对。
判断查询结果是否一致。
若是,则测试通过;若否,则测试失败,并记录不一致信息。
基于上述实施例提供的一种REST API接口的自动化测试方法,以查询指定的池信息为例:
1.首先使用POST方法,登陆存储,使用的URI如下:
POST https://${IP_addr}:${PortID}/redfish/v1/SessionService/Sessions
返回的JSON报文如下,其中Id字段为token值:
Figure BDA0002283645010000051
Figure BDA0002283645010000061
2.使用获取的token作为报文头,使用GET方法获取池信息使用的URI如下:
GET https://${IP_addr}:${PortID}/redfish/v1/StorageServices/Cluster_1/StoragePools/${POOL_ID}
返回的JSON报文如下:
Figure BDA0002283645010000062
Figure BDA0002283645010000071
Figure BDA0002283645010000081
Figure BDA0002283645010000091
3.远程连接至存储机器,使用命令行查询池信息,返回的结果如下:
[10:48:34]newinstall:~#lsmdisk-delim,0
id,0
name,mdisk0
status,online
mode,array
mdisk_grp_id,0
mdisk_grp_name,Pool0
capacity,558.4GB
quorum_index,
block_size,
controller_name,
ctrl_type,
ctrl_WWNN,
controller_id,
path_count,
max_path_count,
ctrl_LUN_#,
UID,
preferred_WWPN,
active_WWPN,
fast_write_state,empty
raid_status,initting
raid_level,raid10
redundancy,1
strip_size,256
spare_goal,0
spare_protection_min,0
balanced,exact
tier,tier_enterprise
slow_write_priority,latency
fabric_type,
site_id,
site_name,
in_tier_load,
encrypt,no
distributed,no
drive_class_id,
drive_count,2
stripe_width,2
rebuild_areas_total,
rebuild_areas_available,
rebuild_areas_goal,
dedupe,no
preferred_iscsi_port_id,
active_iscsi_port_id,
replacement_date,
4.根据下表中的对应关系对比JSON报文与命令行结果是否一致:
Figure BDA0002283645010000111
Figure BDA0002283645010000121
Figure BDA0002283645010000131
Figure BDA0002283645010000141
相应的,如图2所示,本发明还公开了一种REST API接口的自动化测试系统,包括:
第一查询单元,用于通过REST API接口调用指定接口查询预设信息。
报文解析单元,用于以JSON报文的形式返回查询结果,并通过解析JSON报文得到各个字段的对应值。
远程登录单元,用于远程登陆至存储主机。
第二查询单元,用于使用后台命令查询预设信息,并通过解析获取各个字段的对应值。
查询结果比对判定单元,用于将后台命令查询结果与JSON报文进行对比,如果后台命令查询结果与JSON报文各字段对应,则测试通过。
相应的,本发明还公开了一种REST API接口的自动化测试设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上文任一项所述REST API接口的自动化测试方法步骤。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统、系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。
同理,在本发明各个实施例中的各处理单元可以集成在一个功能模块中,也可以是各个处理单元物理存在,也可以两个或两个以上处理单元集成在一个功能模块中。
结合附图和具体实施例,对本发明作进一步说明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所限定的范围。

Claims (8)

1.一种REST API接口的自动化测试方法,其特征在于,包括:
通过REST API接口调用指定接口查询预设信息;
以JSON报文的形式返回查询结果,并通过解析JSON报文得到各个字段的对应值;远程登陆至存储主机;
使用后台命令查询预设信息,并通过解析获取各个字段的对应值;
将后台命令查询结果与JSON报文进行对比,如果后台命令查询结果与JSON报文各字段对应,则测试通过。
2.根据权利要求1所述的REST API接口的自动化测试方法,其特征在于,所述查询预设信息包括:查询池信息或查询卷信息。
3.根据权利要求1所述的REST API接口的自动化测试方法,其特征在于,所述通过RESTAPI接口调用指定接口查询预设信息包括:
启动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接口的自动化测试方法步骤。
CN201911151438.9A 2019-11-21 2019-11-21 一种rest api接口的自动化测试方法、系统及设备 Active CN111104313B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911151438.9A CN111104313B (zh) 2019-11-21 2019-11-21 一种rest api接口的自动化测试方法、系统及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911151438.9A CN111104313B (zh) 2019-11-21 2019-11-21 一种rest api接口的自动化测试方法、系统及设备

Publications (2)

Publication Number Publication Date
CN111104313A true CN111104313A (zh) 2020-05-05
CN111104313B CN111104313B (zh) 2024-04-02

Family

ID=70420761

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911151438.9A Active CN111104313B (zh) 2019-11-21 2019-11-21 一种rest api接口的自动化测试方法、系统及设备

Country Status (1)

Country Link
CN (1) CN111104313B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111858319A (zh) * 2020-07-02 2020-10-30 天筑科技股份有限公司 一种监控单元的测试方法及装置
CN113722191A (zh) * 2021-11-04 2021-11-30 企查查科技有限公司 页面监视方法、装置、设备和计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107562623A (zh) * 2017-08-29 2018-01-09 郑州云海信息技术有限公司 一种rest api自动化测试方法及系统
CN109101229A (zh) * 2018-07-26 2018-12-28 郑州云海信息技术有限公司 一种面向对象的代码自动生成方法、装置及设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107562623A (zh) * 2017-08-29 2018-01-09 郑州云海信息技术有限公司 一种rest api自动化测试方法及系统
CN109101229A (zh) * 2018-07-26 2018-12-28 郑州云海信息技术有限公司 一种面向对象的代码自动生成方法、装置及设备

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111858319A (zh) * 2020-07-02 2020-10-30 天筑科技股份有限公司 一种监控单元的测试方法及装置
CN113722191A (zh) * 2021-11-04 2021-11-30 企查查科技有限公司 页面监视方法、装置、设备和计算机可读存储介质
CN113722191B (zh) * 2021-11-04 2022-03-04 企查查科技有限公司 页面监视方法、装置、设备和计算机可读存储介质

Also Published As

Publication number Publication date
CN111104313B (zh) 2024-04-02

Similar Documents

Publication Publication Date Title
US10824474B1 (en) Dynamically allocating resources for interdependent portions of distributed data processing programs
US20170300396A1 (en) Allocating data based on hardware faults
US9426219B1 (en) Efficient multi-part upload for a data warehouse
CN112130748B (zh) 一种数据访问方法、网卡及服务器
US10397051B1 (en) Configuration and testing of network-based service platform resources using a service platform specific language
CN110046026B (zh) 云主机指定虚拟磁盘限速方法、计算设备及云平台
US11947842B2 (en) Method for writing data in append mode, device and storage medium
CN111104313B (zh) 一种rest api接口的自动化测试方法、系统及设备
CN108132991A (zh) 一种h5页面加载方法及系统
CN107301021B (zh) 一种利用ssd缓存对lun进行加速的方法和装置
CN110851318A (zh) 一种服务器管理系统下的串口日志收集方法、系统及设备
US11397711B1 (en) Proxy-based database scaling
US11461250B2 (en) Tuning data storage equipment based on comparing observed I/O statistics with expected I/O statistics which are defined by operating settings that control operation
US9880786B1 (en) Multi-tiered elastic block device performance
US10637915B1 (en) Storage services configured for storage-oriented applications
EP4357949A1 (en) Authentication method and apparatus, and storage system
US10749772B1 (en) Data reconciliation in a distributed data storage network
CN109815081A (zh) 数据库性能的远程收集方法及收集装置
US11068371B2 (en) Method and apparatus for simulating slow storage disk
US10452681B1 (en) Replication group pools for fast provisioning
TWI751414B (zh) 雲端資料庫之管理系統及其方法
CN111241437B (zh) 数据处理方法、装置、服务端以及存储介质
US11385948B1 (en) Distributed database exception handling
US10419503B1 (en) Dynamic data tailing
KR100970207B1 (ko) 이동 통신 서비스의 인증 시스템 및 그 인증 방법

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