首页> 中国专利> 一种用于服务开放平台的API测试方法及系统

一种用于服务开放平台的API测试方法及系统

摘要

本发明公开了一种用于服务开放平台的API测试方法及系统,包括:基于Kubernetes命名空间将生产环境网关与沙盒环境网关进行隔离,确定沙盒环境网关的最小资源需求,并根据所述最小资源需求基于yaml文件实现沙盒环境网关服务的快速部署;发布者通过服务开放平台将已在生产环境创建的API同步到沙盒环境;当发布者进行API测试时,在沙盒环境网关创建匿名用户,使得发布者利用所述匿名角色通过修改参数值发起服务调用请求,并获取服务调用响应信息,以确定API调试结果;当调用者进行API测试时,在沙盒环境网关创建临时用户,使得调用能利用所述临时用户角色通过修改参数值发起服务调用请求,并获取服务调用响应信息,以使得调用者确定API测试结果。

著录项

  • 公开/公告号CN112632527A

    专利类型发明专利

  • 公开/公告日2021-04-09

    原文格式PDF

  • 申请/专利权人 航天信息股份有限公司;

    申请/专利号CN202011509272.6

  • 申请日2020-12-18

  • 分类号G06F21/53(20130101);G06F11/36(20060101);

  • 代理机构11266 北京工信联合知识产权代理有限公司;

  • 代理人姜丽辉

  • 地址 100195 北京市海淀区杏石口路甲18号

  • 入库时间 2023-06-19 10:32:14

说明书

技术领域

本发明涉及测试技术领域,并且更具体地,涉及一种用于服务开放平台的API测试方法及系统。

背景技术

服务开放平台致力于将人工智能、大数据分析等领域的共性技术集中高效运维运营、并以API形式对外开放共享,有效解决基础能力重复开发、研发资源浪费、耗费人力进行服务运维等问题。服务开放平台主要为API调用者、API开发者两种角色的用户提供API发布、测试、授权、下线等全生命周期管理及运营数据统计分析功能。服务开放平台的核心是API网关,API网关负责接管所有API调用的入口流量,将用户请求转发给后端的服务器。API网关同时提供鉴权认证、流量限制、权限控制、熔断、协议转换、日志及监控等功能。

现有服务开放平台的API测试功能基本采用如下两种方案:1)用户可直接在平台界面输入参数或上传文件进行API调用,此过程中不进行(或进行用户无感知的)认证且不限制调用量。用户通过此方案可快速了解API功能,但由于不对用户进行身份认证,用户无法直观了解API调用时如何传入认证参数。2)应用授权后才可使用分配的认证信息在平台进行API测试。此方案需经过繁琐的API订阅、授权流程,对用户不够友好。

因此,需要一种能快速简便地进行API测试的方法。

发明内容

本发明提出一种用于服务开放平台的API测试方法及系统,以解决如何快速简便地进行API测试的问题。

为了解决上述问题,根据本发明的一个方面,提供了一种用于服务开放平台的API测试方法,所述方法包括:

基于Kubernetes命名空间将生产环境网关与沙盒环境网关进行隔离,确定沙盒环境网关的最小资源需求,并根据所述最小资源需求基于yaml文件实现沙盒环境网关服务的快速部署;

发布者通过服务开放平台将已在生产环境创建的API同步到沙盒环境;

当发布者进行API测试时,在沙盒环境网关创建匿名用户,使得发布者利用所述匿名角色通过修改参数值发起服务调用请求,通过沙盒环境网关将所述服务调用请求转发到后端服务,并获取服务调用响应信息,以使得发布者根据所述响应信息确定API调试结果;

当调用者进行API测试时,在沙盒环境网关创建临时用户,为所述临时用户赋予API访问权限,使得调用能利用所述临时用户角色通过修改参数值发起服务调用请求,通过沙盒环境网关将所述服务调用请求转发到后端服务,并获取服务调用响应信息,以使得调用者根据所述响应信息确定API测试结果。

优选地,其中所述确定沙盒环境网关的最小资源需求,包括:

基于所述生产环境的资源使用情况、历史调用统计数据和沙盒环境服务调用的最大并发限制,确定沙盒环境网关的CPU、内存和实例个数。

优选地,其中所述方法利用如下方式将已在生产环境创建的API同步到沙盒环境,包括:

从数据库获取API名称、后端地址、前端访问地址和认证方式,基于相应API信息在沙盒环境网关创建API所需的target、upstream、service和route,并绑定API认证方式对应的插件和访问流量限制插件;

