API 监控能够确保 API 的稳定性。如果一个 API 出现故障或崩溃,它可能会导致整个应用程序无法正常工作。这对用户和业务来说可能是灾难性的。通过监控 API,开发团队可以及时发现问题并采取措施来修复它们,从而降低应用程序中断的风险。

作为开发人员,了解API生命周期中的每一个步骤可以帮助改善设计流程以及后续的流程,监控工具可以深入了解 API 的行为,监控 API 有助于:

  1. 问题识别;
  2. 问题修复;
  3. 功能分析;
  4. 新版本的迭代。

在 API 管理中,查看 API 异常监控的监控报告,在 Eolink Apiki 中也是常用的功能,通常你可以在流程综合报告页中看到当前流程在选定时间段内的整体监控情况。

1、手动创建监控 API

Eolinker API 网络监控平台支持从 Eolinker API Management(API管理产品)中导入API信息,或者手动创建监控API。

进入API监控页面,点击 添加API 按钮,会直接进入API监控编辑页面。你可以在编辑页中设置API监控的名称、请求地址、请求信息、校验规则等信息。

进入API监控编辑页后,你可以设置API的基本信息、请求信息、校验规则等内容。

API 监控基础信息

API监控的基础信息包括:

  1. API请求地址
  2. API分组、名称
  3. API监控的项目环境
  4. API监控节点:系统会在选中的监控节点区域发起API监控请求
  5. 监控频率:系统会在选中的监控节点中按照设置的频率对API发起监控请求
  6. 超时限制:当API的响应时间超出设定的限制时间时,系统将会自动中断该次监控请求,并且报请求超时异常。

请求头部

你可以输入或导入请求头部。批量导入的数据格式为 key : value ,一行一条 header 信息,如:

Connection: keep-alive
Content-Encoding: gzip
Content-Type: application/json
Date: Mon, 30 Dec 2019 20:49:45 GMT

请求体

请求体支持以下类型:Form-data(表单)、JSON、XML、Raw(自定义文本类型数据)。

Query 参数

Query参数指的是地址栏中跟在问号 ? 后面的参数,如以下地址中的 user_name 参数:

shop/query?shop_id=001

批量导入的数据格式为 ?key=value ,通过 & 分隔多个参数,如:

api.eolinker.com/user/login?user_name=jackliu&user_password=hello

REST 参数

REST参数指的是地址栏被斜杠 / 分隔的参数,如以下地址中的 user_nameuser_password 参数。

/user/login/{user_name}/{user_password}

注意,只需要在URL中使用 {} 将REST参数括起来,下方的请求参数名中不需要使用 {}

权限校验

如果访问API时需要先进行身份验证,可以在权限校验处填写校验的信息。

2、从接口文档导入 API

如果你已经使用了 Eolinker API Management(API研发管理) 产品,你可以在创建监控接口的时候直接导入API Management 的API文档信息。

进入API监控页面,点击 添加API 按钮旁的下拉菜单按钮,在菜单中选择 从API管理导入

在弹窗中选择要导入的API并点击确定之后,会进入API监控信息编辑页面,在这里可以编辑每个导入的API的信息,一般来说你只需要补充API的请求参数值以及校验规则即可。

进入API监控编辑页后,你可以设置API的基本信息、请求信息、校验规则等内容。

3、开启监控

创建好API之后,在操作栏点击 更多 的按钮,在下拉菜单中选择 开启监控

也可以在顶部点击 批量操作 按钮来对API做批量开启监控:

前置脚本和后置脚本

API脚本分为 API前置脚本API后置脚本 两种,分别对应API 请求前返回数据后的两个阶段。你可以通过编写Javascript代码,在API前置脚本中改变请求参数,或者是在API后置脚本中改变返回结果。

API脚本功能常用于以下几种情况:

  • API请求时对Body进行整体签名加密,常用于银行等系统测试中
  • API返回结果后对Body进行解密,常用于反爬虫系统的测试中
  • 发起的API请求会依次经过以下流程。其中如果你没有编写相应的API脚本,则会略过API脚本阶段。

返回结果校验

校验返回头部

返回头部支持以下校验选项:

校验方式 描述
存在性校验 判断是否存在该字段,如不存在则提示测试失败
值校验 判断返回内容与预设值是否相等,如不相等则提示测试失败

校验返回结果

API测试用例支持5种校验方式:

校验方式 描述
不校验 无论返回结果是什么,均认为测试通过
校验状态码 判断响应头部中的HTTP Status Code
校验JSON 判断响应结果的JSON结构和参数值,可以判断对象、数组、字段等信息
校验XML 判断响应结果的XML结构和参数值,可以判断对象、数组、字段等信息
完全匹配 判断响应结果是否等于预期结果
正则匹配 通过正则表达式去匹配响应结果,如果匹配的结果集不为空,则认为测试通过

