基于EoLInker的API研发管理与自动化测试管理

-- 基于EoLInker的API研发与测试-API全生命周期管理
【官网】:https://www.eolinker.com/#/

应用场景

解决由于前后端分离导致的开发效率低下问题,吸收了Postman以及RAP等接口管理产品的优点,提倡远程办公和敏捷开发,让开发者进行接口管理更加简单。

基础资源

Eolinker

使用须知

建议读者按照自己所在公司的团队规模,业务复杂度选择使用eolinker中的相关功能模块。

配置步骤

>简介.

>>为什么要用API 生命周期管理?

A)部分开发者没时间或者不想写文档,或者不规范,或者没及时更新..导致接口难以正确使用。//需要有一个规范的,及时更新的文档。

B)中小公司涉及开发人员离职时,往往出现部分接口的开发,实现,部署没有交接清楚,导致后续开发者遇到重重困难。 //需要有一个api迭代历史,测试历史,参与协作历史记录

C)销售和售后部门不知道公司是否能提供接口,接口能提供什么数据,无法给客户清晰的展示和沟通。 //需要有一个可以统一查看所有api资产的地方

D)有些时候前后端团队协调沟通效率低,用假数据则缺乏数据长度,格式考虑不到位等。//需要对每个参数有详细的说明

E)不同人写的api对安全校验,分页,查询等没有统一要求和规范。//需要有一个可重用,统一规范

F)大公司不同团队,及小公司的不同开发者,有时由于沟通不到位,工期紧,管理不够到位,不知道谁维护,不知道部署在哪里等等进而导致重复开发,维护越来越复杂。//需要一个接口开发相关团队协作工具

G)api的自动化测试往往比较麻烦,一般小公司为了测试一个接口还得专门走一个流程,耗时多还不好高效测试接口的各个逻辑分支.  //需要有一个自动化测试工具,减少人工测试工作量和粗心马虎的问题

H)api服务器节点的横向扩展,应对高并发往往在前期没有规划.导致应对时要么重构开发,要么想各种无法重用的骚操作来处理应对。 //需要有一个统一的,可重用的,低成本的api扩容管理平台

I)粗心的开发人员甚至都可能没有严谨测试各个分支情况就上线了,怎么追溯,查看,怎么查找接口涉及多个负责人时具体某个人的测试不到位等问题。 //需要有类似代码版本管理的方式

J)不好评估不同开发人员开发的接口质量及严谨性,如果到了生产环境才发现考虑不严谨则会出现严重问题。 //需要有需要测试用例及测试历史

>>eolink概述.

eoLinker是一个针对开发人员需求而设计、免费而且开源的API接口管理平台,提供自动生成API文档、API自动化测试、Mock测试、权限管理、团队协作等功能,旨在解决由于前后端分离导致的开发效率低下问题,吸收了Postman以及RAP等接口管理产品的优点,提倡远程办公和敏捷开发,让开发者进行接口管理更加简单。


>>API生命周期管理概述.

生命周期与价值>

生命周期与需求实现>.


>API生命周期详细介绍.

>>自动生成API平台.

>>>自动生成API平台的特点.

1.支持多种数据源类型:支持 MysqlOracleMariaDBSQL ServerPostgreSQLMongoDBRedisImpala 等常见关系型、非关系型、大数据数据库中间件;

2. 支持将数据转换为Restful API:支持返回 JSONXML 等返回结果;

3. 支持通过UI界面生成API:通过页面操作即可从关系型数据库中生成 API

4. 支持通过语句等生产API:对于非关系型数据库,可以使用 SQL 语句或者相关脚本语句生成 API

5. 支持集群部署:节点支持水平扩展,轻松应对大规模访问;

6. 自动生成API文档:自动生成 API 文档方便进行开发对接,可以导出到Eolinker API研发管理系统中;

7. 自动生成API代码:自动生成各语言 API 访问代码;

>>>自动生成API平台的部分细节.

A.)自带请求校验、防SQL注入、HTTPS.

系统会自动识别API的请求参数,并且对请求参数进行合法性判断, 以及防止SQL注入.

B.)API 支持设置筛选条件、分页等选项 系统会自动识别API的请求参数对返回数据进行筛选,并且支持自动 或手动分页.

>>自动化测试与研发管理平台.

>>>一般自动化api测试的处理事项.