以及在当API存在测试环境后端访问地址时,在将API同步沙盒环境时,将后端地址设置为测试环境后端地址。

优选地,其中所述响应信息包括:响应码信息、响应延时信息、响应Header信息和响应body信息。

优选地,其中所述方法还包括:

为所述匿名用户创建对应的流量限制插件;

为所述临时用户创建对应的认证插件和流量限制插件。

优选地,其中所述方法还包括:

设定服务请求地址对应的沙盒环境API的访问地址、参数值和认证信息并自动生成预设语言的沙盒环境服务访问sdk,同时调用者通过将服务请求地址改为生产环境API的访问地址,将认证信息改为平台授权后获取的认证信息,实现利用sdk调用生产环境API。

优选地,其中所述方法还包括:

沙盒环境网关通过logstash将API测试功能的访问日志导入ElasticSearch,以对访问日志实时监测,并在当峰值访问量或访问流量超过沙盒环境网关的能力时,进行告警,使得管理员能及时对沙盒环境网关进行弹性扩展实例。

根据本发明的另一个方面,提供了一种用于服务开放平台的API测试系统,所述系统包括:

沙盒环境网关搭建单元,用于基于Kubernetes命名空间将生产环境网关与沙盒环境网关进行隔离,确定沙盒环境网关的最小资源需求,并根据所述最小资源需求基于yaml文件实现沙盒环境网关服务的快速部署;

API同步单元,用于使发布者通过服务开放平台将已在生产环境创建的API同步到沙盒环境;

API调试单元,用于当发布者进行API测试时,在沙盒环境网关创建匿名用户,使得发布者利用所述匿名角色通过修改参数值发起服务调用请求,通过沙盒环境网关将所述服务调用请求转发到后端服务,并获取服务调用响应信息,以使得发布者根据所述响应信息确定API调试结果;

API测试单元,用于当调用者进行API测试时,在沙盒环境网关创建临时用户,为所述临时用户赋予API访问权限,使得调用能利用所述临时用户角色通过修改参数值发起服务调用请求,通过沙盒环境网关将所述服务调用请求转发到后端服务,并获取服务调用响应信息,以使得调用者根据所述响应信息确定API测试结果。

优选地,其中所述沙盒环境网关搭建单元,确定沙盒环境网关的最小资源需求,包括:

基于所述生产环境的资源使用情况、历史调用统计数据和沙盒环境服务调用的最大并发限制,确定沙盒环境网关的CPU、内存和实例个数。

优选地,其中所述API同步单元,利用如下方式将已在生产环境创建的API同步到沙盒环境,包括:

从数据库获取API名称、后端地址、前端访问地址和认证方式,基于相应API信息在沙盒环境网关创建API所需的target、upstream、service和route,并绑定API认证方式对应的插件和访问流量限制插件;

以及在当API存在测试环境后端访问地址时,在将API同步沙盒环境时,将后端地址设置为测试环境后端地址。

优选地,其中所述响应信息包括:响应码信息、响应延时信息、响应Header信息和响应body信息。

优选地,其中所述系统还包括:

插件创建单元,用于为所述匿名用户创建对应的流量限制插件;用于为所述临时用户创建对应的认证插件和流量限制插件。

优选地,其中所述系统还包括:

沙盒环境服务sdk自动生成单元,用于设定服务请求地址对应的沙盒环境API的访问地址、参数值和认证信息并自动生成预设语言的沙盒环境服务访问sdk,同时调用者通过将服务请求地址改为生产环境API的访问地址,将认证信息改为平台授权后获取的认证信息,实现利用sdk调用生产环境API。

优选地,其中所述系统还包括:

访问日志处理单元,用于使沙盒环境网关通过logstash将API测试功能的访问日志导入ElasticSearch,以对访问日志实时监测,并在当峰值访问量或访问流量超过沙盒环境网关的能力时,进行告警,使得管理员能及时对沙盒环境网关进行弹性扩展实例。

本发明提供了一种用于服务开放平台的API测试方法及系统,通过Kubernetes命名空间隔离沙盒环境网关,并在沙盒环境网关同步API信息,独立进行API的访问控制及日志管理,对实际后端服务不要求沙盒环境部署;同时针对不同角色用户提供不需认证的匿名用户访问、具有访问权限的临时用户访问两种API测试方案;本发明的方案能够实现快速、简便、直观的服务发布前调试及服务调用前测试功能,保障了线上服务的安全和稳定性。

