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. Codeforces Round #771 (Div. 2) A-E

    A 代码 #include <bits/stdc++.h> using namespace std; using ll = long long; int p[507]; bool solv ...

  2. 我真的,AI框架的编程范式怎么理解?

    我给领导汇报AI框架用函数式编程好,没讲明白,说函数式就是写函数那样方便,都被领导吊飞了,啥玩意,写啥不是写函数,狗屁不通! 网上搜说用tensorflow那就是用声明式编程,用pytorch就是命令 ...

  3. 如何在 Ubuntu 20.04 上安装 KVM

    如何在 Ubuntu 20.04 上安装 KVM 遇到两个问题: 没有创建 /etc/qemu/bridge.conf 文件 ERROR internal error: /usr/lib/qemu/q ...

  4. ChatGPT 1.0.0安卓分析,仅限国内分享

    ChatGPT 1.0.0安卓分析,仅限国内分享 博客园首发,本文将对ChatGpt Android版本1.0.0 APK进行静态解包分析和抓包分析,从ChatGpt Android APK功能的设计 ...

  5. 趣图|代码重构前vs重构后

    前言 很多程序员对自己写的代码平时很随心所欲,但当有一天让他维护他人的代码,他就会抓狂,很容易激发他体内重构的瘾.(大多数程序员审阅完别人代码后,先会忍不住吐槽一番,然后会忍不住想重构一把,) 在我看 ...

  6. vue项目node_modules文件过大问题

    node_modules目录下.cache下最大文件删除即可(vue-loader)

  7. 学习狂神Spring5_课堂笔记(更新中)

    Spring 简介 spring,英文单词为春天,表示为软件行业带来了春天. 2002年,首次推出了Spring框架的雏形:interface21框架.官网为:www.interface21.io但是 ...

  8. Unity的AssetPostprocessor之Model:深入解析与实用案例 1

    Unity AssetPostprocessor模型相关函数详解 在Unity中,AssetPostprocessor是一个非常有用的工具,它可以在导入资源时自动执行一些操作.在本文中,我们将重点介绍 ...

  9. 关于Vue的就地更新策略的解析

    在Vue中使用v-for渲染列表时,默认使用就地更新策略.该策略默认是基于索引的,规定在列表绑定的数据元素顺序变化时,不会重新创建整个列表,而只是更新对应DOM元素上的数据.以下代码实现了一个TODO ...

  10. 浅谈 Linux 下 vim 的使用

    Vim 是从 vi 发展出来的一个文本编辑器,其代码补全.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用. Vi 是老式的字处理器,功能虽然已经很齐全了,但还有可以进步的地方.Vim 可 ...