eoLinker是目前第一个支持在线API自动化测试的平台,eoLinker AMS提供了两种自动化测试方案:
1.简易模式:全UI界面,无需编写任何代码即可完成稍复杂的API测试工作
2.高级模式:代码界面,通过编写极少的Javascript代码,即可实现强大的API自动化测试

一般而言,自动化测试涉及以下几个方面:
1.自由设定API测试顺序;
2.API之间存在数据关联,比如后面接口的请求参数会绑定前面接口的返回结果等;
3.支持对返回结果进行校验;
4.支持对数据进行处理,比如在测试登录接口时对密码进行加密等;
5.支持高级的代码用例,可以用代码来实现控制测试流程的目的,一般语言有js
6.eoLinker支持上述提到的所有功能,并且是目前全球唯一一款支持UI界面创建自动化测试的产品,用于自动化测试非常方便,并且用户体验相比于Postman等工具要好许多

>>>API研发管理的特点.

1.基于敏捷研发管理流程设计:特别适合追求研发效率与高效管理的敏捷型全功能团队使用;

2.规范管理API文档:提供最丰富的 API 文档管理功能,可以规范、详细地记录 API 文档信息;

3.快速测试API:系统自动根据 API 文档生成测试界面,一键对 API 发起测试;


4.API版本管理:自动记录 API的每次改动,自动对比版本差异,一键回滚历史版本;

5.API变更通知:API 发生变化时自动通知相关成员;

6.API评论:可以对 API 发起评论,方便跨地区团队进行远程协作;

7.Mock API:根据 API 文档自动生成随机返回数据,方便前端进行测试;

8.提供多端支持:提供 Web 端、PC 客户端,PC 客户端支持在 WindowsmacOS 等系统安装使用;

>>>API研发管理的部分细节.

A)设计 API .

API Studio 能够详细、规范地记录API的所有信息,您可以通过它 来设计、统一 API 的开发规范。系统会自动根据设计好的 API 文档 生成预览的请求、返回数据。

B)管理 API.

API 文档中会清晰记录 API 的创建人、负责人、最后修改时间等信 息,并且能够自定义 API Tags,帮助您更好地管理 API 开发工作。

C)支持导入 SwaggerPostman 等数据.

API Studio 能够一键导入 SwaggerPostmanEolinkerRest ClientRapYapi 等产品数据,让您可以无缝迁移项目数据, 不必担心数据迁移成本。

D)绑定代码仓库,一键生成 API 文档.

可以绑定 GithubGitlab、码云等代码仓库,兼容 Swagger 代码 注解生成API文档的方式,实现一键自动生成API文档。支持JavaPHP语言。

E)像管理代码一样对 API 进行版本管理.

API Studio 会详细记录 API 文档的 每一次修改,并且自动生成版本 信息。您可以通过版本对比功能了解每个 API 版本之间的差异。

F)一键发起 API 测试.

编写好 API 文档后,您可以切换到 API 测试页面一键发起测试,支 持自动生成测试数据,并且能够通过 Javascript 代码对请求参数、 返回结果进行二次加工,实现复杂场景的测试。

G)记录每一次测试历史,随时可回溯.

系统会记录每一次的请求历史,您可以看到详细的测试时间、请求 及返回信息等。

H)集中管理 API 测试用例,一键批量测试.

API Studio 特有的测试控制台功能,能够快速对多个 API 的测试用 例进行批量测试,并且在控制台中能够直接查看测试结果

I)设置断言规则,系统自动判断返回结果.

支持设置返回结果的断言规则,让系统自动根据规则判断返回结果 并得出测试报告,准确告知您的 API 的错误原因。

J)通过 Mock API 实现前后端同时开发.

您可以创建 Mock API 的触发条件,系统会自动根据请求参数的不 同返回相应的结果,能够帮助您真实地模拟后端数据。 Mock API 的返回结果支持返回 JsonRaw 等结构的数据,并且能 够通过Javascript动态生成数据。 当后端还没开发完成的情况下,前端开发人员可以借助 Mock API 实现预对接,加速开发进程。

K)通过 Mock API 预防对接过程中的错误.

API Studio 支持判断 Mock API 的调用请求方式以及参数值是否符 合 API 文档要求,如请求类型不匹配,或者请求参数不符合要求, 则会提示前端开发人员进行修改。