附图说明

通过参考下面的附图,可以更为完整地理解本发明的示例性实施方式:

图1为根据本发明实施方式的用于服务开放平台的API测试方法100的流程图;

图2为根据本发明实施方式的沙盒环境网关的架构图;

图3为根据本发明实施方式的API调试的流程图;

图4为根据本发明实施方式的API测试的流程图;

图5为根据本发明实施方式的用于服务开放平台的API测试系统500的结构示意图。

具体实施方式

现在参考附图介绍本发明的示例性实施方式,然而,本发明可以用许多不同的形式来实施,并且不局限于此处描述的实施例,提供这些实施例是为了详尽地且完全地公开本发明,并且向所属技术领域的技术人员充分传达本发明的范围。对于表示在附图中的示例性实施方式中的术语并不是对本发明的限定。在附图中,相同的单元/元件使用相同的附图标记。

除非另有说明,此处使用的术语(包括科技术语)对所属技术领域的技术人员具有通常的理解含义。另外,可以理解的是,以通常使用的词典限定的术语,应当被理解为与其相关领域的语境具有一致的含义,而不应该被理解为理想化的或过于正式的意义。

图1为根据本发明实施方式的用于服务开放平台的API测试方法100的流程图。如图1所示,本发明实施方式提供的用于服务开放平台的API测试方法,通过Kubernetes命名空间隔离沙盒环境网关,并在沙盒环境网关同步API信息,独立进行API的访问控制及日志管理,对实际后端服务不要求沙盒环境部署;同时针对不同角色用户提供不需认证的匿名用户访问、具有访问权限的临时用户访问两种API测试方案;本发明的方案能够实现快速、简便、直观的服务发布前调试及服务调用前测试功能,保障了线上服务的安全和稳定性。本发明实施方式提供的用于服务开放平台的API测试方法100,从步骤101处开始,在步骤101基于Kubernetes命名空间将生产环境网关与沙盒环境网关进行隔离,确定沙盒环境网关的最小资源需求,并根据所述最小资源需求基于yaml文件实现沙盒环境网关服务的快速部署。

优选地,其中所述确定沙盒环境网关的最小资源需求,包括:

基于所述生产环境的资源使用情况、历史调用统计数据和沙盒环境服务调用的最大并发限制,确定沙盒环境网关的CPU、内存和实例个数。

本发明的方法为面向API发布者及API调用者两种角色用户的,对服务开放平台开放的API进行发布前调试和使用前测试的方法,利用有限的资源,快速搭建沙盒环境网关,并使得用户能通过沙盒环境网关便捷直观的了解API调用方式及API性能。

在本发明的实施方式中,利用kubernetes命名空间实现生产环境(即线上环境)与测试环境(即沙盒环境)的资源隔离,基于生产环境资源使用情况、历史调用统计数据及沙盒环境服务调用最大并发限制确定沙盒环境网关的最小资源需求,以yaml文件方式实现测试环境网关服务的快速部署。具体地,利用Kubernetes命名空间隔离,采用生产环境网关yaml文件,仅对命名空间、资源配置进行修改,以快速拉起沙盒环境网关服务。然后,通过分析生产环境网关服务调用的日志统计数据、资源利用情况以及沙盒环境网关服务调用最大并发限制来设定沙盒环境网关CPU、内存等物理资源配置及实例个数。同时,本发明实时地监测沙盒环境网关资源利用率,对沙盒环境网关部署进行弹性扩缩容。生产环境网关与沙盒环境网关独立进行API管理、访问权限管理及访问日志管理。

在步骤102,发布者通过服务开放平台将已在生产环境创建的API同步到沙盒环境。

优选地,其中所述方法利用如下方式将已在生产环境创建的API同步到沙盒环境,包括:

从数据库获取API名称、后端地址、前端访问地址和认证方式,基于相应API信息在沙盒环境网关创建API所需的target、upstream、service和route,并绑定API认证方式对应的插件和访问流量限制插件;

以及在当API存在测试环境后端访问地址时,在将API同步沙盒环境时,将后端地址设置为测试环境后端地址。

在本发明的实施方中,在同步API到沙盒环境时,发布者可通过服务开放平台界面设置的“同步到沙盒环境”按钮,将已在生产环境创建的API同步到沙盒环境。如图2所示,系统由数据库获取API名称、后端地址、前端访问地址、认证方式等信息,基于相应API信息在沙盒环境网关创建API所需的target、upstream、service及route,并绑定API认证方式对应的插件,以及访问流量限制插件。此外,如API存在测试环境后端访问地址,发布者也可在将API同步沙盒环境时,将后端地址设置为测试环境后端地址。

