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. 【SpringBoot】WebSocket在线聊天

    先看一下页面效果,有点简单粗暴!哈哈哈哈哈,别介意. 本文参考:SpringBoot2.0集成WebSocket,实现后台向前端推送信息 新建一个springboot项目 引入相关依赖 <dep ...

  2. Hexo、Typecho博客添加旅行足迹网页

    本文部署的足迹地图,地址如下: http://www.aomanhao.top/index.php/archives/183/ jVectorMap JVectorMap 是一个优秀的.兼容性强的 j ...

  3. 解决phpMyAdmin点击"结构"列页面失去响应的问题

    最后更新时间 2017-12-05. 我的环境: phpMyAdmin:4.0.4.1 PHP:5.6.11 第一步 关闭自动更新 打开 ./libraries 目录下的 vendor_config. ...

  4. vue+element 判断table表格输入不能为空

    点击确定的时候,判断表格其中某行某值不能为空 1.HTML <div class="app-container"> <el-form ref="form ...

  5. 代码随想录算法训练营第四天| LeetCode 24. 两两交换链表中的节点 19.删除链表的倒数第N个节点 142.环形链表II

    24. 两两交换链表中的节点         卡哥建议:用虚拟头结点,这样会方便很多. 本题链表操作就比较复杂了,建议大家先看视频,视频里我讲解了注意事项,为什么需要temp保存临时节点. 题目链接/ ...

  6. Centos安装 Apache Benchmark

    检查依赖包是否安装 1 rpm -qa|grep apr-util 2 3 rpm -qa|grep yum-utils 输出信息: 1 apr-util-1.5.2-6.el7.x86_64 2 y ...

  7. Windows 环境下载、安装、使用(.Net 5.0) Redis 数据库及常见问题的解决

    〇.前言 Redis (Remote Dictionary Server 远程字典服务)是一个使用 ANSI C 编写的开源.包含多种数据结构,支持网络.基于内存.可选持久性的键值对存储数据库,是现在 ...

  8. 解读 --- System.Windows.Forms.Timer是前台线程吗?

    引言 今天同事问了我一个问题,System.Windows.Forms.Timer是前台线程还是后台线程,我当时想的是它是跟着UI线程一起结束的,应该是前台线程吧? 我确实没有仔细研究过他们的异同,所 ...

  9. .Net Web API 006 Controller上传大文件

    1.上传大文件的方式 上传大文件就需要一段一段的上传,主要是先在客户端获取文件的大小,例如想一次传256kb,那就按照256kb分割.分割后又两种上传方式. (1)逐个数据段读取,然后调用API上传, ...

  10. [mysql]安全加固

    前言 因等保安全的要求,需要对MySQL用户密码和登录策略进行安全加固,以满足以下需求: 密码至少8位,包含大小写字母.数字和特殊字符. 当密码登录失败一定次数后锁定账户. 密码90天过期 本文使用的 ...