热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

我发现了一款高效管理接口文档的神器

大家好,我是小孟,最近做了不少项目,后面会路线开源给大家。做的这些项目的过程中,发现了一款接口文档的神器。喜欢尝鲜的小伙

大家好,我是小孟,最近做了不少项目,后面会路线开源给大家。

做的这些项目的过程中,发现了一款接口文档的神器。

喜欢尝鲜的小伙伴可以纳拿去使用,可以找小孟一起交流呀。

也希望大家的技术一样棒棒的,然后搞点私活,香的狠!

文章目录

  • 痛点
  • 什么是eolink
  • 为什么选eolink
  • eolink初体验
    • 安装注册
    • 接口文档管理
    • 自动同步接口
    • 在线接口文档
    • 接口调试
  • 总结


痛点

如果你负责测试的项目是一个前后端分离的项目。

回忆下是不是有如下场景:

某个项目开发完成,接口文档发布在了swagger上,前后端各自进行开发。

此时你负责这个项目的服务端测试。

首先进行接口测试,熟练的打开postman导入swagger文档,然后开始进行接口测试。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BBA5t8w2-1657715852258)(如何高效管理接口文档/image1.png)]

接口测试完成后,准备开始性能测试。又要将swagger接口文档的新接口迁移到jmeter上,然后开始编写压测脚本。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JnOZtlNV-1657715852259)(如何高效管理接口文档/image2.png)]

某个项目在测试中,由于后端修复bug改了接口参数,此时你进行接口回归测试,发现接口测试脚本失败,此时给开发提了一个bug。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fUEPRjzO-1657715852260)(如何高效管理接口文档/image3.png)]

开发跑过来给你说,接口文档有变动忘了和你说了,此时你只能默默的修改接口测试用例。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vMl1zFnr-1657715852261)(如何高效管理接口文档/image4.png)]

服务上线一段时间后。某天,新员工开发小黄想想看下这个项目之前的接口文档,发现测试环境接口swagger地址打不开了,没有地方可以看接口文档。

其实上边这些问题,在日常工作中很常见。其根本原因是接口文档缺乏统一管理,有的团队喜欢把接口文档写在内部协作文档平台里、有的团队喜欢写在 git 代码仓库里,它们的存放目录及目录深度各有不同。当后来人想要看接口的历史文档时,无从查起,许多文档就这样遗失了。

你有没有想过拥有一个,可以同时解决数据同步、调试、Mock、自动化测试的接口文档管理工具。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FJrXMSuh-1657715852261)(如何高效管理接口文档/image5.png)]

什么是eolink

结合 API 设计、文档管理、自动化测试、监控、研发管理和团队协作的一站式 API 生产平台,从个人开发者到跨国企业用户,Eolink 帮助全球超过30万开发者和数万家企业更快、更好且更安全地开发和使用 API。

为什么选eolink

支持 HTTP(S)、Websocket、TCP、UDP 等主流协议,通过代码注解自动生成 API 文档,或者从 API 文档反向生成所有常见开发语言和框架的代码,节省 API 设计和开发时间。强大的 API 版本和变更管理让你不放过 API 的任何变动。


  • 支持所有主流协议
  • 代码自动生成 API 文档
  • API 文档自动生成代码
  • API 版本管理
  • API 变更通知

超方便的 API 测试
支持多种方式快速发起 API 测试,自动生成随机测试数据和测试用例,一键对 API 进行批量回归和冒烟测试,并且立刻得到丰富详细的测试报告,让繁琐的 API 测试变得如此简单。


  • 支持在线、本地、客户端进行测试
  • 一键进行回归/冒烟测试
  • 快速创建测试用例
  • 自动生成测试数据
  • 丰富详细的测试报告

0代码的 API 自动化测试
不需要编写代码,通过拖拉拽即可创建 API 测试流程,API 文档和测试步骤自动关联,当 API 文档发生变化时自动同步到测试用例,极低的学习和维护成本。并且通过定时自动测试将测试报告推送到邮箱、钉钉、企业微信、飞书、Jenkins 等平台,与 CI/CD 流程无缝结合。


  • 与 API 文档关联与自动同步
  • 0代码,拖拉拽完成测试流程编排
  • 统一管理测试数据
  • 对数据库进行操作
  • 定时自动测试
  • 测试报告自动推送

eolink初体验

我们看一下eolink是如何使用接口文档管理工具、接口文档生成工具这两个功能。解决日常工作中,涉及接口文档变更问题。

安装注册

eolink是跨平台的工具,支持macOS(Intel+M1)、Linux、windows(32位、64位),在官网 , 选择对应系统的安装包下载安装即可用。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IaxSSHJb-1657715852262)(如何高效管理接口文档/image6.png)]

首次使用注册账号就可以使用。登录eolink后,可以看到左侧的项目、环境、高级功能。点击项目,可以看到API文档管理。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H31hfbGs-1657715852263)(如何高效管理接口文档/image7.png)]

接口文档管理

eolink支持多种导入数据方式,比如swagger、jmeter、yapi、rap等常用接口测试工具,这里我们沿用使用swagger工具导入数据,其他工具导入的方式也大同小异,后续再介绍。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ArImYriE-1657715852263)(如何高效管理接口文档/image8.png)]

