API 监控能够确保 API 的稳定性。如果一个 API 出现故障或崩溃,它可能会导致整个应用程序无法正常工作。这对用户和业务来说可能是灾难性的。通过监控 API,开发团队可以及时发现问题并采取措施来修复它们,从而降低应用程序中断的风险。
作为开发人员,了解 API 生命周期中的每一个步骤可以帮助改善设计流程以及后续的流程,监控工具可以深入了解 API 的行为,监控 API 有助于:
-
问题识别;
-
问题修复;
-
功能分析;
-
新版本的迭代。
在 API 管理中,查看 API 异常监控的监控报告,在 Eolink Apiki 中也是常用的功能,通常你可以在流程综合报告页中看到当前流程在选定时间段内的整体监控情况。
1、手动创建监控 API
Eolinker API 网络监控平台支持从 Eolinker API Management(API管理产品)中导入API信息,或者手动创建监控API。
进入API监控页面,点击 添加API 按钮,会直接进入API监控编辑页面。你可以在编辑页中设置API监控的名称、请求地址、请求信息、校验规则等信息。
进入API监控编辑页后,你可以设置API的基本信息、请求信息、校验规则等内容。
API 监控基础信息
API监控的基础信息包括:
-
API请求地址;
-
API分组、名称;
-
API监控的项目环境;
-
API监控节点:系统会在选中的监控节点区域发起API监控请求;
-
监控频率:系统会在选中的监控节点中按照设置的频率对API发起监控请求;
-
超时限制:当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_name、user_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监控信息编辑页面,在这里可以编辑每个导入的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 监控功能,请访问:https://www.eolink.com/apikit