存在性校验

当我们需要判断返回的头部/返回结果中的某个字段是否存在时,可以设置存在性校验来进行判断。

存在性校验 说明
是(默认) 判断是否存在该字段,如不存在则提示测试失败
不判断是否存在该字段

类型校验

设置对参数的类型进行校验,返回结果的参数类型必须要等于预设的参数类型,否则提示测试失败。

内容校验

设置对字段值的判断条件,不同类型的字段可能会有不同的判断条件。

校验规则 符号 说明
不校验 [] 不校验返回内容,任何值均判断为正确
值-等于 [value = ] 返回结果的 值 必须要 等于 预期结果,否则提示测试失败
值-不等于 [value != ] 返回结果的 值 必须要 不等于 预期结果,否则提示测试失败
值-大于 [value > ] 返回结果的 值 必须要 大于 预期结果,否则提示测试失败
值-小于 [value < ] 返回结果的 值 必须要 小于 预期结果,否则提示测试失败
值-包含 [include = ] 返回结果的 值 必须要 包含 预期结果,否则提示测试失败。比如预期结果为“hello”,实际返回结果为“hello world”,则测试结果正确。
值-不等于 [value != ] 返回结果的 值 必须要 不等于 预期结果,否则提示测试失败
正则 [Reg = ] 返回结果的 值 必须要 不等于 预期结果,否则提示测试失败
长度-等于 [length = ] 返回结果的 长度 必须要 等于 预期结果,否则提示测试失败
长度-不等于 [length != ] 返回结果的 长度 必须要 不等于 预期结果,否则提示测试失败
长度-大于 [length > ] 返回结果的 长度 必须要 大于 预期结果,否则提示测试失败
长度-小于 [length < ] 返回结果的 长度 必须要 小于 预期结果,否则提示测试失败

循环校验

对于数组类型(Array[])的返回参数,系统提供了 校验数组内元素 的选项,开启该选项之后,系统会对数组内的所有元素进行校验,否则仅校验数组内的第一个元素。

例如:

有如下JSON数组,当 demo_array 字段(红色部分)是一个数组类型时,开启校验数组内元素后会对demo_array下一级的字段(蓝色部分)进行整体的循环校验。

以下两张图的红色以及蓝色部分一一对应。

高级设置

重定向

可以设置是否跟随请求的重定向(HTTP 状态码为301、302)

验证SSL证书

可以设置是否校验SSL证书

发送Eolinker Token头部

可以设置是否发送Eolinker Token头部,Eolinker Token用于标识请求发送自Eolinker平台

发送no-chche头部

可以设置是否发送 no-cache 头部,用于更新缓存数据

Eolink Apikit 让开发人员和操作团队都可以轻松地监控他们所依赖的 API 的状态和行为。使 DevOps 团队能够连续监控异常情况,并使用可操作的上下文数据发送针对性的警报,以便快速解决出现的问题。了解更多关于Eolink Apikit 的 API 监控功能,请访问:www.eolinker.com