导入接口数据后的接口列表展示效果,可以看到接口名称、接口路径、协议等参数。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oXcCXrlb-1657715852264)(如何高效管理接口文档/image9.png)]

随便点击一个接口,可以看到基本信息、请求参数、响应内容。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U8n3bJdn-1657715852265)(如何高效管理接口文档/image10.png)]

点击修改文档/新建接口,可以编辑接口的信息。点击保存,可以触发消息通知给相关人员。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C8Ba4MJ8-1657715852265)(如何高效管理接口文档/image11.png)]

自动同步接口

在研发过程中,开发人员修改代码,重启服务后swagger工具会自动更新,但是eolink中还是旧的接口数据,这就会导致接口文档不及时更新的问题。

在eolink可以通过代码注解或者其他工具自动生成或抓取API文档,是怎么做到的呢?

输入项目的swagger地址,数据同步方式选择增量更新,这样做的好处是在旧接口文档的基础上增量修改,避免了重复新增接口数据。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1jaBLGQ7-1657715852266)(如何高效管理接口文档/image12.png)]

在线接口文档

根据定义好的接口,生成可以通过浏览器访问的web地址分享给其他人。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K420TwxA-1657715852266)(如何高效管理接口文档/image13.png)]

在线接口文档适合提供给本地没有安装eolink客户端的用户,方便大家随时可以查看接口信息、进行接口测试。

另外在设置分享页面,设置可见项目环境、设置分享的功能模块,例如 Mock、API 测试、API 测试用例等等。

在线访问地址

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dFrTRkz6-1657715852267)(如何高效管理接口文档/image14.png)]

接口调试

当我们设计好接口测试用例之后,可以调试看看效果。

以查询商品接口为例,进入执行页面,填写完成参数值,选择运行环境,点击运行即可发起一个简单的请求,页面下方可查看接口响应、请求详情。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BrP32CXS-1657715852267)(如何高效管理接口文档/image15.png)]

接口调试参数可以保存为一个接口测试用例用例,方便下次调试或者团队成员测试使用。

执行接口参数用例的目的是验证不同测试场景下接口的正确性,例如密码错误、用户名非法、参数值空等等。

如果需要从响应提取信息以供后续请求使用,通过可视化 UI 操作即可0编码实现提取变量和对返回值断言的操作。

入口在后置操作里面,我们从响应提取一code存为环境变量,并断言响应里的code字段值为"200"。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a4jA3kBB-1657715852268)(如何高效管理接口文档/image17.png)]

可以查看内置函数手册,使用内置函数进行断言,如果接口返回格式是json格式,可以使用jsonpath获取需要的字段值,进行断言。

后置脚本例子,获取code字段参数:

var info = eo.http.response.get("info")
var code = eo.jsonpath("code",info);
eo.info(code);if(code !=200){eo.error("接口断言失败");
}

丰富的内置函数,基本上满足日常测试工作要求,包括: 单接口测试、串联接口测试。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8yvgPSqM-1657715852269)(如何高效管理接口文档/image18.png)]

总结

随着项目不断的迭代,项目也越来越复杂。带来的问题是,接口入参和出参会不断地新增、修改。

测试人员面临的挑战是:

1、如何获取最新的接口文档

2、如何降低接口测试的成本

3、如何提高团队协作的效率

eolink既能管理接口又能做自动化测试、好用好看还免费的接口文档工具, 还不赶紧用起来~

上面就是小孟三天搞一个项目,这么神速的原因,因为开发有神器呀。


推荐阅读
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 本文详细介绍了GetModuleFileName函数的用法,该函数可以用于获取当前模块所在的路径,方便进行文件操作和读取配置信息。文章通过示例代码和详细的解释,帮助读者理解和使用该函数。同时,还提供了相关的API函数声明和说明。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • Commit1ced2a7433ea8937a1b260ea65d708f32ca7c95eintroduceda+Clonetraitboundtom ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • Android JSON基础,音视频开发进阶指南目录
    Array里面的对象数据是有序的,json字符串最外层是方括号的,方括号:[]解析jsonArray代码try{json字符串最外层是 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • 本文介绍了在使用Python中的aiohttp模块模拟服务器时出现的连接失败问题,并提供了相应的解决方法。文章中详细说明了出错的代码以及相关的软件版本和环境信息,同时也提到了相关的警告信息和函数的替代方案。通过阅读本文,读者可以了解到如何解决Python连接服务器失败的问题,并对aiohttp模块有更深入的了解。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 本文讨论了Kotlin中扩展函数的一些惯用用法以及其合理性。作者认为在某些情况下,定义扩展函数没有意义,但官方的编码约定支持这种方式。文章还介绍了在类之外定义扩展函数的具体用法,并讨论了避免使用扩展函数的边缘情况。作者提出了对于扩展函数的合理性的质疑,并给出了自己的反驳。最后,文章强调了在编写Kotlin代码时可以自由地使用扩展函数的重要性。 ... [详细]
  • Go语言实现堆排序的详细教程
    本文主要介绍了Go语言实现堆排序的详细教程,包括大根堆的定义和完全二叉树的概念。通过图解和算法描述,详细介绍了堆排序的实现过程。堆排序是一种效率很高的排序算法,时间复杂度为O(nlgn)。阅读本文大约需要15分钟。 ... [详细]
author-avatar
妩媚舞乙
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有