L)了解所有 API 的状态.

通过 API 状态统计,您能快速了解到目前项目内所有 API 的状态分 布,点击 Bug 状态的 API 即可看到当前出现 Bug API 以及相关 负责人。

M)了解项目 API 质量情况.

通过测试用例覆盖率、测试用例覆盖系数等统计数据,您能清晰地 了解测试工作的当前完成情况,快速定位缺少测试的 API,帮助测 试团队完善测试工作。

N)制定迭代计划并跟踪开发进度.

创建迭代计划并且将 API 绑定到迭代计划上,帮助团队将开发进度 精确到以 API 为单位,实现更精确的进度跟踪。

>>API自动化测试.

>>>API自动化测试的特点.

1)零代码自动化测试:不需要写任何代码即可进行 API 自动化测试;

2)代码模式自动化测试:编写少量 Javascript 代码即可进行复杂流程的自动化测试;

3)支持操作数据库:测试过程中支持操作数据库,执行数据插入、删除、编辑等操作;

4)数据驱动测试:一个测试用例支持测试多组数据,分别生成测试报告;

5)自动生成测试报告:每次测试都可以生成详细测试报告,支持在线查看和离线下载;

6)支持定时测试任务:设置定时器自动执行测试任务,将报告发送给指定人员邮箱;

7)支持 Open API 触发测试:可以通过 API 对接 Jenkins,随时进行 API 自动化测试;

8)极低学习门槛:15分钟培训即可快速上手进行 API 自动化测试;

>>>API自动化测试的部分细节.

A)0 代码 API 自动化测试.

随着项目发展,API 数量越来越多,每次迭代涉及到的回归测试任 务也越来越重。API Studio 内置强大的自动化测试功能,能够让测 试人员仅通过界面来创建 API 自动化测试,一键发起自动化测试并 实时得到测试结果,极大的提高回归测试效率。

B)可进行 API 之间参数传递.

无需学习变量和脚本语法,通过界面可以直接设置复杂的参数传递 规则,如将注册后的 Token 传递给登录 API,将登录后的 Cookie 传递给后续API进行鉴权等。

可直接对 JSONXML 等结果进行校验.

无需编写脚本解析复杂的 JSONXML 结果,系统自带的强大的结 果校验工具能够让测试人员快速对数据进行校验。

D)支持对数据库进行操作.

测试过程中可以直接对数据库进行操作,方便在测试之前写入测试 数据、测试中校验数据、测试后清空脏数据等。

E)通过 Javascript 编写复杂的测试用例 .

API Studio 提供了 Javascript 脚本模式。您可以通过非常简单的脚 本来编写复杂的 API 测试用例,实现自动化测试中复杂的流程跳转、 数据加解密、验签等目的。 可导入 API 文档直接生成测试代码

F)导入 API 文档即可一键生成调用代码.

仅需完善请求参数以及校验 规则等内容即可。 支持上传文件进行自动化测试 系统能够自动根据请求信息生成主流语言的测试代码,复制代码即 可直接用于项目中。

G)支持 定时 / Open API 发起自动化测试 系统会记录每一次的请求历史,您可以看到详细的测试时间、请求 及返回信息等。

H)自动生成测试报告 每次测试都可以生成详细测试报告,支持在线查看和离线下载; 报告中会显示API的请求时间、请求参数、返回结果、校验结果、错 误原因等信息,方便对API进行排查。

I)自动将 API 文档变更同步到测试用例中 当API文档发生变化时,可以一键将最新的API文档内容同步到测试 用例中,减少维护测试用例的时间成本。 极低的学习成本,15分钟即可掌握 系统拥有良好的操作体验,并且通过界面将复杂的操作简化。只需 要15分钟的简单培训即可进行API自动化测试。降低测试人员的心理 负担.

>>API网络监控.

>>>API业务监控的特点.

1)自由部署监控节点:

自由部署需要监控的节点,可以在业务量大的城市部署监控节点;

2)支持监控API

支持监控单个API的网络情况、性能分析、内容校验、异常时间统计、异常原因分析等;

3)支持监控业务流程:

支持对业务流程的API进行监控,比如多个API按照一定的顺序和逻辑关联运行后 是否正确;

4)支持校验多种数据格式:

支持校验HTTP状态码、JSONXML、自定义数据格式、正则表达式等;