在步骤103,当发布者进行API测试时,在沙盒环境网关创建匿名用户,使得发布者利用所述匿名角色通过修改参数值发起服务调用请求,通过沙盒环境网关将所述服务调用请求转发到后端服务,并获取服务调用响应信息,以使得发布者根据所述响应信息确定API调试结果。

在步骤104,当调用者进行API测试时,在沙盒环境网关创建临时用户,为所述临时用户赋予API访问权限,使得调用能利用所述临时用户角色通过修改参数值发起服务调用请求,通过沙盒环境网关将所述服务调用请求转发到后端服务,并获取服务调用响应信息,以使得调用者根据所述响应信息确定API测试结果。

优选地,其中所述方法还包括:

为所述匿名用户创建对应的流量限制插件;

为所述临时用户创建对应的认证插件和流量限制插件。

在本发明的实施方式中,对API发布者和调用者两种角色用户分别提供不同的测试方案:1)发布者可通过匿名用户无认证访问,快速检测服务配置及性能;2)为调用者创建临时访问权限,无需经过后台授权,仅通过临时用户权限及认证信息进行访问,便捷直观的进行服务调用测试。

其中,发布者通过匿名用户进行API调试。具体地,系统在沙盒环境网关创建匿名用户,此用户可不通过认证即访问沙盒环境网关已有的API。在创建匿名用户时,为此匿名用户创建流量限制插件,限制其对API的访问次数,杜绝匿名访问的滥用和直接用于生产。如图3所示,发布者通过服务开放平台的API调试功能界面,利用匿名用户角色,仅修改所需参数值,即可发起服务请求,通过沙盒环境网关将请求转发到后端服务,界面显示服务调用响应码、响应延时、响应Header及响应body信息。发布者可通过返回结果确认通过服务开放平台设置的API信息是否准确以及API调用的性能。

其中,调用者通过临时用户进行API测试。具体地,系统在沙盒环境网关为要进行API测试的调用者创建临时用户,并为此用户赋予相应的API访问权限,创建相应的认证插件及流量限制插件。如图4所示,服务开放平台的API测试功能界面展示API调用相关信息,包括直接由数据库获取服务请求地址、请求参数、认证信息等,其中服务请求地址对应沙盒环境网关API访问地址,认证信息为临时用户对此API访问认证信息。调用者修改参数值,并发起服务调用请求,通过沙盒环境网关转发到后端服务,最终将返回的结果在平台界面展示。

优选地,其中所述方法还包括:

设定服务请求地址对应的沙盒环境API的访问地址、参数值和认证信息并自动生成预设语言的沙盒环境服务访问sdk,同时调用者通过将服务请求地址改为生产环境API的访问地址,将认证信息改为平台授权后获取的认证信息,实现利用sdk调用生产环境API。

优选地,其中所述方法还包括:

沙盒环境网关通过logstash将API测试功能的访问日志导入ElasticSearch,以对访问日志实时监测,并在当峰值访问量或访问流量超过沙盒环境网关的能力时,进行告警,使得管理员能及时对沙盒环境网关进行弹性扩展实例。

本发明还能够实现测试sdk的自动生成。其中,在sdk中设定服务请求地址对应的沙盒环境API的访问地址、参数值和认证信息,其中参数值为API创建时设定的默认值,认证信息为临时用户认证信息。调用者通过将代码中服务请求地址改为生产环境API的访问地址,将认证信息改为平台授权后获取的认证信息,即可利用此sdk调用生产环境API。

在本发明中,API测试功能的访问日志由沙盒环境网关独立管理,并通过logstash导入ElasticSearch。对访问日志实时监测,当峰值访问量或访问流量超过沙盒环境网关能力时,进行邮件、短信预警,以保证管理员能及时对沙盒环境网关进行弹性扩展实例。

