• 0
  • 0
分享
  • 为什么越来越多的开发者放弃使用Postman,而选择Apifox
  • Liam 2022-06-07 18:37:09 字数 3324 阅读 838 收藏 0

 

一、API调试常用解决方案

1、Postman + Swagger + Mock + JMeter

作为一个后端开发,我做的大部分项目一般都是基于 Swagger 来管理 API 文档,基于 Postman 来做接口调试,基于 JMeter 来做接口性能测试,基于 RAP 等工具 Mock API 数据。

1.png

2、存在的问题

(1)多系统数据不互通

API设计者、前端开发、后端开发、测试人员大量重复工作。

(2)效率低

可视化程度低、操作不友好。

(3)无法团队协作

单机离线使用为主,成员之间无法实时同步数据,无法协作。

(4)学习成本高

初学者难以入手,需要大量的学习成本、培训成本。

(5)数据一致性困难

每次变更,都需要不同角色手动去多套系统修改,维护一致性非常困难。时间久了,不一致性越来越严重,最终不可维护。

貌似有一些繁琐,但也习以为常了,突然有一天,我在逛CSDN的时候,发现了Apifox,好奇的进入了官网看了看,瞬间感觉自己发现了宝藏,下载、安装、运行、调试,一顿操作猛如虎,酸爽!当天下午,我就组织了部门会议,给大家做了一个简单的Apifox分享!

3、Apifox

2.png


有了 Apifox,我们只需要定义接口文档就可以直接使用接口调试&测试、数据 Mock 等功能。并且,接口调试完成后即可保证和接口文档定义完全一致。高效、及时、准确!

根据官网描述,Apifox 主要为我们提供了下面这 4 类功能:

  1. 接口设计 :可视化文档管理,高效便捷,零学习成本! 遵循业界的 OpenApi 3.0 (原 Swagger)、JSON Schema 规范。

  2. 接口调试 :这个基本就是 Postman 有的功能,Apifox 上都有。

  3. 接口自动化测试 :这个基本就是 JMeter 有的功能,Apifox 上都有,并且要更好用。不过,这个功能目前仍然在持续开发中。

  4. 接口数据 Mock :内置 Mock.js 规则引擎,非常方便 mock 出各种数据。

除了上面介绍的功能之外,Apifox 还提供了 CI 持续集成、数据库操作、自动生成代码、数据导入/导出、团队协作等等开箱即用的功能。

二、下载与安装

下载与安装:Apifox官网地址

1、支持多种操作系统,贴心

3.png

2、一键安装,简单

4.png

3、自定义环境,节省固定的ip前缀,方便

5.png

三、功能特性

6.png

1、API 文档设计

  • 可视化 API 文档管理,零学习成本。

  • 支持数据模型,接口之间可以复用相同数据结构。

  • 接口文档完全遵循 OpenAPI(Swagger) 规范。

  • 支持在线分享 API 文档,方便与外部团队协作。

2、API 调试

  • Postman 有的功能 Apifox 都有(如环境变量、前置/后置脚本、Cookie/Session 全局共享等),并且比 Postman 更高效好用。

  • 自动校验数据结构:校验返回的数据结构是否符合文档定义,自动发现接口数据异常。

  • 可视化的断言、提取变量、数据库(SQL)操作等功能。

  • 支持接口用例功能(一个接口多个用例)。

(1)自定义json格式

7.png

(2)自动生成json格式数据

8.png

(3)返回结果校验

9.png

3、API 自动化测试

  • 完善的 API 场景测试(流程测试)功能,保证接口数据的正确性。

  • 可视化的断言、提取变量、数据库(SQL)操作等功能。

  • 支持自定义前置/后置脚本,自动校验数据正确性。脚本语法 100% 兼容 Postman,降低学习成本。

  • 支持调用 javascript、java、python、php、js、BeanShell、go、shell、ruby、lua 等语言代码。

10.png

4、API 数据 Mock

Apifox 零配置 Mock 出来的数据和真实情况是非常接近的,前端开发可以直接使用,而无需再手动写 mock 规则。