「Eolink Apikit 教程」API 异常监控-创建 API 监控的更多相关文章

  1. 第三节:Creating API Endpoints (创建API路由)

    对于这篇文章的标题,其实,直译就是创建api端点.但是,真的很难懂,我还是写为API路由吧.每篇,文章,我都会全部去进行实践操作,力求写一个好点的教程. 本文英文地址-->https://git ...

  2. 用laravel dingo api插件库创建api的一些心得笔记

    用laravel创建api是很多大型项目正在使用的方法,一般他们都是用dingo api插件库来开发自己的api.以下是ytkah用dingo api的一些心得,有需要的朋友可以关注一下 1.安装 因 ...

  3. 想读Spring源码?先从这篇「 极简教程」开始吧...

    为什么要阅读源码?这是一个有趣的问题,类似的问题还有,为什么要看书?为什么要爬山? 这也是一个哲学问题,我想每个人都有不同的答案,下面我是对阅读源码好处的一些思考. (PS:也欢迎你在评论区留言补充) ...

  4. ASP.NET Web API 2:创建API帮助页面

         当你新建了一个web API服务之后,再建一个API帮助页面是很有好处的,这样其他开发人员就会很清楚地知道如何调用你的API接口.你可以选择自己手工建立,但是如果能自动生成岂不是更好.为了简 ...

  5. SpringBoot图文教程15—项目异常怎么办?「跳转404错误页面」「全局异常捕获」

    有天上飞的概念,就要有落地的实现 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍 先赞后看,养成习惯 SpringBoot 图文教程系列文章目录 SpringBoot图文教程1-Spr ...

  6. SpringBoot图文教程17—上手就会 RestTemplate 使用指南「Get Post」「设置请求头」

    有天上飞的概念,就要有落地的实现 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍 先赞后看,养成习惯 SpringBoot 图文教程系列文章目录 SpringBoot图文教程1-Spr ...

  7. SpringBoot图文教程11—从此不写mapper文件「SpringBoot集成MybatisPlus」

    有天上飞的概念,就要有落地的实现 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍 先赞后看,养成习惯 SpringBoot 图文教程系列文章目录 SpringBoot图文教程1「概念+ ...

  8. 报名|「OneAPM x DaoCloud」技术公开课:Docker性能监控!

    如今,越来越多的公司开始 Docker 了,「三分之二的公司在尝试了 Docker 后最终使用了它」,也就是说 Docker 的转化率达到了 67%,同时转化时长也控制在 60 天内. 既然 Dock ...

  9. 面试都在问的「微服务」「RPC」「服务治理」「下一代微服务」一文带你彻底搞懂!

    ❝ 文章每周持续更新,各位的「三连」是对我最大的肯定.可以微信搜索公众号「 后端技术学堂 」第一时间阅读(一般比博客早更新一到两篇) ❞ 单体式应用程序 与微服务相对的另一个概念是传统的「单体式应用程 ...

  10. [译]聊聊C#中的泛型的使用(新手勿入) Seaching TreeVIew WPF 可编辑树Ztree的使用(包括对后台数据库的增删改查) 字段和属性的区别 C# 遍历Dictionary并修改其中的Value 学习笔记——异步 程序员常说的「哈希表」是个什么鬼?

    [译]聊聊C#中的泛型的使用(新手勿入)   写在前面 今天忙里偷闲在浏览外文的时候看到一篇讲C#中泛型的使用的文章,因此加上本人的理解以及四级没过的英语水平斗胆给大伙进行了翻译,当然在翻译的过程中发 ...

随机推荐

  1. CS与反向代理

    Cobalt Strike Cobalt Strike是一款基于java的渗透测试神器,常被业界人称为CS神器.自3.0以后已经不在使用Metasploit框架而作为一个独立的平台使用,分为客户端与服 ...

  2. Windows安装SSH服务器

    1.打开Win的设置并在设置中找到应用 2.在应用中依次选择应用和功能 可选功能 3.在可选功能中选择添加功能 (OpenSSH客户端默认已存在) 选中OpenSSH服务器后点击下方的安装 4.快捷键 ...

  3. 【JMeter】JMeter添加插件

    JMeter添加插件 目录 JMeter添加插件 一.前言 二.插件管理器 三.推荐插件 1.Custom Thread Groups (1)Ultmate Thread Group (2)Stepp ...

  4. 使用gulp.js打包layuiAdmin

    安装nvm 在nvm目录下,找到settings.txt,追加以下两行加速nvm(淘宝镜像)node_mirror: https://npm.taobao.org/mirrors/node/npm_m ...

  5. 由有序链表构建平衡二叉搜索树-sortedListToBST

    描述 给定一个有序列表,将其转换成为一个平衡搜索二叉树 题不难,不过在讨论中发现此题的中序遍历用法略有不同,感觉有点意思 手写一遍加深印象 暴力解法,链表转数组,额外空间O(N),递归遍历搞定.几分钟 ...

  6. Redhat 8.2 系统语言切换(英文转中文)

    前提条件 确保已连上网,并且配好 yum 源 若未配好 yum 源 可参考我上一篇文章 部分 Linux 换国内源 操作步骤 安装中文语言包 dnf install glibc-langpack-zh ...

  7. [PWN之路]堆攻击那些事儿

    原文:https://www.freebuf.com/articles/endpoint/371095.html 0x00 前言 根据某大佬所说,pwn之路分为栈,堆,和内核.当前,如果你看到这个文章 ...

  8. SpringBoot3集成ElasticSearch

    目录 一.简介 二.环境搭建 1.下载安装包 2.服务启动 三.工程搭建 1.工程结构 2.依赖管理 3.配置文件 四.基础用法 1.实体类 2.初始化索引 3.仓储接口 4.查询语法 五.参考源码 ...

  9. k8s实战案例之运行WordPress

    1.WordPress架构 LNMP案例之基于Nginx+PHP实现WordPress博客站点,要求Nginx+PHP运⾏在同⼀个Pod的不同容器;nginx主要作用是接入站点请求,如果请求静态资源n ...

  10. xfs文件系统核心架构介绍

    版权声明:本文为CSDN博主「瞧见风」的原创文章,遵循CC 4.0 BY-SA版权协议原文链接:https://blog.csdn.net/scaleqiao/article/details/5209 ...