本发明的方法利用Kubernetes命名空间实现线上、测试环境网关隔离,并通过yaml文件部署测试环境服务,根据生产环境网关资源使用情况以及测试环境最大并发访问限制确定沙盒环境网关的最小物理、容器资源需求,利用有限的资源实现资源隔离及服务的快速部署。通过线上、测试环境两套独立的服务网关,分别对线上、测试环境服务调用进行访问控制和调用日志统计,对测试环境的服务调用进行流量限制,保障测试功能不会影响到生产环境的使用。根据用户需求,同时对服务发布者及服务调用者两种角色的平台用户提供不同的测试方案,服务发布者利用服务网关的匿名用户、无需认证即可访问自己创建的服务,便捷快速的完成服务发布前的接口调试、性能测试;服务调用者进行API测试时,无需通过服务开放平台复杂的服务订阅、授权流程,网关自动分配临时权限,平台自动填写临时认证信息,用户可直观简洁的进行服务调用测试。本发明能够为服务开放平台用户提供一种快速、简便、直观的服务发布前调试及服务调用前测试功能,同时保障了线上服务的安全性和稳定性。

图5为根据本发明实施方式的用于服务开放平台的API测试系统500的结构示意图。如图5所示,本发明实施方式提供的用于服务开放平台的API测试系统500,包括:沙盒环境网关搭建单元501、API同步单元502、API调试单元503和API测试单元504。

优选地,所述沙盒环境网关搭建单元501,用于基于Kubernetes命名空间将生产环境网关与沙盒环境网关进行隔离,确定沙盒环境网关的最小资源需求,并根据所述最小资源需求基于yaml文件实现沙盒环境网关服务的快速部署。

优选地,其中所述沙盒环境网关搭建单元501,确定沙盒环境网关的最小资源需求,包括:

基于所述生产环境的资源使用情况、历史调用统计数据和沙盒环境服务调用的最大并发限制,确定沙盒环境网关的CPU、内存和实例个数。

优选地,所述API同步单元502,用于使发布者通过服务开放平台将已在生产环境创建的API同步到沙盒环境。

优选地,其中所述API同步单元502,利用如下方式将已在生产环境创建的API同步到沙盒环境,包括:

从数据库获取API名称、后端地址、前端访问地址和认证方式,基于相应API信息在沙盒环境网关创建API所需的target、upstream、service和route,并绑定API认证方式对应的插件和访问流量限制插件;

以及在当API存在测试环境后端访问地址时,在将API同步沙盒环境时,将后端地址设置为测试环境后端地址。

优选地,所述API调试单元503,用于当发布者进行API测试时,在沙盒环境网关创建匿名用户,使得发布者利用所述匿名角色通过修改参数值发起服务调用请求,通过沙盒环境网关将所述服务调用请求转发到后端服务,并获取服务调用响应信息,以使得发布者根据所述响应信息确定API调试结果。

优选地,其中所述响应信息包括:响应码信息、响应延时信息、响应Header信息和响应body信息。

优选地,所述API测试单元504,用于当调用者进行API测试时,在沙盒环境网关创建临时用户,为所述临时用户赋予API访问权限,使得调用能利用所述临时用户角色通过修改参数值发起服务调用请求,通过沙盒环境网关将所述服务调用请求转发到后端服务,并获取服务调用响应信息,以使得调用者根据所述响应信息确定API测试结果。

优选地,其中所述系统还包括:

插件创建单元,用于为所述匿名用户创建对应的流量限制插件;用于为所述临时用户创建对应的认证插件和流量限制插件。

优选地,其中所述系统还包括:

沙盒环境服务sdk自动生成单元,用于设定服务请求地址对应的沙盒环境API的访问地址、参数值和认证信息并自动生成预设语言的沙盒环境服务访问sdk,同时调用者通过将服务请求地址改为生产环境API的访问地址,将认证信息改为平台授权后获取的认证信息,实现利用sdk调用生产环境API。

优选地,其中所述系统还包括:

访问日志处理单元,用于使沙盒环境网关通过logstash将API测试功能的访问日志导入ElasticSearch,以对访问日志实时监测,并在当峰值访问量或访问流量超过沙盒环境网关的能力时,进行告警,使得管理员能及时对沙盒环境网关进行弹性扩展实例。

本发明的实施例的用于服务开放平台的API测试系统500与本发明的另一个实施例的用于服务开放平台的API测试方法100相对应,在此不再赘述。

已经通过参考少量实施方式描述了本发明。然而,本领域技术人员所公知的,正如附带的专利权利要求所限定的,除了本发明以上公开的其他的实施例等同地落在本发明的范围内。

通常地,在权利要求中使用的所有术语都根据他们在技术领域的通常含义被解释,除非在其中被另外明确地定义。所有的参考“一个/所述/该[装置、组件等]”都被开放地解释为所述装置、组件等中的至少一个实例,除非另外明确地说明。这里公开的任何方法的步骤都没必要以公开的准确的顺序运行,除非明确地说明。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号