Apifox 如何做到高效率、零配置生成非常人性化的 mock 数据

  • Apifox 根据接口定义里的数据结构、数据类型,自动生成 mock 规则。

  • Apifox 内置智能 mock 规则库,根据字段名、字段数据类型,智能优化自动生成的 mock 规则。如:名称包含字符串image的string类型字段,自动 mock 出一个图片地址 URL;包含字符串time的string类型字段,自动 mock 出一个时间字符串;包含字符串city的string类型字段,自动 mock 出一个城市名。

  • Apifox 根据内置规则,可自动识别出图片、头像、用户名、手机号、网址、日期、时间、时间戳、邮箱、省份、城市、地址、IP 等字段,从而 Mock 出非常人性化的数据。

  • 除了内置 mock 规则,用户还可以自定义规则库,满足各种个性化需求。支持使用 正则表达式、通配符 来匹配字段名自定义 mock 规则。

5、CI 持续集成

  • 支持命令行方式运行 API 测试 (Apifox CLI)。

  • 支持集成 Jenkins 等持续集成工具。

6、数据库操作

  • 支持读取数据库数据,作为 API 请求参数使用。

  • 支持读取数据库数据,用来校验(断言) API 请求是否成功。

7、自动生成代码

  • 根据接口/模型定义,自动生成各种语言/框架的业务代码和 API 请求代码。

  • 支持 TypeScript、Java、Go、Swift、ObjectiveC、Kotlin、Dart、C++、C#、Rust 等 130 种语言及框架。

  • 支持自定义代码模板,自动生成符合自己团队的架构规范的代码,满足各种个性化的需求。

8、支持 HTTP、TCP、RPC

  • 支持 HTTP(s) 接口管理。

  • 支持 Socket (TCP) 接口管理。

  • 后续将会支持 GraphQL、Dubbo、gRPC、WebSocket 等协议接口。

9、数据导入/导出

  • 支持导出 OpenApi (Swagger)、Markdown、Html 等数据格式,因为可以导出OpenApi格式数据,所以你可以利用 OpenApi (Swagger) 丰富的生态工具完成各种接口相关的事情。

  • 支持导入 OpenApi (Swagger)、Postman、apiDoc、HAR、RAML、RAP2、YApi、Eolinker、NEI、DOClever、ApiPost 、Apizza 、ShowDoc、API Blueprint、I/O Docs、WADL、Google Discovery等数据格式,方便旧项目迁移。

  • 支持定时自动导入OpenApi (Swagger)、apiDoc、Apifox格式数据。

(1)直接将postman接口同步导入Apifox

11.gif

(2)像swagger一样生成API文档

12.png

(3)生成时下最流行的markdown文件,牛逼

13.png

10、团队协作

  • 接口数据云端同步,实时更新。

  • 成熟的团队/项目权限管理,支持管理员、普通成员、只读成员等角色设置,满足各类企业的需求。

14.png

四、最佳实践

  • 前端(或后端):在 Apifox 上定好接口文档初稿。

  • 前后端:一起评审、完善接口文档,定好接口用例。

  • 前端:使用系统根据接口文档自动生成的 Mock 数据进入开发,无需手写 mock 规则。

  • 后端:使用接口用例 调试开发中接口,只要所有接口用例调试通过,接口就开发完成了。如开发过中接口有变化,调试的时候就自动更新了文档,零成本的保障了接口维护的及时性。

  • 后端:每次调试完一个功能就保存为一个接口用例。

  • 测试人员:直接使用接口用例测试接口。

  • 所有接口开发完成后,测试人员(也可以是后端)使用集合测试功能进行多接口集成测试,完整测试整个接口调用流程。

  • 前后端 都开发完,前端从Mock 数据切换到正式数据,联调通常都会非常顺利,因为前后端双方都完全遵守了接口定义的规范。

五、后续功能规划

  • 接口性能测试支持(类似 JMeter);

  • 支持插件市场,可以自己开发插件;

  • 开放 Apifox API,允许开发者通过 API 调用 Apifox 的功能;

  • 支持更多接口协议,如GraphQL、gRPC、websocket等;

  • 支持离线使用,项目可选择在线同步(团队协作)还是仅本地存储(单机离线使用);

六、Apifox 下载地址