5)提供系统监控报告:

根据系统在过去一段时间的监控情况自动生成监控报告;

6)异常告警:

当检测到系统发生异常时自动触发站内信、邮件等告警;

7)支持导入 API 文档快速创建监控:

支持导入 API 研发管理的数据,快速创建监控;

>>>API业务监控的部分细节.

A)快速了解项目的实时运行情况 .

在项目监控概况中,可以直观看到当前项目的正确率、失败情况统 计、异常API列表、异常场景列表、正常/异常时间等数据。当项目 出现异常时能够及时了解异常API并排查问题。

B)方便运维团队及时了解/排查异常.

API 实时监控单个API的运行情况,丰富的图表能够展现近期API在某个 地区的正确率、正常运行时间、异常原因、响应性能等指标,帮助 企业进一步优化产品用户体验和排查异常。

C)一键发布 API 监控.

一键导入API StudioPostmanSwaggerAPI数据,仅需填写 好监控设置后即可生效。可以对API进行分组管理,再庞大的项目也 可以有条不紊地管理起来。

D)支持丰富的监控项.

支持设置超时时间、监控频率、监控地区、重试次数等。 并且能够校验返回头部、返回的 JSON 断言、XML 断言、正则断言 等。

E)提供详细的监控报表.

监控地区、访问时间、速度、超时率、断言错误率等数据一应俱全, 并且能够查看每一次监控的请求以及返回数据,方便随时排查问题。

F)模拟用户操作进行 API 流程监控,可以设置多个 API 关联.

API Beacon 特有的 API 场景监控功能,除了针对单个API的监控,还提供针对流程和场景的监控,设置多个API直接的逻辑顺序以及数据绑定关系, 模拟正常用户的操作流程,帮助业务团队了解产品的实际运行状况。

G)提供 API 监控汇总报告 支持查看过去一段时间内的监控统计,包括正确时长、异常时长、 正确率、错误率、监控次数、超时次数、断言错误次数等信息,并 且能够列出错误次数最多的 API 进行排查。

H)提供 API 调用详细报告 能够查看过去 15 天内错误的监控日志,日志中会详细列出 API 的 请求参数、返回结果、校验规则以及错误原因等信息。

I)支持自定义告警规则 支持自定义告警规则,如当API连续异常 3 次后才发送告警,告警频 率为 5 分钟。

J)支持多种异常告警方式 支持聚合告警信息,通过API、邮件、短信(需对接第三方)等方式 及时通知相关运维人员。

>>API微服务网关.

>>>微服务网关产品的特点.

1)专为微服务架构设计:支持水平拓展,支持集群、分布式、多地机房部署以保证业务高可用;

2)市面上最快的API网关:88G内存单机 QPS Kong 10%,是 Tyk 30倍;

3)支持负载均衡、服务发现:自带后端负载均衡,支持EureKaConsul等注册中心

4)自带丰富的插件:官方自带20款插件:熔断降级、数据缓存、Oauth2.0鉴权、JWT鉴权、Basic鉴权、 流量控制、防重放攻击、参数校验、参数映射、参数格式转换等场景;

5)支持监控 API:提供API监控检查以及访问监控,帮助您了解业务的运行情况以及访问流量情况;

6)轻松扩展:提供强大的自定义插件系统,基于Go语言可在10分钟内完成基础插件开发;

7)易于使用:提供易于上手的UI管理控制台,不需要使用命令行来管理网关;

>>>微服务网关产品的部分技术细节.

A)支持高可用的跨机房集群部署.

API 网关支持跨机房、跨地区集群部署,网关节点能够快速无限制 水平扩增。

B)架构可靠、配置简单、性能优秀.

API 网关仅依赖数据库(MySQLOracle)以及 Redis服务,无需 引入额外产品,减少企业运维成本及技术负债。 网关提供全面清晰的UI管理界面,无需复杂培训即可配置网关并产 生最高效性能。 转发性能在88G内存云主机(阿里云)下可达到1.4TPS

C)提供强大的 API 管理功能.

将微服务的所有 API 托管在 API 网关上,由 API 网关统一对 API 进 行用户鉴权、熔断、降级、流量过滤、访问监控及告警等操作。

D)支持对全局、访问策略、API等进行监控.