介绍了Apifox这么多实用的功能,用上了才是真福利!
软件完全免费,堪称国产良心,有兴趣有需求的小伙伴,可以去官网下载: www.apifox.cn


  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   应用场景:在API的测试中,测试某些具体数据值,比如返回的结果是否是需求的类型,文件是否是符合且具备完整的数据结构。这些都是必须且很细致的测试工作。另外,组织、运行测试场景,以及演示测试结果这些也都使得测试人员要更加快速的找到合适的API测试方法。今天就详细地介绍如何用Karate组织、运行测试场景,以及验证Json 文件数据的正确性。  如果您想跟着以下示例操作,需要做好以下配置:  测试框架:Java + Karate + Junit 5  语言:Java, Cucumber  IDE:Intellij IDEA  项目类型:Maven  Karate 项目配置  为了能让跟着步骤操作...
            0 0 2074
            分享
          •   Bug报告是测试的重点,无论是口头的还是书面的,都是测试最明显的结果。  报告的质量可能是决定测试人员可信度的最重要的因素,一份好的Bug报告不仅可以体现测试人员的专业度,还可以方便开发人员或其他相关人员快速获取Bug相关信息,有助于对Bug的重要程度进行评估和快速修复。  什么是Bug  通俗意义上讲,Bug就是影响产品正常使用或者友好使用,且对产品价值产生影响的缺陷。  Bug可以分为两种:正常Bug和增强需求型Bug。  正常的Bug指的是产品未能实现自身功能;而增强需求型Bug是当你认为需求本身应该改进或优化时产生的问题。  换句话说,“产品没有按照你的期望运行”是一个常见的Bug...
            13 13 2012
            分享
          • 首先,崩溃有几种情况:闪退提示停止运行无响应1、接口返回值[直接原因]:app无法解析接口返回值/获取不到要获取的参数/参数类型不对导致客户端代码报错 [引起原因]:脏数据/网络问题导致接口超时或漏了数组元素/前后台没有统一参数类型标准/参数名错误/实体消失 [解决办法]:在网络顺畅/不顺畅情况下抓包,对着api文档一个一个的参数对比,返回值有数组可以横向对比 可能是其中某个元素内的某个参数和其他元素内的这个参数有内容不同/类型不同/为空/不存在/规范不同。 [测试方法]:首先要从2个角度考虑。 1:后台不要返回这种脏数据,或者有脏数据要进行处理再返回给app。 2:app要有一定的容错性,不...
            0 0 1222
            分享
          •   据DigiTimes的报道,由于台积电美国晶圆厂的芯片制造成本远高于中国台湾,台积电正准备将这些额外的成本转嫁给其客户。  其中,台积电美国晶圆厂的代工价格或将比台湾晶圆厂高出30%,也就是说,台积电美国客户将需要为美国制造的芯片多支付30%的费用。  报道称,台积电已经开始与客户讨论分别在美国和日本的两个海外代工厂的订单和定价,这两个工厂预计2024年底开始量产。  业内人士认为,以台积电N4和N5工艺技术生产的芯片在美国的价格将比中国台湾地区的高20%-30%,而在日本熊本工厂以N28/N22以及N16/N12节点生产的旧工艺芯片的价格可能比在中国台湾制造的类似芯片高10%-15%。 ...
            0 0 790
            分享
          • 您还记得大多数开发人员跳上代码质量潮流之前的情况吗?在那些日子里,熟练地放置main() 方法被认为既敏捷又足以进行测试。kes!从那时起,我们已经走了很长一段路。首先,我非常感谢自动化测试现已成为以质量为中心的代码开发的重要方面。这不是我要感谢的全部。Java?开发人员拥有大量工具,可通过代码指标,静态分析等来衡量代码质量。哎呀,我们甚至设法将重构归为一组便捷的模式!确保您的代码质量要获得与代码质量有关的问题的答案,请访问由Andrew Glover主持的 “代码质量”讨论论坛。所有这些新工具使确保代码质量比以往更加容易,但是您必须知道如何使用它们。在本系列文章中,我将重点介绍确保代码质量的...
            0 0 1778
            分享
      • 51testing软件测试圈微信