系统会自动根据监控内容生成相应的图表,如 API 的调用趋势、请 求总数、成功率等,并且提供完整的报表下载,方便对数据进行二 次筛选和采集。 当监控到访问出现异常时,能够及时通过 API、邮件等方式通知相 关人员

E)支持制定访问策略,对多租户进行管理.

针对不同的访问 用户 / 设备 / 来源 设置不同的访问策略,精细化控 制访问流量。同时能够将内部微服务的访问控制功能抽取到网关层, 让微服务更加专注实现各自的功能。

F)支持服务编排.

无需编写代码即可实现在 API 网关上对 API 进行编排,将多个现有 的 API 组合成新的 API,快速发布 API 以满足不同的业务场景需求。

G)支持服务发现、负载均衡、健康检查.

服务发现支持EureKaConsul,能够自动发现新的负载服务器。 网关节点自带负载均衡功能,能够对后端服务器进行负载,并且能 够实时对负载后端进行健康检查,当转发过程中发现后端服务器不 可用时能够自动切到转发请求,并将流量导至正常服务器。 当异常的服务器恢复正常时可自动挂载到网关上并正常接受请求.

H)支持 熔断、降级,保障业务正常运行.

当发现部分 API 出现异常时,能够自动停止该 API 的转发工作,并 且自动返回预设结果,让前端业务能够获得正确返回信息保障业务 正常运行。

I)支持 IP 黑白名单、防重放、防跨域攻击.

API 网关能够为微服务提供基本安全防护,结合流量控制功能,能 够提高业务稳定性.

J)支持自定义插件.

Eolinker 官方提供了近20款插件,除此之外还能够自行开发第三方 插件扩充网关功能。 网关提供了自定义插件的开发以及测试环境,用户开发并充分测试 插件后,再将自定义的插件放到正式的网关里使用.

常见问题

快速入门

使用自动化测试需要拥有eoLinker账号,免费注册使用:官网

除此之外还需要安装eoLinker官方提供的API测试增强插件 ,这个插件用于进行跨域测试以及自动化测试,官方提供了Chrome以及Firefox两个版本。

注册登陆之后,创建一个API项目,添加API/录入API文档,然后切换到自动化测试功能即可进行测试。

 <参考>使用eoLinker进行API接口自动化测试——简易模式

https://blog.csdn.net/deronwilliam/article/details/79217800

 <测试环境与环境变量>

<API用例管理>

 

<Api的前置脚本-类似访问前需要登录或者获取token等场景>

注:本例中,开发了一个用于配合测试的接口。另外前置脚本和后置脚本处理方式类似。

step1:定义自定义函数.

附函数源码:


function getToken(username,pwd){
var formdata_api_demo_1 = {
    "url": "http://x.com/api/GetToken.ashx", //[必填][string]请求地址,若不存在请求协议,默认http
    "name": "GetToken", //[选填][string],API名称,方便检索,不填则默认为系统生成API编号
    "method": "POST", //[选填][string],请求方式,可能值有[GET/POST/PUT/PATCH/DELETE/HEAD/OPTION],兼容大小写,默认为GET
    "headers": {
        "Content-Type": "application/x-www-form-urlencoded"
    }, //[选填][object],请求头部
    "bodyType": "form-data", //[选填][string],请求体类型
    "body": { //[选填][object],请求参数
        "username": "user1",
        "pwd": "123456"
    },    
    "timelimit": 3000 //[选填],超时限制,单位为ms,超过时间则判断为请求失败,默认为1000ms
};
//执行请求,返回格式为{time:"请求时间",code:"HTTP状态码",response:"返回结果",header:"返回头部"},
var formdata_api_demo_1_result = eo.execute(formdata_api_demo_1);
//判断返回结果
if (formdata_api_demo_1_result.response !== "") {
    eo.info(formdata_api_demo_1_result.response+",token="+formdata_api_demo_1_result.header["token"]); //输出信息
    return formdata_api_demo_1_result.header["token"];
} else {
    eo.info("get_token_err"); //输出信息
}
return "";
}



step2:在接口处添加前置脚本,调用自定义函数.

如果调用并设置正确则测试通过:

附前置脚本源码:


result_token=eo.userFunction.getToken("user1","123456")/*getToken*/
eo.info("token="+result_token);
eo.http.header.set("token",result_token);



<导出API的开发文档>

 

至此即可导出

 


参考资料